实验步骤:
(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
![](https://img-blog.csdnimg.cn/1e2807929fd141e8ba18f7abc6182172.png)
(2)启动了Gazebo仿真软件以及一个终端
![](https://img-blog.csdnimg.cn/d97e587413864cf6a96f5685c560cb37.png)
终端窗口:显示当前无人机的状态数据
![](https://img-blog.csdnimg.cn/0dccd12aa12c463795d3cc9191b686dd.png)
(3)遥控器SWA档杆向下拨解锁无人机
无人机桨叶开始转动,状态数据中的 disarmed --> armed,说明解锁成功
![](https://img-blog.csdnimg.cn/b942fa235f9845c29a407be9cde478af.png)
(4)遥控器SWB档杆拨到中间位置将无人机控制状态切换到RC_POS_CONTROL
controller --> RC_ROS_CONTROL 说明模式转换成功
![](https://img-blog.csdnimg.cn/0aeb39849d0e4a1686365eedb0ce9497.png)
(5)遥控器SWB档杆拨到最底部将无人机控制状态切换到COMMAND_CONTROL
![](https://img-blog.csdnimg.cn/46a71e7427f949cdb8ee8303e4938f1c.png)
(6)无人机将自动起飞,到达预设高度后悬停30秒,随后自动降落
节点运行图
ROS查看节点图命令
rqt_graph
![](https://img-blog.csdnimg.cn/135b392a0b534b5b8905d7c9dbe6b6ff.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)