hikey970 与 PX4 飞控进行 MAVROS 连接

PX4 飞控进行 OFFBOARD 控制必须使用UART接口,是电平 3.3V 的 TTL 串口;

而 hikey970 的低速扩展接口中有两个 UART,其中一个连接的是 DEBUG Type-C 的接口,经过测定 电平是 1.8V,而且只能进行输出,无法进行输入,也就是无法通过 COM 口登录到终端;另一个 UART 根本就没有驱动,电平为 0。

尝试了好几种 USB-TTL 转换器,均没有驱动,无法使用;熟悉 Linux 内核的高手可以自行编译内核模块来实现 USB-TTL 转换器的驱动,奈何本人并不会。

考虑到 MAVROS 同样支持 UDP 方式,决定使用 网口转串口 模块来进行连接。如下所示:

                   hikey970 与 PX4 飞控进行 MAVROS 连接_第1张图片

具体配置过程如下:

1、在windows系统中利用配置软件进行配置,给 网口转串口 模块供电,用网线连接到电脑,利用资料给定的默认参数更改本地连接的IP地址。更改后,尝试  ping 一下模块上的IP地址;如果无法 ping 通,请关闭防火墙再试应该就可以通。

    hikey970 与 PX4 飞控进行 MAVROS 连接_第2张图片

     hikey970 与 PX4 飞控进行 MAVROS 连接_第3张图片

2、利用 网口转串口 模块给定的配置软件更改模块的工作模式为 UDP 模式,波特率改为 57600。具体配置方式,根据买到模块的说明书进行。

3、将网线连接到 hikey970,查看网络连接。一般来说无法识别网线连接。

      更改 /etc/NetworkManager/NetworkManager.conf 文件,修改 [ifupdown] 中的 managed 的值将 false 改为 true。然后重启就可以识别网线连接。

      

4、类似 windows 的方式修改本地连接,使用固定IP,具体IP地址根据第2步配置的参数确定。ping 一下确定连接成功。

5、将 PX4 飞控的 Telem2 与 网口转串口 模块进行连接。其中的供电线是5V电压,需要注意。

6、在 hikey970 中运行指令,让 mavros 运行起来,可以看到网口的灯在闪,就说明数据通讯成功。

roslaunch mavros px4.launch fcu_url:="udp://:本地端口@模块IP地址:模块端口"

7、查看 rostopic 可以看到已经建立了连接。

注意:如果网口的灯不亮、网线没有识别,需要重启 hikey970 就可以识别网口。

补充:波特率 57600 时运行 MAVROS 会一直重复 "RTT too high" 类似的警告,原因是数据量太大、而波特率太小导致 UART 数据收发缓冲区不够用,从 QGC 界面中修改参数 SYS_COMPANION 为 921600,同时将 网口转串口 模块的波特率也改为 921600,就不再出现警告。

你可能感兴趣的:(hikey970)