之前在做无人机使用px4源码避障的实物实验,已经有了无人机,想按照惯例先在nvidia NX上位机上跑一下仿真实验测试一下,结果mavros用了一万种方法,就是连不上,仿真跑不了。
MAVROS started. MY ID 1.240, TARGET ID 1.1
正常的应该是:
CON:Got HEARTBEAT, connected
原因基本上可以定位:目测是上位机的硬件问题或者arm64架构导致的问题。因为后来直接做了实物实验,pixhawk实体飞控盒子替代了仿真pixhawk的那个插件,所以一切都好使了(神奇)。
整理一下网上流传的其他几个可能的原因:
1.飞控没有设置机载计算机的波特率和端口。
建议用QGC查看一下,是否和教程上一样(不知道的就默认):
MAV_1_CONFIG = TELEM2
MAV_1_MODE = Onboard
SER_TEL2_BUAD = 921600 8N1
2.ttl的rx和tx线序有问题。检查一下硬件连线,按照教程来。
3.mavros的launch文件的设备名称和端口号有问题。要自己查你连的是什么端口号,不能无脑套用教程。不行就把活动的tty什么什么的都试试。
还不行就只能换机子或者像我一样直接上实物实验了
每次都要先赋予权限:
sudo chmod 777 /dev/ttyTHS0
再执行类似于这一句:
roslaunch mavros px4.launch fcu_url:="/dev/ttyTHS0:921600"
参考文章:
mavros连接px4失败的usb-ttl原因
MAVROS started. MY ID 1.240, TARGET ID 1.1