七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)

2023-05-16

笔记来源于开源项目:基于PX4和ROS的无人机仿真平台

来源于开源项目:GAAS


目录

一、PX4与ROS关系

二、XTDrone源码下载

三、用键盘控制无人机飞行

四、代码解读

 


 

一、PX4与ROS关系


注意各端口(UPD port)
或者看下面的这个图的表示关系!我们一般在offboard模式下通过外部程序完成我们给无人机的任务

二、XTDrone源码下载

XTDrone是一个开源项目,目前支持多旋翼飞行器(multirotor)、固定翼飞行器(plane)、可垂直起降固定翼飞行器(vtol)以及车辆(rover)四个大类机型,multirotor下有iris、solo和typhoon_h480三个机型,vtol下有tailsitter、quadplane和tiltrotor三个机型,plane和rover没有下属机型。

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r sitl_config/models/* ~/.gazebo/models/
cp sitl_config/launch/* ~/PX4_Firmware/launch/

#下面这一条是我自己加上去的,我认为是需要的(在后面的程序中)
cp sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/

三、用键盘控制无人机飞行

one terminal:(启动gazebo,出现了场景和飞机)

cd ~/PX4_Firmware
roslaunch px4 indoor1.launch

second terminal:(启动通信脚本,iris代表子机型,0代表飞机的编号,与0号iris建立通信)

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

third terminal:(启动键盘控制脚本,iris代表机型,1代表飞机的个数,vel代表速度控制)

cd ~/XTDrone/control/
python multirotor_keyboard_control.py iris 1 vel

虽然多旋翼飞机提供了速度控制和加速度控制的两种键盘控制方式,但是速度的方便一点,加速度在后面的高级运动规划任务中比较有用。

注意注意,下面这个是键盘控制的方法,不然你可能不会调试飞机,飞起来不会动或者怎么样:

image.png

  1. 按 i,(多按几次) 把z方向的速度调试到0.3m/s以上(有没有记得前面有说到过那个pwm控制在0.5到1之间,不能从0开始,我感觉可能和这个有关系)
  2. 按b,切换到offboard模式
  3. 按t,解锁,飞机起飞
  4. 飞机飞到合适的高度后,按s实现飞机的悬停
  5. w/x:控制前进的速度
  6. a/d:控制左右移动的速度
  7. i/,:控制上升下降的速度
  8. j / l:控制偏航的角度(旋转视角)

四、代码解读

这里打开了三个终端,分别打开了

  • indoor1.launch 
  • multirotor_communication.py
  • multirotor_keyboard_control.py

接下来,对三个文件对照比赛开始解读:

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制) 的相关文章

随机推荐

  • 知识图谱概述(图谱学苑课程)

    1 知识图谱概念 知识图谱本质上是基于图的语义网络 xff0c 表示实体和实体之间的关系 构建知识图谱的目的 xff0c 就是让机器具备认知能力 xff0c 理解这个世界 2 知识图谱研究的多个维度 2 1 知识图谱相关发展领域 知识图谱是
  • 关于keils中#include后的双引号““与尖引号<>的区别

    关于keils中 include后的双引号 34 34 与尖引号 lt gt 的区别 关于 include 后的 与 lt gt KEILS中 include后的 与 lt gt 关于 include 后的 与 lt gt lt gt 搜索
  • UC/OS-III学习——触发PendSV中断

    UC OS III学习 触发PendSV中断 前言一 关于PendSV的基础知识二 代码1 c语言2 汇编语言 前言 PendSV典型使用场合是在上下文切换时 xff08 在不同任务之间切换 xff09 本文主要介绍触发PendSv中断的两
  • 数据结构与算法(C语言)------顺序线性表

    顺序线性表 定义 xff1a 线性表的顺序存储结构 xff0c 指的是用一段地址连续的存储单元依次存储线性表的数据元素 线性表的顺序存储的结构代码 xff1a span class token macro property span cla
  • 操作系统---内存管理

    操作系统之内存管理 内存管理1 概念2 内存空间的分配和回收内存空间的分配和回收会需要实现的功能用户空间的分配进程空间的分配内存分配策略 从逻辑地址到物理地址的转换 内存管理 1 概念 1 什么是内存 xff1f 首先从硬件的角度去理解内存
  • C/C++中字符串和数字之间的转换

    1 数字转换成字符串 1 采用to string 函数 std string to string int value std string to string long value std string to string long lon
  • Xmanager 5 远程连接linux图形界面

    准备环境 xff1a Windows客户端安装 Xmanager 软件我用的Xmanager Enterprise 5 Linux系统环境 root span class hljs property 64 localhost span sp
  • Git将本地仓库上传到Github远程仓库

    1 本地配置SSH keys 1 在本地创建ssh key xff08 进入windows根目录 xff09 ssh keygen t rsa C span class token string 34 email addr 64 email
  • 什么是伺服电机的电流环、速度环、位置环和带宽?

    FAQ What are servo motor current velocity and position loops and bandwidths 伺服电机在闭环系统中运行 xff0c 该系统包括反馈装置 驱动器 xff08 放大器 x
  • ROS创建功能包,catkin_make没有编译,没出CMake的log

    问题描述 xff1a 我需要在原有的ROS工程基础之上 xff0c 新建一个ROS功能包 我直接复制了目录下原有的一个包 xff0c 进行修改 然后恶心的事来了 xff1a catkin make后竟然没有反应 甚至没有检测到我新改写的cm
  • TypeScript 对象动态添加属性和删除属性

    1 准备对象数组 span class token keyword let span cities span class token operator 61 span span class token punctuation span sp
  • 计算机 原码、反码、补码(相互转化)

    一 基本概念 在计算机系统中 xff0c 数值一律用补码来表示和存储 原因在于 xff0c 使用补码 xff0c 可以将符号位和数值域统一处理 xff1b 同时 xff0c 加法和减法也可以用补码统一处理 此外 xff0c 补码与原码相互转
  • 一、PX4环境搭建和编译(Ubuntu 16.04、ROS kinetic)

    Ubuntu16 04 xff32 xff2f xff33 xff1a kinetic 源于 官网PX4开发指南 v1 10 0 lt master gt https dev px4 io v1 10 zh 稍微参考一下这个网站 xff1a
  • 二、MAVROS的安装(PX4:v1.10.0 \ ROS:kinetic)

    mavros 功能包提供了 一台能够运行ros的机载电脑 支持MAVLINK协议的飞控和支持MAVLINK的地面站这三者之间的通讯功能 MAVROS 是 ROS 与 MAVLink 协议之间的 有 34 官方 34 支持的ROS功能包 它当
  • 三、MAVROS功能包的offboard模式控制例子

    这里介绍了介绍了使用 Gazbo SITL 中模拟的四轴飞行器 Offboard 控制的基础知识 如何通过MAVROS功能包的offboard模式控制gazebo中的飞机起飞到高度两米 主要过程 xff1a 要先解锁无人机 xff0c 在切
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 xff1a 沈阳无距科技 工业级无人机的中国名片 xff08 编程外星人 xff09 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号
  • WinIo驱动级键盘模拟编程

    前天无聊 xff0c 翻翻自己的兴趣项目文件夹 xff0c 发现了这个放下很久的项目 xff01 那是大三时候的事了 当时是为了提高我魔兽三的按键速度 xff0c 用了个叫移花接木的软件 xff0c 把键盘的键位改了 的确是有所帮助 xff
  • 五、无人机知识笔记(中级:控制原理与程序实现)

    笔记来源于 xff1a 沈阳无距科技 工业级无人机的中国名片 xff08 编程外星人 xff09 目录 一 飞控整体架构 一 数据存储 xff08 Storage xff09 二 外部通讯 xff08 External Connectivi
  • 九、键盘控制无人机 · 中(multirotor_communication.py解读)

    笔记来源于开源项目 xff1a 基于PX4和ROS的无人机仿真平台 来源于开源项目 xff1a GAAS 目录 一 解读启动通信的multirotor communication py脚本 1 库函数以及消息服务 2 class Commu
  • 七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)

    笔记来源于开源项目 xff1a 基于PX4和ROS的无人机仿真平台 来源于开源项目 xff1a GAAS 目录 一 PX4与ROS关系 二 XTDrone源码下载 三 用键盘控制无人机飞行 四 代码解读 一 PX4与ROS关系 注意各端口