普罗米修斯踩坑解法大合集

主流1.仿真环境下报错 Not arming:geofence RTL requiers valid home;以及Compass Sensors inconsistent等

去年买的跑个仿真还有地理围栏和校准传感器,显然是不合理的。

现象:无法正常解锁arm

解法:将电脑存储的历史仿真参数清空

rm ~/.ros/eeprom/parameters*
rm -rf ~/.ros/sitl*

上面的解法有一定的道理和作用,但仍未能解决问题,实际解法如下

真·解法:    将开启仿真的.launch文件中的 env name="PX4_ESTIMATOR" value 改为 ekf2

原理浅析:查看注释提及的文件~/prometheus_px4/ROMFS/px4fmu_common/init.d-posix/rcS

得知两种模式ekf2和ekf2_vision分别对应GPSslam作为定位来源(官方注释瞎jb写,哪来的ekf2_gps),没有这个来源自然会报错,因此即使将GF_ACTION改为none或warning也会报错

Arming denied! Global position required


2.mavros无法正常链接主控板和电脑端

现象:一般不会报错,但无人机连不上地面站,当要使用控制节点时,会报错:

MODE: Unsupported FCU

解法:目前还没有太好的解法,但是问题是出在主控板那边,因此重新编译px4即可。

问题的根源是因为build文件夹下的libmav_msgs.so这个动态库丢失或者是和其他包里的动态库文件重名了,因此补上就行了,重新编译就行;如果仍无法解决,可找到并删除其他库的同名文件(反正同一个系统下也不会有重名文件这么低级错误,如果出现这种问题,肯定是另一个用来实现其他功能的project辣)

udp端口号不一致

查看mavros端启动节点的param与px4下的mavros_sitl.launch下的fcu_url是否一致

不一致就改,一般改成:

<arg name="fcu_url" default="udp://:14540@127.0.0.1:14557"/>

 默认写法是<arg name="fcu_url" default="udp://:14540@localhost:14557"/>
不灵就改成:
<arg name="fcu_url" default="udp://:14540@127.0.0.1:14557"/>

可能有用

相关链接:

https://discuss.ardupilot.org/t/problem-calling-ros-service-for-arducopter-ros-sitl-tutorial/18992/11

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值