PX4软件在环仿真(SITL)通信问题

问题描述

依照XTdrone进行仿真平台基础配置,进行至软件在环仿真,运行以下两行命令:

roslaunch px4 mavros_posix_sitl.launch
rostopic echo /mavros/state

倘若connected: True,则说明MAVROS与SITL通信成功。

但是笔者在运行完这两行命令之后显示如下:

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

也就是说,MAVROS与SITL并没有建立有效的通信,而且第一行命令有以下警告:

[ WARN] [1720620938.388903113]: Could not retrive negate_measured_roll parameter value, using default (0)
[ WARN] [1720620938.389277172]: Could not retrive negate_measured_pitch parameter value, using default (0)
[ WARN] [1720620938.389597722]: Could not retrive negate_measured_yaw parameter value, using default (0)
[ WARN] [1720620938.390793007]: Could not retrive debounce_s parameter value, using default (4.000000)
[ WARN] [1720620938.391165733]: Could not retrive err_threshold_deg parameter value, using default (10.000000)




[vehicle_spawn_ubuntu_38705_2814855972253643906-5] process has finished cleanly
log file: /home/liu/.ros/log/09073686-3daa-11ef-8849-9b3a3cf41928/vehicle_spawn_ubuntu_38705_2814855972253643906-5*.log

libcurl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to fuel.ignitionrobotics.org:443 

而且启动的GAZEBO仿真界面内的四旋翼无人机的旋翼是转动的,笔者并未解锁四旋翼无人机也并未使四旋翼无人机进入OFFBOARD模式,四旋翼无人机的旋翼是不应该转动。

问题解决

在XTdrone的官方文档中,推荐PX4版本号为1.13、Ubuntu版本为18.04、GAZEBO版本为9。但是由于需求,我需要使用1.15版本的PX4,该版本的PX4在进行源码安装时,默认安装GAZEBO11,这两项均不满足官方文档的要求。

官方文档有提示:

如果是FALSE,一般是因为.bashrc里的路径写的不对,请仔细检查。

 在设置路径时,主要是在.bashrc中添加以下路径:

source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

但是需要注意的是,最后一行,由于PX4源码更新,已经变为:

~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic

另外,设置的GAZEBO路径也要相应变为:

# Gazebo 11 paths
export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/usr/lib/x86_64-linux-gnu/gazebo-11/plugins
export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:/usr/share/gazebo-11/models
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/x86_64-linux-gnu/gazebo-11/plugins
export PATH=${PATH}:/usr/share/gazebo-11

另外,也要检查文件mavros_posix_sitl.launch中端口号是不是以下:

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

在设置好以上以后再运行,即可建立通信,也就是以下界面:

另外,对于报错

libcurl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to fuel.gazebosim.org:443

原因在于VPN节点问题,更换一个节点即可。

倘若连接失败后进行以上操作,仍然无法连接,可能是之前打开的GAZEBO或者节点未能正确关闭,重启虚拟机试一下。

<think>好的,我现在需要帮助用户解决关于PX4 SITL的设置和使用的问题。首先,我得确认用户的具体需求。他们提到“PX4 SITL的使用、配置或相关资料”,所以需要详细说明SITL的安装、配置步骤以及常见的使用方法。 先回顾一下用户提供的引用内容。引用[2]和[3]提到了设置Gazebo境变量和ROS包路径的步骤,引用[4]有关于XTDrone的配置和文件复制操作,引用[5]介绍了PX4的基本信息。用户可能已经安装了一些境,但需要指导如何正确配置SITL。 接下来,我需要整理PX4 SITL的设置流程。根据PX4官方文档,通常步骤包括克隆代码库、安装依赖、编译和启动仿真。但用户提供的引用中有关于source境变量和路径设置的细节,需要将这些整合进去。例如,用户需要source setup_gazebo.bash和设置ROS_PACKAGE_PATH,这在引用[2]和[3]中有提到,但路径可能不同,比如PX4-Autopilot和PX4_Firmware的区别,需要注意检查。 另外,用户提到Ubuntu16.04可能需要源码编译QGroundControl版本4,这可能是一个常见问题,需要提醒用户注意操作系统兼容性。引用[4]中也提到了这一点,所以需要强调。 然后,配置仿真境部分,用户可能需要复制一些文件,如引用[4]中的cp命令,将XTDrone的配置文件复制到PX4目录中。这部分需要详细说明步骤,并提醒用户检查路径是否正确。 在启动SITL时,用户可能需要使用不同的目标,比如iris无人机,并配合Gazebo运行。同时,启动MAVROS和QGC也是必要的,这部分需要分步骤说明,并给出示例命令。 常见问题部分,用户可能会遇到境变量错误、依赖缺失或端口冲突,需要根据引用中的信息和常规解决方案来列出解决方法。例如,境变量设置错误可能涉及路径错误或source顺序,如引用[3]提到前两个source不能颠倒,这点需要强调。 最后,生成相关问题,需要考虑用户可能的后续疑问,比如如何添加自定义模型、调试代码、与ROS集成等,这些都能帮助用户进一步深入使用PX4 SITL。 整个过程中需要确保使用正确的中文表达,行内公式用$...$,独立公式用$$...$$,但可能在这个问题中用到的数学公式不多,但如果有的话需要正确应用。同时,引用要正确标注,如涉及Gazebo配置的部分引用[2]和[3],文件复制步骤引用[4],PX4概述引用[5]。 总结来说,回答需要结构清晰,分步骤说明设置和使用流程,包含注意事项和常见问题,并生成相关问题,确保用户能够顺利理解并操作PX4 SITL。</think>### PX4 SITL设置与使用指南 PX4软件仿真(Software-in-the-Loop, SITL)允许开发者在虚拟境中测试无人机控制算法,无需真实硬件。以下是详细配置与使用步骤: --- #### 一、境配置 1. **代码克隆与依赖安装** ```bash git clone https://github.com/PX4/PX4-Autopilot.git cd PX4-Autopilot git submodule update --init --recursive ``` 安装依赖(Ubuntu系统): ```bash bash ./Tools/setup/ubuntu.sh ``` 2. **Gazebo仿真境配置** 根据引用[2]和[3],需配置境变量: ```bash source ~/catkin_ws/devel/setup.bash source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot:~/PX4-Autopilot/Tools/sitl_gazebo ``` **注意**:路径需根据实际安装位置调整,且`source`顺序不可颠倒[^3]。 --- #### 二、仿真境启动 1. **启动SITL与Gazebo** ```bash make px4_sitl gazebo ``` 默认启动`iris`无人机模型。可通过参数指定其他模型: ```bash make px4_sitl gazebo_plane ``` 2. **连接MAVROS与QGroundControl** - **MAVROS通信**: ```bash roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" ``` - **QGroundControl**: 下载并启动QGC(需注意Ubuntu 16.04需源码编译v4版本[^4])。 --- #### 三、XTDrone集成配置(可选) 若使用XTDrone仿真框架,需复制配置文件至PX4目录[^4]: ```bash cp XTDrone/sitl_config/init.d-posix/rcS ~/PX4-Autopilot/ROMFS/px4fmu_common/init.d-posix/ cp -r XTDrone/sitl_config/models/* ~/PX4-Autopilot/Tools/sitl_gazebo/models/ ``` --- #### 四、常见问题 1. **境变量错误** 检查路径是否正确,确保`ROS_PACKAGE_PATH`包含PX4和Gazebo插件路径[^2][^3]。 2. **依赖缺失** 重新运行`ubuntu.sh`脚本安装缺失库。 3. **端口冲突** 更改SITL启动端口: ```bash make px4_sitl gazebo PX4_SIM_HOST_ADDR=192.168.1.100 ``` --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值