我是靠谱客的博主 过时鸭子,最近开发中收集的这篇文章主要介绍MAVROS不支持1500000波特率问题解决办法后续,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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波特率问题解决办法后续所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部