无人机控制模块教学例程 - 机体系控制
运行结果展示
机体系控制demo对应脚本文件位于~/Prometheus/Scripts/simulation/tutorial_demo/body_xyz_pos_control/body_xyz_pos_control_P450.sh
操作步骤
-
将遥控器开机并通过USB接口接入电脑
-
输入以下命令启动机体系移动仿真demo
cd ~/Prometheus/Scripts/simulation/tutorial_demo/body_xyz_pos_control # 第一次启动该脚本时,需要添加可执行权限 chmod +x body_xyz_pos_control_P450.sh ./body_xyz_pos_control_P450.sh
-
遥控器SWA档杆向下拨解锁无人机
-
遥控器SWB档杆拨到中间位置将无人机控制状态切换到RC_POS_CONTROL
-
遥控器SWB档杆拨到最底部将无人机控制状态切换到COMMAND_CONTROL
-
无人机将自动起飞,飞行到预设位置(body坐标系下(1,0,0)坐标点)后将悬停30秒,随后降落
检查终端运行是否正常
- ros主节点
- 下图所示为正常运行
- PX4飞控仿真
- 下图所示为正常运行
- Prometheus控制
- 下图所示为正常运行
- Prometheus机体系控制demo
- 下图所示为正常运行
- 正常启动仿真界面
- 下图所示为正常运行
运行仿真功能
- 拨动遥控器的SW-A拨杆,到最下面,解锁无人机
- 拨动遥控器的SW-B拨杆,到中间位置,切换到RC_POS_CONTROL模式
- 拨动遥控器的SW-B拨杆,到最下面,切换到COMMAND_CONTROL模式
- 在COMMAND_CONTROL模式下可以使用代码控制无人机飞行了,此处运行代码控制无人机,到达惯性系控制预设点后(body坐标系下(1,0,0))悬停30秒,随后自动降落
代码讲解
该demo为Prometheus XYZ_POS_BODY控制接口开发示例,XYZ_POS_BODY为无人机XYZ轴位置(BODY坐标系)的控制模式,核心代码如上图所示;主要是填充以下数据:
- Agent_CMD设置为Move模式
- Move_mode设置为XYZ_POS_BODY
- 填充XYZ轴的位置数据
- 每发送一次数据,Command_ID加1
注意
机体坐标系控制对Command_ID变量有严格限制,当前发送控制命令的Command_ID必须高于上一个控制命令的Command_ID才会执行