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