Promethues: swarm_control解读

2023-05-16

标签可以对节点分组,具有 ns 属性,可以让节点归属某个命名空间
<group ns="iris_0">

    <group ns="iris_0">
        <!-- VINS-Fusion -->
        <node pkg="vins" type="vins_node" name="vins_estimator" args="$(find vins)/../config/xtdrone_sitl/iris_0_px4_sitl_config.yaml" />
        <include file="$(find vins)/launch/vins_rviz.launch" />
    </group>

请添加图片描述`

Promethues

仿真节点图
请添加图片描述实验节点图
请添加图片描述

Promethues代码功能解读

【Module/swarm_control】文件夹下
/ego_traj_to_cmd.cpp
订阅EGO的轨迹输出,即traj_server的输出,同时发布路径swarm_command指令至
swarm_controller.cpp,其实数据内容并没有做改变,只是换了一个存储格式

/swarm_controller.cpp
订阅集群控制指令(ego_traj_to_cmd.cpp提供)以及无人机姿态(swarm_estimator.cpp提供),或邻居无人机姿态(若存在多无人机)
发布无人机期望位置以及期望姿态,其中回调函数具体写在swarm_controller.h中
以计时器的方式执行mainloop_cb()函数,根据不同的无人机模式执行相应指令;以计时器的方式调用control_cb()函数,在无人机不同模式下,以不同方式发送期望位置或者速度。

/swarm_estimator.cpp
订阅px4的velocity_local数据(速度、角速度)以及imu数据(旋转角、线加速度、角加速度);订阅实际实验中飞行高度,gazebo仿真中实验真值等
发布vision_pose/pose话题(无人机位置和偏航角),该话题是外部定位位置通过订阅的传感器经过处理发布的位置信息,发布无人机姿态drone_state话题给swarm_controller.cpp和swarm_ground_station.cpp,发布轨迹等消息
【参考】如何使用外部定位设备作为无人机位置估计https://bbs.amovlab.com/forum.php?mod=viewthread&tid=416

/swarm_ground_station.cpp
无人机群订阅swarm_command话题和drone_state话题,同时分别打印n驾无人机相关信息,包括位置、速度、加速度、无人机的状态信息等

/swarm_terminal_control.cpp
发布swarm_command话题(飞机控制指令,包括飞机模式,或直接飞行过去的目标点)和ego/goal话题,开启终端控制飞机,由用户决定飞机offboard->takeoff模式,同时用户输入飞行目标点,发布目标,由ego_replan_fsm.cpp接受

  • mavros常用消息格式

https://zhuanlan.zhihu.com/p/364872655

  • ROS与Navigation导航包用法详解

https://www.ncnynl.com/category/ROS2-Navigation2/
rostopic echo /uav2/prometheus/drone_state

---
header: 
  seq: 2539
  stamp: 
    secs: 279
    nsecs: 252000000
  frame_id: ''
connected: True
armed: True
landed: False
mode: "OFFBOARD"
odom_valid: False
time_from_start: 0.0
position: [3.0103416442871094, 2.974745512008667, 0.9297070503234863]
rel_alt: 0.0
velocity: [0.009897144511342049, -0.0017237744759768248, -0.009264364838600159]
attitude: [-0.009377377107739449, 0.014646852388978004, 0.2895106375217438]
attitude_q: 
  x: 0.00569589431254
  y: -0.00657036379321
  z: -0.144278819843
  w: -0.989498884845
attitude_rate: [-0.006956169381737709, -0.006956169381737709, -0.006956169381737709]
battery_state: 0.0

rostopic echo /prometheus/control_command
包括:起飞、降落、惯性系移动、机体系移动、速度控制、悬停、紧急停止

rostopic echo /uav2/prometheus/drone_state
包括:连接状态、解锁状态、飞行模式、位置、速度、姿态

header: 
  seq: 6019
  stamp: 
    secs: 453
    nsecs: 252000000
  frame_id: ''
connected: True
armed: True
landed: False
mode: "OFFBOARD"
odom_valid: False
time_from_start: 0.0
position: [2.9981884956359863, 2.9432859420776367, 0.9262572526931763]
rel_alt: 0.0
velocity: [0.015787186101078987, 0.012938245199620724, -0.0030638640746474266]
attitude: [-0.020875293761491776, 0.020600970834493637, 0.28966668248176575]
attitude_q: 
  x: 0.0118141648315
  y: -0.00868557101002
  z: -0.144418368059
  w: -0.989408058386
attitude_rate: [0.006223284639418125, 0.006223284639418125, 0.006223284639418125]
battery_state: 0.0

rostopic echo /uav2/map_generator/local_cloud

header: 
  seq: 13629
  stamp: 
    secs: 0
    nsecs:         0
  frame_id: "/world"
height: 1
width: 98
fields: 
  - 
    name: "x"
    offset: 0
    datatype: 7
    count: 1
  - 
    name: "y"
    offset: 4
    datatype: 7
    count: 1
  - 
    name: "z"
    offset: 8
    datatype: 7
    count: 1
is_bigendian: False
point_step: 16
row_step: 1568
data: [236, 81, 192, 64, 61, 1....]

/uav2/prometheus/ego/traj_cmd

header: 
  seq: 445932
  stamp: 
    secs: 4632
    nsecs: 851000000
  frame_id: "world"
position: 
  x: 3.01908558629
  y: 3.00703613712
  z: 0.999371033507
velocity: 
  x: 0.0
  y: 0.0
  z: 0.0
acceleration: 
  x: 0.0
  y: 0.0
  z: 0.0
yaw: 0.289698575658
yaw_dot: 0.0
kx: [0.0, 0.0, 0.0]
kv: [0.0, 0.0, 0.0]
trajectory_id: 6
trajectory_flag: 1

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

Promethues: swarm_control解读 的相关文章

随机推荐

  • 十年研发经验工程师的嵌入式学习书籍大推荐

    从事嵌入式研发行业十年 xff0c 认为学习就是要不断的吸纳知识 xff0c 在研发过程中 xff0c 经常会遇到一些问题 xff0c 这种发现问题并解决问题的过程就是进步 为什么选择学习嵌入式 xff1f 嵌入式系统无疑是当前最热门最有发
  • js手机号正则表达式验证

    看到网上很多代码 都很复杂 xff0c 还包括以中文开头的86 xff0c 17951 xff0c 其实谁会填这么多 xff0c 无非是检验一下他们是否位数对不对 xff0c 开头有没有写错而已 下面我们从百度百科的手机号码历程来看 xff
  • 正则验证匹配中文姓名全部源字符串

    这个是验证匹配中文姓名的全部源串 xff0c 在网上找了很久 xff0c 大都是验证匹配含有中文 xff0c 就在网上某人提供的正则的基础上修改成了验证所填姓名的每个字符 xff0c 只有都匹配才能验证通过 该正则为 xff1a u4e00
  • 域名,网站名和URL区别

    要写一个正则表达式来验证输入域名是否有正确 xff0c 一直以为例如http www baidu com类似于这种才是网站域名 xff0c 经过百度才发现自己的认知是错误的 以下转载于百度经验 xff1a http jingyan baid
  • 23种设计模式(1)-Facade设计模式

    前记 曾经我遇见的一个需求是这样的 xff0c 接口A有个方法void methodA xff0c 类B需要实现接口A的methodA 方法 xff0c 并且在类B中需要把methodA 方法内部处理逻辑获得的结果利用C类实例的某个方法进行
  • Linux CentOS 7安装GNOME图形界面并设置默认启动方式

    为hadoop集群做准备 xff0c 没有多台电脑 xff0c 也只能委屈我这渣渣电脑了 在我的物理机上安装虚拟机 xff0c 再在虚拟机里面虚拟出两台电脑 xff0c 安装两个linux操作系统 1 xff0c 电脑太渣 xff0c 安装
  • dubbo学习资源

    简介 xff1a 项目有使用dubbo xff0c 以此需要学习一下 xff0c 搜集学习资源 一 xff0c 博客资源 1 xff0c dubbo学习 2 xff0c dubbo配置
  • 使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

    有时我们会给页面的元素 xff08 比如div xff09 设置个固定的高度或宽度 但如果给这个div又设置了内边距或者边框的话 xff0c 那么这个div就会被撑大 也就是其实际的尺寸变成了 xff1a 设置的宽高尺寸 43 内边距 43
  • 博客搬家:https://blog.csdn.net/u012995888

    本博客文章有些乱 xff0c 多有转载 xff0c 现在主要在另一CSDN账号更新原创文章 xff0c 点击查看博客主页 另外 xff0c 本博客后续可能会重新整理栏目 xff0c 更新高质量文章 xff0c 谢谢关注 xff01
  • C++ 常用设计模式(学习笔记)

    1 工厂模式 工厂模式 xff1a 简单工厂模式 工厂方法模式 抽象工厂模式 1 简单工厂模式 xff1a 主要特点是需要在工厂类中做判断 xff0c 从而创造相应的产品 xff0c 当增加新产品时 xff0c 需要修改工厂类 typede
  • 通过更新显卡驱动和内核,解决linux启动时在starting atd: [ok]停止的问题

    说得有些复杂 xff0c 你可以不用理会这些 xff0c 直接执行我罗列的那几个命令就行了 方法一 xff1a 网上有说In some cases the new install Gforce Drivers do not supporte
  • Streamedian/html5_rtsp_player接海康视频遇到的坑

    Streamedian是一套能够让浏览器免插件播放RTSP的项目 安装了其官方的server端后有一个demo 如图 xff0c 在输入处输入红框格式的RTSP地址 xff0c 如官方的demo地址 xff1a rtsp 184 72 23
  • 文档与笔记利器 reStructuredText 和 Sphinx

    原文http qixinglu com archives note tools restructuredtext sphinx 文档与笔记利器 reStructuredText 和 Sphinx 28六 2011 作者 投稿 转载 本文采用
  • 关于递归的问题:无限递归

    当你在写递归的时候 xff0c 可能会出现运行不出结果来 xff0c 此时你应该试着看看会不会出现无限递归的问题 xff0c 如果有的话 xff0c 你可以在前面增加一个判断语句 xff0c 满足条件进入执行相关操作与递归 xff0c 但在
  • 无人机路径规划1:orbslam2+VIO

    无人机路径规划1 xff1a orbslam2 43 VIO 安装XTDRONE平台 https www yuque com xtdrone manual cn basic config ros基本操作 ros中文版教程 http wiki
  • 无人机路径规划2 vins_fusion + rtab_map学习

    导航过程中的tf Map gt odom gt base footprint gt base link odom里程计 odom tf base footprint gt base link xff1a robot state publis
  • 无人机路径规划3:ego-planner三维运动规划实现

    XTDrone实现ego planner三维运动规划 编译ego palnner span class token function cp span r XTDrone motion planning 3d ego planner catk
  • XTDRONE:ego_planner三维运动规划

    ros常用消息类型 xff1a https blog csdn net xhtchina article details 119707553 iris 0 ego transfer话题在 XTDrone motion planning 3d
  • 无人机运动规划4:ego-swarm无人机群运动规划

    配置 启动python脚本生成多机launch文件 span class token builtin class name cd span XTDrone coordination launch generator python3 gene
  • Promethues: swarm_control解读

    标签可以对节点分组 xff0c 具有 ns 属性 xff0c 可以让节点归属某个命名空间 lt group ns 61 34 iris 0 34 gt lt group ns 61 span class token string 34 ir