概述
MAVROS不支持1500000波特率
- 问题
- 解决办法
- 后续
之前飞控最大支持的波特率为921600,目前px4的飞控固件1.80版本最大支持1500000了,但是MAVROS好像并不支持这个波特率。看了源码过后找到了问题所在。
问题
我用的是TX2的自带的串口,TX2肯定在硬件上是支持这个波特率的,但是MAVROS运行的时候输入1500000的波特率就提示非法参数输入。ERROR如下。
[FATAL] [1554380682.049056064]: FCU: DeviceError:serial:set_option: Invalid argument
解决办法
MAVROS用了boost的asio检查参数的合法性,但是这个库里面没有这个波特率所以就会报错,解决办法是添加需要的波特率就可以。
sudo vim /usr/include/boost/asio/impl/serial_port_base.ipp
然后找到相应的地方把条件编译加上。
# ifdef B1500000
case 1500000: baud = B1500000; break;
# endif
# ifdef B1500000
case B1500000: value_ = 1500000; break;
# endif
保存退出过后清除之前的编译生成的文件再重新编译MAVROS就OK了。
cd mavros_ws/
catkin clean
catkin build
编译完成过后就可以使用1500000的波特率了。
后续
经常用onboard的话需要较高的波特率。目前对于1.90版本PX4支持的较大波特率有921600、1000000、1500000、2000000、3000000。加上1500000后MAVROS都支持了。
最后
以上就是过时鸭子为你收集整理的MAVROS不支持1500000波特率问题解决办法后续的全部内容,希望文章能够帮你解决MAVROS不支持1500000波特率问题解决办法后续所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复