解决PX4固件在Gazebo下进行SITL仿真时遇到的MODE: Unsupported FCU问题的方法

参考一下两个链接:

https://github.com/PX4/PX4-Autopilot/issues/12038

https://docs.px4.io/master/en/simulation/ros_interface.html

产生MODE: Unsupported FCU问题的根本原因就是用roslaunch启动仿真时,mavros没能正确的连接到px4固件,如果用rostopic echo /mavros/state会发现连接状态是false。

rostopic echo /mavros/state

header: 
  seq: 0
  stamp: 
    secs: 0
    nsecs:         0
  frame_id: ''
connected: False
armed: False
guided: False
manual_input: False
mode: ''
system_status: 0
---

解决这一问题的方法其实px4的官网已经在设置时给出了:

cd <PX4-Autopilot_clone>
make px4_sitl_default gazebo
source ~/catkin_ws/devel/setup.bash    # (optional)
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo
roslaunch px4 posix_sitl.launch

这里<PX4-Autopilot_clone>就是复制的px4固件源码的文件夹,$(pwd)是当前终端所在的文件夹。但是上面这个是每次都要输入,比较麻烦。因此,以我的电脑为例,只需要用以下操作就可以实现每次只要打开终端就可以自动实现上面的功能:

#编辑.bashrc文件:

sudo gedit ~/.bashrc

#在.bashrc文件最后加上以下代码:

source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default

export ROS_PACKAGE_PATH=~/PX4-Autopilot:$ROS_PACKAGE_PATH
export ROS_PACKAGE_PATH=~/PX4-Autopilot/Tools/sitl_gazebo:$ROS_PACKAGE_PATH

注意:上面代码中的~/PX4-Autopilot是我电脑上px4固件源代码的文件夹!!!

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值