手动创建Gazebo环境与自适应控制PX4
目录环境准备创建文件包搭建worlds环境编写启动器创建自适应控制控制器进入工作空间并编译验证算法环境准备安装必要的软件:Gazebo、PX4固件、ROS2确保系统依赖项已正确配置参考文章创建文件包初始化文件环境目录mkdir -p ~/project/worlds mkdir -p ~/project/scripts mkdir -p ~/project/ros2_ws/src在根目录中递归创建文件夹worlds、scripts、ros2_ws/src,分别用于配置Gazebo环境信息,启动脚本和基于ROS2的源码目录。拉取PX4的ROS2消息定义cd ~/project/ros2_ws/src git clone https://github.com/PX4/px4_msgs.git -b release/1.14进入ROS2工作区中的源码目录部分,clone与已安装PX4版本相同的消息定义。创建ROS2功能控制包ros2 pkg create --build-type ament_python controller创建ROS2 Python功能包,名称为controller。搭建worlds环境创建并打开.world文件gedit ~/mfac_project/worlds/env.world创建两个长方体障碍物由于Gazebo中不存在与ROS2通信的功能,需要建立动态库实现该功能即程序中plugin filename="libgazebo_ros_state.so" rosnamespace/gazebo/namespace/ros update_rate50.0/update_rate /plugin编写启动器创建启动脚本gedit ~/project/scripts/start.sh加载ROS2环境变量,并设置多机通信#加载ROS2环境 source /opt/ros/humble/setup.bash #注入插件路径 PX4_BUILD_ROOT=~/PX4-Autopilot/build/px4_sitl_default PX4_BUILD_ROOT=~/PX4-Autopilot/build/px4_sitl_default export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:$PX4_BUILD_ROOT/build_gazebo-classic export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/models export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PX4_BUILD_ROOT/build_gazebo-cla