问题描述:
最近在搞mavros,以方便协处理器和pixhawk通讯,在按照官网教程安装mavros,设置px4,连接硬件之后发现mavros卡在中间下不去:
MAVROS started. MY ID 1.240, TARGET ID 1.1
正常的应该是:
CON:Got HEARTBEAT, connected
先回顾一下都做了什么:
1,硬件:
usb转ttl线与飞控TELEM2接线
2,软件:
协处理器:按照教程按照mavros
PX4:设置以下参数:
MAV_1_CONFIG = TELEM2
MAV_1_FORWARD = Disable
MAV_1_MODE = Onboard
MAV_1_RATE = 2048B/s
SER_TEL2_BUAD = 921600 8N1
分析:
我发现之前使用的ch340芯片的串口最大只能支持115200,后来我换了一块FTDI芯片的(会贵一点,二十来块,也是官网教程里面推荐的),就能支持921600了,好处是我的ros下的topic的频率大大加快了,比如imu_raw一开始只有4Hz,现在可以达到接近40Hhz了.还有一个问题是我的MAV_1_RATE 设置错了,按照默认的设成0是最好的,飞控自己会算,我当时没有理解,可能也导致消息频率变慢。
解决方法:
1,使用原来的芯片,改参数:
SER_TEL2_BUAD = 115200 8N1
MAV_1_RATE = 0B/s
2,换串口芯片,FTDI的,可以:
SER_TEL2_BUAD = 921600 8N1
MAV_1_RATE = 0B/s
总结:
波特率,串口权限,串口名3者要特别注意,在使用串口的时候。