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都支持了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值