本期介绍仿真环境的配置,介绍项目需要的各种工具(包括ROS,仿真工具,PX4,QGC等)的安装和配置过程以及飞行机械臂模型(搭载机械臂模型的多旋翼无人机)的搭建,关于机械臂的具体建模、机械臂跟踪的实现及机械臂抓取的实现不在本期讨论。
开始之前请先克隆本仓库:
cd ~/ # 切换到目标目录,这里以家目录为例,下同
git clone https://github.com/amazerobot/AerialManipulator.git
本项目的所有代码均在ROS Melodic版本下测试通过。ROS安装过程请参考ROS文档,简单起见,我们选择Desktop-Full Install
配置安装。
安装完成后还需配置工作空间,配置过程亦请参考ROS文档,使用catkin创建工作空间:
cd ~/ # 切换到目标目录,这里以家目录为例,下同
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash # 每次catkin_make之后都执行此行刷新环境变量
请先确认gazebo可以正常工作,可能需要修改位于~/.ignition/fuel/
目录下的config.yaml
文件,除此之外,还需要保证~/.gazebo/models
目录及其中的模型文件存在。
安装gazebo插件:
sudo apt install ros-melodic-gazebo-*
安装mavros
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
cd ~/AerialManipulator # 切换到AerialManipulator目录中,下同
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
从本节至环境配置的最后部分整合了PX4开发文档中Toolchain Installation和Building the Code等部分,如有疑问可先阅读PX4文档。
下载并安装工具链:
cd ~/AerialManipulator
wget https://raw.githubusercontent.com/PX4/Firmware/master/Tools/setup/ubuntu.sh
wget https://raw.githubusercontent.com/PX4/Firmware/master/Tools/setup/requirements.txt
本项目无需使用nuttx,执行ubuntu.sh
时可加上--no-nuttx
字段或直接修改ubuntu.sh
第16行为INSTALL_NUTTX="false"
:
sudo apt install python-pip
source ubuntu.sh --no-nuttx # 无需修改脚本
下载编译PX4 Firmware:
cd ~/ # 切换到目标目录,这里以家目录为例子,下同
git clone https://github.com/PX4/Firmware
cd Firmware
git submodule update --init --recursive # 更新submodule
git checkout v1.11.0 # 切换固件版本
make distclean
make px4_sitl_default gazebo
编译启动gazebo,效果如下:
下载安装QGC地面站
直接下载AppImage文件即可,注意Ubuntu 18.04并不支持QGC >= 4.0,请勿安装过高版本的QGC。
下载完成后执行:
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
启动QGC,效果如图:
cd ~/Download/ # 切换到目标目录,这里以Download目录为例
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage
请先确认.bashrc
中有如下两行:
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
并在.bashrc
中添加如下几行:
source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo
测试启动PX4仿真:
cd ~/Firmware
roslaunch px4 posix_sitl.launch
此时应当启动gazebo环境并在仿真环境中出现iris飞机模型,效果如下:
将mobot_urdf目录复制到ROS工作空间中:
cd ~/AerialManipulator
cp -r mobot_urdf ~/catkin_ws/src # 将mobot_urdf放在ros工作空间的src下
cd ~/catkin_ws/
catkin_make
将mobot_urdf/launch中的文件复制到Firmware/launch中:
cp ~/AerialManipulator/mobot_urdf/launch/* ~/Firmware/launch
在Firmware目录下执行,查看修改后的模型,效果如图:
cd ~/Firmware
roslaunch px4 posix_sitl_xacro.launch # 启动带有四个高脚架的iris无人机
roslaunch px4 posix_sitl_xacro_x_manipulator.launch # 启动带有高脚架和机械臂的iris无人机
同时可以用地面站控制无人机,如下图:
至此本项目的仿真环境搭建完成,下期介绍使用moveit配置机械臂模型并实现运动控制。
执行上述过程中遇到的任何问题可提交issue讨论。部分常见问题会包含在视频教程中供大家参考。