默认前提:已经安装好ros,gazebo,提前打开梯子
第一部分: 环境配置
px4安装
1.下载并安装px4源码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
上述命令执行完后,重启ubuntu系统。
2.下载并安装ubuntu_sim_ros_melodic.sh
wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
bash ubuntu_sim_ros_melodic.sh
编译成功会提示所有包安装完毕。
3.在PX4的源码目录下进行编译
cd PX4-Autopilot
make px4_sitl jmavsim
成功后会看到以下画面
此时可以输入指令commander takeoff 让其起飞,然后ctrl+c关闭。
再次进入/PX4-Autopilot路径下执行
make px4_sitl gazebo
执行成功后可以看到gazebo中的无人机画面,如下
出现上述画面后,证明环境成功安装。
4.测试多架无人机启动节点
首先需要设置环境变量
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd):$(pwd)/Tools/sitl_gazebo
注意这里的pwd对应相应文件的绝对路径,比如我这里setup_gazebo.bash的绝对路径为/home/chen/桌面/PX4-Autopilot/Tools/simulation/gazebo-classic,px4_sitl_default的绝对路径为/home/chen/桌面/PX4-Autopilot/build/px4_sitl_default,所以第一句改为source /home/chen/桌面/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash /home/chen/桌面/PX4-Autopilot/ /home/chen/桌面/PX4-Autopilot/build/px4_sitl_default,类似的我这里执行以下指令:
source /home/chen/桌面/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash /home/chen/桌面/PX4-Autopilot/ /home/chen/桌面/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/chen/桌面/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/chen/桌面/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
然后就可以成功的运行多无人机启动节点:
roslaunch px4 multi_uav_mavros_sitl.launch
成功后可以看到以下画面
为了不用每次运行启动节点时都要先运行上面三句指令,可以进入主目录下ctrl+h找到打开然后在最后面添加以上三行指令保存,这样每次打开终端都会显示
此时可以直接进入/PX4-Autopilot路径下执行启动节点。
参考博客:手把手教你如何安装ROS+Gazebo+PX4开发环境(ubuntu18.04 + Melodic)_melodic px4_chen果冻的博客-CSDN博客
Ubuntu18.04下ROS+Gazebo+Mavros+PX4安装教程(最新!最全!)_px4 ros环境安装-CSDN博客
搭建无人机仿真环境之PX4安装中出现的一些问题的解决_px4_firmware/src/drivers/uavcan/libuavcan是空的-CSDN博客
Mavros安装
1.安装之前,先更新软件库
sudo apt-get update
sudo apt-get upgrade
2.根据自己的ros版本进行修改
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
3.安装GeographicLib依赖库安装
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh #这一步时间稍长一些,请耐心等待
4.检测与mavros连接是否正常
cd PX4-Autopilot
roslaunch px4 mavros_posix_sitl.launch
重新打开一个终端运行下面命令
rostopic echo /mavros/state
可以看到如下信息:
若connected: True,则说明MAVROS与SITL通信成功。
参考博客:
【ROS】MAVROS基础知识和使用_mavros安装_阿栋阿栋的博客-CSDN博客
地面站QGroundControl安装
1.安装之前先在终端执行以下指令
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
sudo apt install libfuse2 -y
2. 下载QGroundControl.AppImagehttps://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage
3. 进入下载存放的路径,修改权限即可运行打开
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage
测试
依次打开gazebo和地面站,可以看到地面站已经连接上无人机。
roslaunch px4 posix_sitl.launch
./QGroundControl.AppImage