实验步骤:
(1)将遥控器开机并通过USB接口接入电脑
(2)输入以下命令启动起飞降落仿真demo
cd ~/Prometheus/Scripts/simulation/tutorial_demo chmod +x takeoff_land.sh # 第一次启动该脚本时,需要添加可执行权限 ./takeoff_land.sh
(3)遥控器SWA档杆向下拨解锁无人机
(4)遥控器SWB档杆拨到中间位置将无人机控制状态切换到RC_POS_CONTROL
(5)遥控器SWB档杆拨到最底部将无人机控制状态切换到COMMAND_CONTROL
(6)无人机将自动起飞,到达预设高度后悬停30秒,随后自动降落
takeoff_land.sh脚本:
#!/bin/bash
# 脚本名称: takeoff_land
# 脚本描述: 该脚本为起飞&降落控制demo启动脚本,包含PX4 SITL,Gazebo仿真环境,无人机控制节点以及起飞&降落控制节点
gnome-terminal --window -e 'bash -c "roscore; exec bash"' \
--tab -e 'bash -c "sleep 5; roslaunch prometheus_gazebo sitl_outdoor_1uav.launch; exec bash"' \
--tab -e 'bash -c "sleep 6; roslaunch prometheus_uav_control uav_control_main_outdoor.launch; exec bash"' \
--tab -e 'bash -c "sleep 7; roslaunch prometheus_demo takeoff_land.launch; exec bash"' \
#--tab -e 'bash -c "sleep 7; rosrun prometheus_demo takeoff_land.py; exec bash"' \
该脚本在一个终端启动三个 窗口:
roslaunch prometheus_gazebo sitl_outdoor_1uav.launch
roslaunch prometheus_uav_control uav_control_main_outdoor.launch
roslaunch prometheus_demo takeoff_land.launch
操作流程:
(1)vscode里面 执行:./takeoff_land.sh
(2)启动了Gazebo仿真软件以及一个终端
终端窗口:显示当前无人机的状态数据
(3)遥控器SWA档杆向下拨解锁无人机
无人机桨叶开始转动,状态数据中的 disarmed --> armed,说明解锁成功
(4)遥控器SWB档杆拨到中间位置将无人机控制状态切换到RC_POS_CONTROL
controller --> RC_ROS_CONTROL 说明模式转换成功
(5)遥控器SWB档杆拨到最底部将无人机控制状态切换到COMMAND_CONTROL
(6)无人机将自动起飞,到达预设高度后悬停30秒,随后自动降落
节点运行图
ROS查看节点图命令
rqt_graph