当前位置: 首页 > news >正文

仿真1 - takeoff_land

实验步骤:

(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

 

相关文章:

  • 基于C语言的图论汇编
  • 非自交任意多边形与矩形框的交集面积计算方法
  • 软件测试项目实战,Web测试常用测试点,即拿即用宝典
  • i.MX 6ULL 驱动开发 九:中断
  • typename 的用法
  • java题2
  • 【Python深度学习】深度学习框架搭建模版
  • 双绞线连接网卡和集线器时的制作步骤
  • vue实战-mockjs模拟数据
  • 深度学习优化算法之动量法[公式推导](MXNet)
  • tomcat面试和Spring的面试题
  • 网课查题公众号接口
  • 基于Hive的搜狗搜索日志与结果Python可视化设计
  • vue+echarts项目四:地区销量趋势(堆叠折线图)
  • SpringSecurity实战-第6-8章
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • Java|序列化异常StreamCorruptedException的解决方法
  • React的组件模式
  • React组件设计模式(一)
  • REST架构的思考
  • Vue2.x学习三:事件处理生命周期钩子
  • 诡异!React stopPropagation失灵
  • 计算机常识 - 收藏集 - 掘金
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用 @font-face
  • 使用parted解决大于2T的磁盘分区
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # C++之functional库用法整理
  • #QT(串口助手-界面)
  • #每日一题合集#牛客JZ23-JZ33
  • (TOJ2804)Even? Odd?
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)大型网站架构演变和知识体系
  • .Net 4.0并行库实用性演练
  • .net 7 上传文件踩坑
  • .NET 8.0 发布到 IIS
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Core中的去虚
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET项目中存在多个web.config文件时的加载顺序
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .net中调用windows performance记录性能信息
  • .sh 的运行
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [Bugku]密码???[writeup]
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
  • [hibernate]基本值类型映射之日期类型