1 安装gazebo
一般安装的ROS就已经自己安装了gazebo,如果已经安装了ROS,可在terminal中输入
gazebo
来验证,若出现下图,证明已经装好了,就不用再安装了。
若没有安装gazebo,则按下面方法安装即可
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 http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - # 首先更新源 sudo apt-get update # 安装Gazebo7 sudo apt-get install gazebo7 # 开发者需要安装额外的包 sudo apt-get install libgazebo7-dev
装好之后再像上面验证一下就好了。
2 源码编译gazebo仿真
# 源码下载 mkdir -p ~/src cd ~/src git clone https://github.com/PX4/Firmware.git cd Firmware git submodule update --init --recursive cd .. # 安装交叉编译器 arm-none-eabi-gcc --version sudo apt install gcc-arm-none-eabi # 编译源码 cd Firmware make px4fmu-v2_default # 配置gazebo ## 安装库 sudo apt-get install libprotobuf-dev libprotoc-dev protobuf-compiler libeigen3-dev ## 在源码gazebo仿真文件夹中创建build文件夹 cd ~/src/Firmware/Tools/sitl_gazebo mkdir Build ## 添加路径 ### 设置插件的路径以便 Gazebo 能找到模型文件 export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:$HOME/src/Firmware/Tools/sitl_gazebo/Build ### 设置模型路径以便 Gazebo 能找到机型
export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:$HOME/src/Firmware/Tools/sitl_gazebo/models ### 禁用在线模型查找 export GAZEBO_MODEL_DATABASE_URI="" ### 设置 sitl_gazebo 文件夹的路径 export SITL_GAZEBO_PATH=$HOME/src/Firmware/Tools/sitl_gazebo ### 编译gazebo仿真 cd Build cmake .. make
#############################华丽丽的分割线#############################
至此环境就算搭完啦~~~
#############################华丽丽的分割线#############################
3 运行gazebo
打开一个terminal,依次执行以下语句:
cd src/Firmware make posix_sitl_default source ~/catkin_ws/devel/setup.bash // 只有mavros是用源码编译的才需要 source Tools/setup_gazebo.bash $(pwd) $(pwd)/build_posix_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd) export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo roslaunch px4 mavros_posix_sitl.launch
出现如下界面说明你成功啦:
4 通过mavros控制飞机(详见上一章)
在一个新的terminal中运行上一节中建立好的offboard_node.cpp
cd catkin_ws catkin_make source devel/setup.bash //每新开一个terminal都要有这个,否则就会出错 rosrun offboard offboard_node
在运行过后,就会看到如下效果:
这一节的内容至此讲完了,下一节我们会讲地标的设计与如何将自主设计的地标添加到仿真环境中。
参考资料:
https://blog.csdn.net/oqqENvY12/article/details/55263122