ubuntu@ubuntu:~/PX4_Firmware$ roslaunch px4 mavros_posix_sitl.launch ... logging to /home/ubuntu/.ros/log/448af57e-023c-11f0-8c8f-000c29746733/roslaunch-ubuntu-103545.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. Resource not found: The following package was not found in <arg default="$(find mavlink_sitl_gazebo)/worlds/empty.world" name="world"/>: mavlink_sitl_gazebo ROS path [0]=/opt/ros/melodic/share/ros ROS path [1]=/opt/ros/melodic/share ROS path [2]=/home/ubuntu/PX4_Firmware The traceback for the exception was written to the log file
时间: 2025-07-05 15:40:11 浏览: 12
<think>好的,我现在需要解决用户在Ubuntu 18.04上运行ROS Melodic时遇到的mavlink_sitl_gazebo包未找到的问题。根据用户提供的引用信息,特别是引用[1]中提到的问题是由于gazebo版本过旧导致的,用户将gazebo升级到9.19后解决了问题。引用[4]中的错误信息提到了Spawn service failed,可能和gazebo_ros的配置有关。
首先,我应该检查用户是否安装了正确版本的gazebo。如果用户按照引用[1]的方法升级了gazebo,可能还需要重新安装或编译相关的ROS包,比如mavlink_sitl_gazebo。因为当gazebo版本升级后,原有的ROS包可能仍然链接到旧版本的库,导致找不到资源。
接下来,用户可能没有正确设置环境变量或者没有重新编译PX4固件。在PX4-Autopilot目录下运行make clean和重新编译可能解决部分依赖问题。此外,检查工作空间中的依赖项安装是否正确,比如通过rosdep install命令确保所有依赖都已安装。
另外,用户的环境变量配置可能有误。需要确认GAZEBO_PLUGIN_PATH和GAZEBO_MODEL_PATH是否指向正确的目录,特别是新安装的gazebo 9.19的路径。如果这些路径没有正确设置,gazebo可能无法找到mavlink_sitl_gazebo的相关资源。
最后,如果问题仍然存在,可能需要重新克隆或更新PX4的固件仓库,确保mavlink_sitl_gazebo子模块被正确下载和编译。有时候子模块未初始化或更新会导致资源缺失。
总结下来,解决方案应该包括检查gazebo版本,重新编译PX4固件,设置正确的环境变量,以及确保所有依赖项安装正确。同时,参考引用中的成功案例,升级gazebo并重新配置环境是关键步骤。</think>### 解决Ubuntu上`mavlink_sitl_gazebo`资源未找到问题的方法
#### 1. **检查Gazebo版本兼容性**
- **问题根源**:Ubuntu 18.04安装ROS Melodic时默认的Gazebo版本为9.0,而PX4仿真需要更高版本(如9.19)[^1]。
- **解决方法**:
```bash
# 移除旧版Gazebo
sudo apt-get remove gazebo9 ros-melodic-gazebo-*
# 添加新版Gazebo源并安装9.19版本
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo9=9.19.0-1* libgazebo9=9.19.0-1*
```
#### 2. **重新编译PX4固件**
- **关键步骤**:升级Gazebo后需重新编译PX4代码以适配新版本库。
```bash
cd ~/PX4-Autopilot
make clean # 清理旧编译文件
git submodule update --init --recursive # 确保子模块更新
make px4_sitl gazebo # 重新编译
```
#### 3. **修复ROS包依赖**
- **依赖安装**:确保`mavlink_sitl_gazebo`的ROS依赖项已安装。
```bash
sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-msgs
rosdep update
cd ~/PX4-Autopilot
rosdep install --from-paths src --ignore-src -y # 安装缺失依赖
```
#### 4. **配置环境变量**
- **路径指向**:更新环境变量以匹配Gazebo 9.19的插件和模型路径。
```bash
echo "export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:~/PX4-Autopilot/build/px4_sitl_default/build_gazebo" >> ~/.bashrc
echo "export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/PX4-Autopilot/Tools/sitl_gazebo/models" >> ~/.bashrc
source ~/.bashrc # 立即生效[^3]
```
#### 5. **验证仿真启动**
- **测试命令**:
```bash
cd ~/PX4-Autopilot
roslaunch px4 mavros_posix_sitl.launch # 启动PX4与Gazebo仿真[^2]
```
- **若仍报错**:检查终端输出的红色错误信息(如`gzserver`路径问题[^4]),确认`/opt/ros/melodic/lib/gazebo_ros/`下是否存在相关插件。
---
阅读全文
相关推荐



















