vmware下ubuntu18.04 安装ROS Melodic+gazebo9+PX4并roslaunch运行+QGroundConrtol控制

本文详细记录了在Ubuntu 18.04上安装ROS Melodic、Gazebo9以及PX4仿真环境的步骤,包括设置源、安装依赖、配置环境变量、解决网络问题和各种报错。通过自动和手动两种方式安装,最后成功运行PX4模拟器并进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方推荐ubuntu18.04的对应ROS和gazebo版本为ROS Melodic 和 gazebo9
官方指导:
ROS安装:http://wiki.ros.org/Installation/Ubuntu
gazebo安装:http://gazebosim.org/tutorials?tut=ros_installing&cat=connect_ros#InstallGazebo
PX4安装:https://docs.px4.io/master/en/dev_setup/dev_env_linux_ubuntu.html
主要根据官方推荐和流程走,根据国内环境和安装环境进行微调.
PS:建议一开始直接用PX4安装指导里的ubuntu_sim_ros_melodic.sh一条龙自动安装,由于我先装了ros和gazebo所以没用这个。
————————————
更新:在双系统而非虚拟机用bash ubuntu_sim_ros_melodic.sh安装ros+gazebo成功,需要提前换源
再安装其他全套仿真器:

git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

过程没有什么问题,除了国内-国外网络问题
——————————————
逐步手动安装:

ROS Melodic

添加源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-get update

设置密钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

安装

sudo apt-get install ros-melodic-desktop-full

设置环境

source /opt/ros/melodic/setup.bash
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装依赖

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

初始化ros系统

sudo rosdep init
rosdep update

因为网络下载不了文件报错则按https://zhuanlan.zhihu.com/p/397966333在本地手动操作

创建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
echo $ROS_PACKAGE_PATH

测试

在三个终端分别运行

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

如果出现小乌龟并且能控制就ok了。注意前面装的是full才有小乌龟,basic没有

gazebo

注意安装ROS Melodic已经自带了gazebo9,所以不需要手动安一遍再安装连接的pkgs那么费劲了,可以测试一下是否已经有gazebo以及版本

gazebo
gazebo --version

运行gazebo肯定会报错,如果报一个关于ignitionrobotics.org链接的错则

gedit ~/.ignition/fuel/config.yaml

把网址替换为fuel.ignitionrobotics.org。
再报vmw_ioctl_command error Invalid argument无效参数的错误,则是因为在vmware里面运行的原因,则

export SVGA_VGPU10=0
echo "export SVGA_VGPU10=0" >> ~/.profile

(此方法也为官方推荐设置,在安装PX4时在bash里发现的,放心用)

测试

在两个终端分别运行

roscore 
rosrun gazebo_ros gazebo

PX4

官方安装script有两个,因为已经安装了ROS所以用第一种,但该sh会安装gazebo9,由于之前已经安装了所以使用命令时添加不安装simtool选项。第二个脚本好像可以自动安装PX4, ROS, the Gazebo simulator, and MAVROS,但我一步步安装下来了所以没用这个。
在这里插入图片描述

安装包

下载包时会出现子模块未注册到路径,就是下载不下来,解决国内国外网络问题即可,参考

git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools

装完重启

mavros

官方指导https://docs.px4.io/master/en/ros/mavros_installation.html
官方建议用源码安装,但二进制方便
二进制:

sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

安装GeographicLib datasets

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh   

测试

所有都装好后测试px4和gazebo模拟器,最终测试才是火葬场

cd /path/to/PX4-Autopilot
make px4_sitl gazebo

一开始失败了,没报什么错,但是说等待模拟器连接端口,界面出不来,于是直接重新

./PX4-Autopilot/Tools/setup/ubuntu.sh

期间还发现gazebo突然跑不起来(之前刚装完是可以的),报错

gazebo: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: _ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

网上说给装上这个缺的包然后就可以了:

sudo apt upgrade libignition-math2

之后又报错

Performing build step for ‘sitl_gazebo’ ninja: error: ‘/usr/lib/x86_64-linux-gnu/libignition-common1.so.1.0.1’, needed by ‘libmav_msgs.so’, missing and no known rule to make it

所以重新make了

cd PX4-Autopilot
make clean
make px4_sitl gazebo

make完就出来了,可以按官方教程输入,让飞机飞起来

commander takeoff

在这里插入图片描述

运行自定义launch

把自定义的模型放到/pathtoPX4/Tools.sitl_gazebo/models下,把自定义world文件放到/pathtoPX4/Tools.sitl_gazebo/worlds下,测试world是否配置正确,

gaze xxx.world

可以在gazebo里看到地图。ps:配置里路径使用绝对路径

自定义的launch放到/pathtoPX4/launch下,按官方流程https://docs.px4.io/v1.12/en/simulation/ros_interface.html运行:

cd <PX4-Autopilot_path>
DONT_RUN=1 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 # 改成自定义launch

pwd可以替换为绝对路径(但好像不行)

source Tools/setup_gazebo.bash /home/cy/PX4-Autopilot /home/cy/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/cy/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/cy/PX4-Autopilot/Tools/sitl_gazebo

QGroundControl

安装

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libqt5gui5 -y
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage#或者双击

联动

roslaunch后打开QGC就可以连接无人机,并进行控制
在这里插入图片描述

### 安装 PX4 + ROS + Gazebo 的完整教程 #### 准备工作 确保系统已更新至最新状态安装必要的依赖包。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install git wget curl build-essential cmake python3-pip -y ``` #### 设置源密钥 为了顺利安装软件,需配置合适的APT仓库导入相应的GPG密钥[^1]。 对于Gazebo而言: ```bash echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - ``` 针对ROS Melodic: ```bash sudo sh -c &#39;echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list&#39; curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` 再次刷新apt缓存以应用更改后的列表文件设置。 ```bash sudo apt update ``` #### 安装 ROS Gazebo 根据官方推荐的方式进行安装[^2]。 ```bash # 安装桌面完全版的ROS Melodic sudo apt install ros-melodic-desktop-full -y # 初始化rosdep工具 sudo rosdep init rosdep update # 添加环境变量到.bashrc中以便每次启动终端都能自动加载ROS环境 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc # 安装gazebo9及其插件库 sudo apt-get install gazebo9 libgazebo9-dev -y ``` #### 配置 MAVROS 节点 MAVLink通讯协议是连接地面站与飞行器的关键组件之一,在此之前先完成mavlink编译过程[^3]。 ```bash pip3 install empy pyyaml pandas numpy --user mkdir -p ~/catkin_ws/src; cd ~/catkin_ws; wstool init src git clone https://github.com/PX4/MissionPlanner.git src/px4_mission_planner cd src/ git clone https://github.com/mavlink/mavros.git mavros cd mavros git submodule update --init --recursive cd .. cd .. catkin_make source devel/setup.bash ``` #### 下载构建PX4固件 通过DevGuide提供的自动化脚本来简化整个流程[^4]。 ```bash # 获取安装脚本 wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh # 给予执行权限给下载下来的shell script chmod +x ubuntu_sim_ros_melodic.sh # 执行该脚本开始安装所需的一切东西 ./ubuntu_sim_ros_melodic.sh ``` 以上就是完整的Ubuntu 18.04 LTS上搭建支持无人机仿真的开发环境的方法。希望这些信息能够帮到正在寻找解决方案的人们。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值