mavros_controller
- 1. 准备
- ROS
- PX4 仿真环境
- 2. 安装
- 下载源码
- 编译
- 运行
- 参考
适用 Ubuntu 18.04 + ROS melodic、Ubuntu 20.04 + ROS noetic
1. 准备
ROS
安装之前必须确保你的系统已经安装了ROS,如果没有安装可以参考下面这篇文章👇
ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep)
(没有创建工作空间,可以执行下列代码,如果创建了可以跳过)
sudo apt-get install python-catkin-tools python-rosinstall-generator -y
# for Ubuntu 20
# sudo apt install python3-catkin-tools python3-rosinstall-generator python3-osrf-pycommon -y
mkdir -p ~/catkin_ws/src
cd catkin_ws && catkin init
catkin build
PX4 仿真环境
安装之前必须确保你的Ubuntu已经配置好了PX4基础仿真环境,如果没有安装可以参考下面这篇文章👇
(最新)ubuntu搭建PX4无人机仿真环境(4) ——仿真环境搭建(以Ubuntu 18.04,ROS1 Melodic 为例)_px4仿真环境搭建-CSDN博客
2. 安装
下载源码
cd ~/catkin_ws/src
wstool init
git clone https://github.com/Jaeyoung-Lim/mavros_controllers
cd ~/catkin_ws
wstool merge -t src src/mavros_controllers/dependencies.rosinstall
wstool update -t src -j4 # 这会从 Github上下载源码,所以比较考验网络
rosdep install --from-paths src --ignore-src -y --rosdistro $ROS_DISTRO
编译
cd ~/catkin_ws
catkin build
运行
sitl_trajectory_track_circle.launch
文件会同时启动 PX4 仿真和 mavros_controller,我们这里修改一下,让它们分开启动**(确保PX4仿真是好的)**
<launch><arg name="mav_name" default="iris"/><arg name="fcu_url" default="udp://:14540@127.0.0.1:14557"/><arg name="gcs_url" default="" /><arg name="tgt_system" default="1" /><arg name="tgt_component" default="1" /><arg name="command_input" default="2" /><arg name="gazebo_simulation" default="true" /><arg name="visualization" default="false"/><arg name="log_output" default="screen" /><arg name="fcu_protocol" default="v2.0" /><arg name="respawn_mavros" default="false" /><node pkg="geometric_controller" type="geometric_controller_node" name="geometric_controller" output="screen"><param name="mav_name" type="string" value="$(arg mav_name)" /><remap from="command/bodyrate_command" to="/mavros/setpoint_raw/attitude"/><param name="ctrl_mode" value="$(arg command_input)" /><param name="enable_sim" value="$(arg gazebo_simulation)" /><param name="enable_gazebo_state" value="true"/><param name="max_acc" value="10.0" /><!--Params specific for Iris copter--><param name="attctrl_constant" value="0.3"/><param name="normalizedthrust_constant" value="0.06"/><param name="normalizedthrust_offset" value="0.1"/><param name="Kp_x" value="10.0" /><param name="Kp_y" value="10.0" /><param name="Kp_z" value="20.0" /><param name="Kv_x" value="5.0"/><param name="Kv_y" value="5.0"/><param name="Kv_z" value="10.0"/></node><node pkg="trajectory_publisher" type="trajectory_publisher" name="trajectory_publisher" output="screen"><param name="trajectory_type" value="1" /><param name="shape_omega" value="1.2" /><param name="initpos_z" value="2.0" /><param name="reference_type" value="2" /></node><!-- Launch rqt_reconfigure --><node pkg="rqt_reconfigure" type="rqt_reconfigure" output="screen" name="rqt_reconfigure" /><!-- <include file="$(find mavros)/launch/node.launch"><arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml" /><arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" /><arg name="fcu_url" value="$(arg fcu_url)" /><arg name="gcs_url" value="$(arg gcs_url)" /><arg name="tgt_system" value="$(arg tgt_system)" /><arg name="tgt_component" value="$(arg tgt_component)" /><arg name="log_output" value="$(arg log_output)" /><arg name="fcu_protocol" value="$(arg fcu_protocol)" /><arg name="respawn_mavros" default="$(arg respawn_mavros)" /></include><include file="$(find px4)/launch/posix_sitl.launch"><arg name="vehicle" value="$(arg mav_name)"/></include> --><group if="$(arg visualization)"><node type="rviz" name="rviz" pkg="rviz" args="-d $(find geometric_controller)/launch/config_file.rviz" /></group></launch>
修改好后记得保存(这里只是注释了)
- 终端一:
roslaunch px4 mavros_posix_sitl.launch
- 终端二:
source ~/catkin_ws/devel/setup.bash
roslaunch geometric_controller sitl_trajectory_track_circle.launch
演示:(飞圆形)
项目复现——mavros
参考
mavros_controller
如有其他问题,或者发现文章有错误,请在评论区留言
Keep learning!