< >
Home » PX4开发指南 » PX4开发指南-9.1.Pixhawk系列协同电脑

PX4开发指南-9.1.Pixhawk系列协同电脑

PX4开发指南-9.1.Pixhawk系列协同电脑

官网英文原文地址: http://dev.px4.io/pixhawk-companion-computer.html

无论何种协同计算机(Raspberry Pi, Odroid, Tegra K1),与Pixhawk系列飞控板之间的接口是相同的:它们通过串口连接到Pixhawk上的TELEM2,这个端口专用于与协同计算机相连。连接的消息格式是MAVLink

Pixhawk设置

  • 参考下表,设置SYS_COMPANION参数(System参数组)

变更参数后需要重启飞控使其生效。

  • :禁用TELEM2上的MAVLink输出(默认)

  • 921600:使能MAVLink输出,波特率:921600, 8N1(推荐)

  • 157600:使能MAVLink输出,OSD模式,波特率:57600

  • 257600:使能MAVLink输出,监听模式,波特率:57600

协同计算机设置

  • 为了能够接收MAVLink消息,协同计算机需要运行一些和串口通讯的软件,最常用的是:

  • MAVROS:ROS

  • C/C++ example code:自定义的代码

  • MAVProxy:在串口和UDP之间传输MAVLink

硬件设置

  • 根据下面的说明连接串口。所有Pixhawk串口工作在3.3V,兼容5V。

许多现代协同计算机在UART端口仅支持1.8V的电压,并且可能在3.3V下损坏。使用电压转换器。大多数时候,可以使用的硬件串口有特定的功能(modemor console),在使用之前,需要在Linux下重新配置它们。

  • 安全的做法是使用FTDI(USB转串口适配器),并按照下面说明连接它。这大多数时候都管用并且很容易设置。

TELEM2        FTDI<br />
1   +5V (red)       DO NOT CONNECT!<br />
2   Tx (out)    5   FTDI RX (yellow) (in)<br />
3   Rx (in) 4   FTDI TX (orange) (out)<br />
4   CTS (in)    6   FTDI RTS (green) (out)<br />
5   RTS (out)   2   FTDI CTS (brown) (in)<br />
6   GND 1   FTDI GND (black)

Linux 上的软件设置

  • 在Linux上,USB FTDI的默认名称将是\dev\ ttyUSB0。 如果您在USB或Arduino上连接了第二个FTDI,它将显示为\dev\ttyUSB1。 为了避免第一个插入和第二个插入的混淆,我们建议您根据USB设备的供应商和产品ID, create a symlink from ttyUSBx to a friendly name。

  • 使用 lsusb 命令来获取供应商信息和产品ID。

$ lsusb

    Bus 006 Device 002: ID 0bda:8153 Realtek Semiconductor Corp.
    Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc.
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 004: ID 2341:0042 Arduino SA Mega 2560 R3 (CDC ACM)
    Bus 003 Device 005: ID 26ac:0011
    Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 002: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • The Arduino is Bus 003 Device 004: ID 2341:0042 Arduino SA Mega 2560 R3 (CDC ACM)

  • The Pixhawk is Bus 003 Device 005: ID 26ac:0011

如果您没有找到您的设备,请拔下它重新插入,再次执行lsusb并查看添加的设备。

  • 因此,我们可以在一个名为/etc/udev/rules.d/99-pixhawk.rules的文件中创建一个新的UDEV规则,具有以下内容,将idVendor和idProduct更改为您的。
SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0042", SYMLINK+="ttyArduino"

SUBSYSTEM=="tty", ATTRS{idVendor}=="26ac", ATTRS{idProduct}=="0011", SYMLINK+="ttyPixhawk"
  • 最后,重新启动后,您可以确定在脚本中知道哪个设备是什么,并将/dev/ttyPixhawk代替/dev/ttyUSB0。

确保通过usermod将自己添加到ttydialout组中,以避免以root身份执行脚本。

usermod -a -G tty ros-user
usermod -a -G dialout ros-user

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: px4开发指南