UAV仿真配置
仿真环境:ubuntu20.04 + ROS Noetic + gazebo11 + px4 + qgroungcontrol
教程参考https://www.ncnynl.com/archives/201709/2003.html
1.介绍
结构预览
-
PX4由两个层次组成:一是飞行控制栈(flight stack),即自驾仪的软件解决方案,二是中间件,一种可以支持任意类型自主机器人的通用机器人中间件。
-
所有的无人机机型,事实上所有的包括船舶在内的机器人系统,都具有同一代码库。整个系统设计是反应式(reactive)的,这意味着:
- 所有的功能被划分为可替换部件
- 通过异步消息传递进行通信
- 该系统可以应对不同的工作负载
-
除了这些运行时考虑之外,其模块化最大限度地提高了系统的可重用性。
-
Gazebo是一个自主机器人3D仿真环境。它可以与ROS配套用于完整的机器人仿真,也可以单独使用。本文简要介绍单独的使用方法。
![image-20220816224103557](https://i-blog.csdnimg.cn/blog_migrate/5220b2285500945d62ba10ccce2d14c3.png)
2.px4固件安装(科学上网)
前提:ubuntu20.04+ROS Noetic+gazebo11
官方下载文档https://docs.px4.io/main/zh/dev_setup/dev_env_linux_ubuntu.html
git clone -b v1.12.0 https://github.com/PX4/Firmware.git --recursive
cd Firmware/
git submodule update --init --recursive
git submodule update --recursive
bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
sudo reboot(需要重启)
make px4_sitl_default gazebo
error参考https://blog.csdn.net/qq_41301435/article/details/111240834
- jmavsim环境
make px4_sitl jmavsim
输入commander takeoff后,如出现Failsafe enabled: no datalink无法起飞,可以输入
param set NAV_RCL_ACT 0
param set NAV_DLL_ACT 0
commander takeoff
commander land
error参考https://blog.csdn.net/Iamsonice/article/details/120372120?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0-120372120-blog-86518201.pc_relevant_multi_platform_whitelistv2_ad_hc&spm=1001.2101.3001.4242.1&utm_relevant_index=3
要以 2 倍的实时速度运行 jMAVSim 仿真:export PX4_SIM_SPEED_FACTOR=2
3.安装MAVROS
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh
检查
sudo gedit ~/.bashrc
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo
source ~/.bashrc
roslaunch px4 mavros_posix_sitl.launch
rostopic echo /mavros/state
当看到输出connected: True,说明MAVROS已经成功连接,仿真的准备工作基本完成。
使用MAVROS
https://www.ncnynl.com/archives/201709/2077.html
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras ros-noetic-control-toolbox
gazebo中仿真
make px4_sitl gazebo_iris
打开QGroundControl
启动PX4与Mavros之间的连接
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
rosrun offboard_pkg offboard_node
https://zhuanlan.zhihu.com/p/364390798
https://www.guyuehome.com/7672
https://px4.osdrone.net/1_Getting_Started/linux.html
#export world=/home/zrf/Firmware/Tools/sitl_gazebo/worlds/hippocampus.world
export PX4_SITL_WORLD=/home/zrf/Firmware/Tools/sitl_gazebo/worlds/boat.world
make px4_sitl gazebo_iris
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
roslaunch src/waypoint_ws/src/all.launch
rosservice call /sim/armed "mode_set: 1"
rosservice call /sim/offboard "mode_set: 1"
rosservice call /sim/set_mode "mode_set: 3"