Налаштування PX4 Ethernet
Підключення через Ethernet надає швидкий, надійний та гнучкий спосіб зв'язку, який може бути альтернативою використанню USB або інших послідовних з'єднань.
Воно може бути використане для підключення до наземних станцій, супутникових комп'ютерів та інших систем MAVLink. Це особливо рекомендується при підключенні до систем, які «природно» використовують Ethernet, наприклад, IP-радіо.
Ця тема охоплює:
- PX4 Ethernet Налаштування
Підтримувані контролери польоту
PX4 supports Ethernet connectivity on Pixhawk 5X-standard flight controllers (and later) that have an Ethernet port. Це також може бути підтримано на інших платах.
Підтримувані автопілоти включають:
Налаштування мережі Ethernet
Для підключення систем по Ethernet потрібно налаштувати їх на роботу в одній IP-мережі, щоб кожна система мала унікальну IP-адресу та могла знаходити інші системи. Це можна зробити за допомогою DHCP-сервера для призначення адрес або вручну налаштувавши адреси кожної системи в мережі.
Немає єдиної «готової» конфігурації, яку ми можемо надати, яка обов’язково працюватиме у вашій локальній мережі. Therefore as an example of the kind of configuration you might do, below we show how to set up the systems on an IP network with static addresses in the range 10.41.10.Xxx
, where PX4 has a statically allocated address 10.41.10.2
(PX4-default) and the computer has address 10.41.10.1
. Якщо ви хочете підключити компаньйонний комп'ютер або іншу систему до мережі і встановити статичну адресу, ви можете використати подібний підхід.
INFO
There is nothing "special" about the network configuration (other than perhaps the tools used to modify the network settings); it works much the same as any home or business network. Тобто, знання про те, як працюють IP-мережі, є дуже бажаним!
Налаштування мережі PX4 Ethernet
PX4 використовує модуль netman для застосування та оновлення налаштувань мережі.
The default configuration first requests an IP address from DHCP, and if that fails will fallback to the default static address 10.41.10.2
. You can explicitly set any static IP address (including the default address), to bypass the initial DHCP check and make the connection a little faster.
INFO
If you want to use the default static IP address for PX4 you can skip forward to the next section.
Network settings are defined in the configuration file /fs/microsd/net.cfg
on the SD card. This is a text file, that defines each setting on a new line as a name=value
pair. Конфігураційний файл може виглядати так:
ini
DEVICE=eth0
BOOTPROTO=fallback
IPADDR=10.41.10.2
NETMASK=255.255.255.0
ROUTER=10.41.10.254
DNS=10.41.10.254
Де є значення:
DEVICE
: Interface name. Default iseth0
.BOOTPROTO
: Protocol for getting PX4 IP address. Valid values for proto are:dhcp
,static
,fallback
(use DHCP but fall back to static address after time, if that fails)IPADDR
: статична IP-адреса (використовується, якщо BOOTPROTO єстатичним
аборезервним
)NETMASK
: Мережна маскаROUTER
: Адреса маршруту за умовчанням.DNS
: Адреса DNS-сервера.
Щоб налаштувати вищезазначену "прикладну" конфігурацію за допомогою QGroundControl:
Підключіть авіоніку до комп'ютера за допомогою USB-кабелю.
Відкрийте QGroundcontrol > Аналіз інструментів > MAVLink
Введіть команди "like" до наведених нижче у Консоль MAVLink (щоб записати значення у файл конфігурації):
shecho DEVICE=eth0 > /fs/microsd/net.cfg echo BOOTPROTO=fallback >> /fs/microsd/net.cfg echo IPADDR=10.41.10.2 >> /fs/microsd/net.cfg echo NETMASK=255.255.255.0 >>/fs/microsd/net.cfg echo ROUTER=10.41.10.254 >>/fs/microsd/net.cfg echo DNS=10.41.10.254 >>/fs/microsd/net.cfg
Після встановлення конфігурації мережі можна від’єднати кабель USB.
Перезавантажте контролер польоту, щоб застосувати налаштування.
Зверніть увагу, що вищевказана настройка надає контролеру польоту адресу в мережі Ethernet. You also need to configure the Ethernet port to use MAVLink.
Налаштування мережі Ubuntu Ethernet
Якщо ви використовуєте Ubuntu для вашої земної станції (або компаньйон-комп'ютера), то ви можете використовувати netplan для налаштування мережі.
Below we show how you write a setup to the netplan configuration file "/etc/netplan/01-network-manager-all.yaml
", which would run on the same network as used by the PX4 setup above. Note that there are many more examples and instructions in the netplan documentation.
Для установки Ubuntu комп'ютера:
In a terminal, create and open a
netplan
configuration file:/etc/netplan/01-network-manager-all.yaml
Below we do this using the nano text editor.sudo nano /etc/netplan/01-network-manager-all.yaml
Скопіюйте та вставте наступну конфігураційну інформацію у файл (зверніть увагу: відступи мають значення!):
network: version: 2 renderer: NetworkManager ethernets: enp2s0: addresses: - 10.41.10.1/24 nameservers: addresses: [10.41.10.1] routes: - to: 10.41.10.1 via: 10.41.10.1
Збережіть і закрийте файл.
Застосуйте конфігурацію netplan, введіть наступну команду в термінал Ubuntu.
sudo netplan apply
Комп’ютер-супутник Налаштування мережі Ethernet
Налаштування компаньйонного комп'ютера залежить від операційної системи компаньйонного комп'ютера.
Операційна система Linux може підтримувати netplan
, у такому разі інструкції будуть такі ж, як вище, але з використанням унікальної IP-адреси.
Конфігурація послідовного порту PX4 MAVLink
The Ethernet port configuration sets the properties of the serial link (which is how PX4 views the Ethernet connection). Це включає набір повідомлень MAVLink, які передаються, швидкість передачі даних, UDP-порти, на які може підключатися віддалена система, тощо.
INFO
Ви повинні окремо налаштувати IP-адресу PX4 та інші налаштування мережі (як показано раніше).
PX4 налаштовує серійний порт для підключення до GCS через MAVLink, використовуючи параметри, показані нижче:
Параметр | Значення | Опис |
---|---|---|
MAV_2_CONFIG | 1000 | Налаштування Ethernet порту |
MAV_2_BROADCAST | 1 | Broadcast HEARTBEAT messages |
MAV_2_MODE | 0 | Надіслати «звичайний» набір повідомлень MAVLink (тобто набір GCS) |
MAV_2_RADIO_CTL | 0 | Вимкнути програмне регулювання трафіку MAVLink |
MAV_2_RATE | 100000 | Налаштування Ethernet порту |
MAV_2_REMOTE_PRT | 14550 | Віддалений порт MAVLink 14550 (GCS) |
MAV_2_UDP_PRT | 14550 | Мережевий порт MAVLink 14550 (GCS) |
Normally a companion computer would use port 14540
(rather than 14550
) and stream the set of MAVLink messages specified in the Onboard
profile. You can configure this setup by changing MAV_2_REMOTE_PRT and MAV_2_UDP_PRT to 14540
and MAV_2_MODE to 2
(Onboard). Проте слід зауважити, що це все одно працюватиме, використовуючи профіль GCS.
Для отримання додаткової інформації про налаштування серійного порту MAVLink дивіться Пристрої MAVLink (GCS/OSD/Супутник).
Приклад налаштування QGroundControl
Assuming you have already Set up the Ethernet Network so your ground station computer and PX4 run on the same network, and
Для підключення QGroundControl до PX4 по Ethernet:
Налаштуйте мережу Ethernet так, щоб ваш комп'ютер земної станції та PX4 працювали в одній мережі.
Підключіть комп'ютер земної станції та PX4 за допомогою кабелю Ethernet.
Запустіть QGroundControl та визначте комунікаційний канал (Налаштування додатка > Канали зв'язку), вказавши адресу сервера та порт як IP-адресу та порт, призначений в PX4, відповідно.
Припускаючи, що значення встановлені так, як описано в решті цієї теми, налаштування виглядатиме наступним чином:
Після цього QGroundControl має підключитися, якщо ви виберете це посилання.
INFO
Конфігурація порту Ethernet PX4 не повинна бути потрібною (за замовчуванням вона відповідна для GCS).
Приклад налаштування MAVSDK-Python
Щоб налаштувати роботу MAVSDK-Python на комп’ютері-супутнику:
Set up the Ethernet Network so your companion computer and PX4 run on the same network.
Modify the PX4 Ethernet Port Configuration to connect to a companion computer. You might change the parameters MAV_2_REMOTE_PRT and MAV_2_UDP_PRT to
14540
, and MAV_2_MODE to2
(Onboard).Дотримуйтесь інструкцій у MAVSDK-python, щоб установити та використовувати MAVSDK.
Наприклад, ваш код буде підключатися до PX4 за допомогою:
pythonawait drone.connect(system_address="udp://10.41.10.2:14540")
INFO
MAVSDK can connect to the PX4 on port 14550
if you don't modify the PX4 Ethernet port configuration. Проте це не рекомендується, оскільки типова конфігурація оптимізована для зв'язку з наземним контролем (а не компаньйон комп'ютером).
Приклад встановлення ROS 2
Попередня підготовка:
- You have a supported autopilot hardware running PX4 firmware that includes uXRCE-DDS middleware. Note that PX4 v1.14 and later include the required uxrce_dds_client module by default.
- ROS 2 has been set up correctly on the companion computer.
- Ви виконали налаштування мережі Ethernet і портів, як описано вгорі цієї сторінки.
Налаштувати ROS 2:
Підключіть ваш автопілот і компаньйон комп'ютер за допомогою Ethernet.
Start the uXRCE-DDS client on PX4, either manually or by customizing the system startup script. Note that you must use the IP address of the companion computer and the UDP port on which the agent is listening (the example configuration above sets the companion IP address to
10.41.10.1
, and the agent UDP port is set to8888
in the next step).Start the micro XRCE-DDS agent on the companion computer. For example, enter the following command in a terminal to start the agent listening on UDP port
8888
.shMicroXRCEAgent udp4 -p 8888
Run a listener node in a new terminal to confirm the connection is established:
shsource ~/ws_sensor_combined/install/setup.bash ros2 launch px4_ros_com sensor_combined_listener.launch.py
Якщо все налаштовано правильно, в терміналі повинен відображатися наступний вивід:
shRECEIVED SENSOR COMBINED DATA ============================= ts: 855801598 gyro_rad[0]: -0.00339938 gyro_rad[1]: 0.00440091 gyro_rad[2]: 0.00513893 gyro_integral_dt: 4997 accelerometer_timestamp_relative: 0 accelerometer_m_s2[0]: -0.0324082 accelerometer_m_s2[1]: 0.0392213 accelerometer_m_s2[2]: -9.77914 accelerometer_integral_dt: 4997
Дивіться також
- Get The Pixhawk Raspberry Pi CM4 Baseboard By Holybro Talking With PX4 (px4.io blog):
- Урок, який показує, як підключити Pixhawk 6X + Raspberry Pi на базі CM4 через провідний Ethernet.
- Блог дублює багато матеріалу з цієї теми.