UAVControl—Prometheus代码阅读笔记【二】——节点实现

2023-05-16

Prometheusv2中的uav_control代码阅读笔记,个人学习用。
内容正在补充中,欢迎大家交流!

代码来源:
https://github.com/amov-lab/Prometheus


二、节点实现

  • (一)无人机控制节点:uav_control_main_1
    • 1.源文件位置
    • 2.发布话题
    • 3.订阅话题
    • 4.参数
  • (二)遥控器节点:joy_node
    • 1.源文件位置
    • 2.发布话题
    • 3.订阅话题


(一)无人机控制节点:uav_control_main_1

1.源文件位置

  • Modules/uav_control/src/uav_control_node.cpp
  • Modules/uav_control/src/uav_controller.cpp
  • Modules/uav_control/src/uav_estimator.cpp

节点名称为uav_control_main_1,对应的ROS功能包名为prometheus_uav_control。该模块为Prometheus项目的基础模块,完成Prometheus其他功能模块与mavros节点进行数据交互。
uav_control_node.cpp完成UAV_estimator与UAV_controller类的实例化,具体功能在uav_controller.cpp与uav_estimator.cpp中实现。
发布话题和订阅话题中均带有命名空间/uav*,无人机编号不同则对应的命名空间不同,一般情况下默认为/uav1。

2.发布话题

  • /uav*/mavros/setpoint_raw/attitude(mavros_msgs/AttitudeTarget):期望的无人机姿态控制量
  • /uav*/mavros/setpoint_raw/global(mavros_msgs/GlobalPositionTarget):期望的无人机经纬高控制量
  • /uav*/mavros/setpoint_raw/local(mavros_msgs/PositionTarget):期望的无人机ENU坐标系的控制量(包含位置、速度、加速度等)
  • /uav*/mavros/vision_pose/pose(geometry_msgs/PoseStamped):MAVROS提供的外部定位数据接口
  • /uav*/prometheus/control_state(prometheus_msgs/UAVControlState):Prometheus控制状态
  • /uav*/prometheus/odom(nav_msgs/Odometry):无人机里程计数据
  • /uav*/prometheus/offset_pose(prometheus_msgs/OffsetPose):ENU坐标系下的位置偏移量
  • /uav*/prometheus/state(prometheus_msgs/UAVState):无人机状态合集,包括位置\速度\姿态\模式等
  • /uav*/prometheus/text_info(prometheus_msgs/TextInfo):反馈到地面站的打印信息
  • /uav*/prometheus/trajectory(nav_msgs/Path):无人机运动轨迹
  • /uav*/prometheus/uav_mesh(visualization_msgs/Marker):无人机位置(带图标),用于RVIZ显示

3.订阅话题

  • /uav*/mavros/battery(sensor_msgs/BatteryState):无人机电池状态
  • /uav*/mavros/global_position/global(sensor_msgs/NavSatFix):无人机当前经纬度数据,经飞控融合过后的数据.
  • /uav*/mavros/gpsstatus/gps*/raw(mavros_msgs/GPSRAW):GPS模块数据状态
  • /uav*/mavros/imu/data(sensor_msgs/Imu):IMU模块数据
  • /uav*/mavros/local_position/pose(geometry_msgs/PoseStamped):无人机ENU坐标系下的位置数据
  • /uav*/mavros/local_position/velocity_local(geometry_msgs/TwistStamped):无人机ENU坐标系的当前速度数据
  • /uav*/mavros/setpoint_raw/target_attitude(mavros_msgs/AttitudeTarget):PX4中无人机的姿态设定值 (坐标系:ENU系)
  • /uav*/mavros/setpoint_raw/target_local(mavros_msgs/PositionTarget):PX4中无人机的位置/速度/加速度设定值(坐标系:ENU系)
  • /uav*/mavros/state(mavros_msgs/State):无人机当前状态(PX4)
  • /uav*/prometheus/command(prometheus_msgs::UAVCommand):无人机控制指令(用于COMMAND_CONTROL模式)
  • /uav*/prometheus/fake_rc_in(mavros_msgs/RCIn):PX4遥控器数据
  • /uav*/prometheus/offset_pose(prometheus_msgs::OffsetPose):ENU坐标系下的位置偏移量
  • /uav*/prometheus/set_local_offset_pose(prometheus_msgs::OffsetPose):设置ENU坐标系下无人机的位置偏移量
  • /uav*/prometheus/setup(prometheus_msgs/UAVSetup):无人机设置指令
  • /uav*/prometheus/state(prometheus_msgs/UAVState):无人机状态合集,包括位置、速度、姿态、模式等

4.参数

  • uav_id: 无人机编号
  • sim_mode:是否为仿真(true为仿真,false非仿真)
  • control/pos_controller:控制器标志位
  • control/enable_external_control:是否使用外部控制器
  • control/Takeoff_height:command_control模式下起飞高度
  • control/Disarm_height:land_control模式下自动上锁的高度
  • control/Land_speed:land_control模式下下降的速度
  • control/location_source:定位数据来源(备注: 0: MOCAP, 1: T265, 2: GAZEBO, 3: FAKE_ODOM, 4: GPS, 5: RTK, 6: UWB)
  • control/maximum_safe_vel_xy:XY轴最大安全速度
  • control/maximum_safe_vel_z:Z轴最大安全速度
  • control/maximum_vel_error_for_vision:最大vision/px4速度误差
  • geo_fence/x_min:地理围栏X轴最小值
  • geo_fence/x_max:地理围栏X轴最大值
  • geo_fence/y_min:地理围栏Y轴最小值
  • geo_fence/y_max:地理围栏Y轴最大值
  • geo_fence/z_min:地理围栏Z轴最小值
  • geo_fence/z_max:地理围栏Z轴最大值

uav_control_indoor.ymal 中可修改

(二)遥控器节点:joy_node

1.源文件位置

  • Modules/uav_control/utils/joy_node.cpp

节点名称为joy_node,在joy_node功能包中实现。对应的ROS功能包名为prometheus_uav_control。

2.发布话题

  • /uav*/prometheus/fake_rc_in(mavros_msgs/RCIn):发布相同的遥控器指令
  • /uav*/mavros/rc/override(mavros_msgs/OverrideRCIn):无用
  • /uav*/mavros/manual_control/send(mavros_msgs/ManualControl):无用

3.订阅话题

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

UAVControl—Prometheus代码阅读笔记【二】——节点实现 的相关文章

随机推荐

  • 【案例】微服务-中台-业务关系图(来自processon)

    微服务 中台 业务关系图 知识云微服务架构 微服务开发平台规划架构图 微服务架构图 物联网微服务无业务架构 阿里中台技术在大型企业数字化转型的架构图 阿里中台战略笔记
  • prometheus监控域名证书到期时间

    参考 xff1a https mp weixin qq com s gXffcNzixAiTKSBZcf2sBA 最终效果图 xff1a 下面全部使用docker部署 xff1a 一 部署prometheus 这是一个默认的promethe
  • windows更新后无法上网问题(wifi和有线都不行)

    我真是个既倒霉又幸运的孩子 曾经 xff0c 有人在旁边抱怨 xff1a 该死的微软 xff0c 更新了一堆bug xff01 我没有理他 xff0c 因为它没有影响到我 xff0c 我很开心 曾经 xff0c 又有人在旁边抱怨 xff1a
  • 服务器上的 Git - Gitosis

    公司有这个东西 xff0c 之前一直没研究过这个是啥 xff0c 原来就是git的一个权限管理工具 xff0c 可以用来搭建git服务器 xff0c 当然gitlab更好用 具体请参考 xff1a 服务器上的 Git Gitosis 本篇文
  • MAC重装

    options 43 command 43 r xff0c 开机长按 xff0c 抹掉磁盘 xff0c 在线安装
  • 深度强化学习专栏 —— 3.实现一阶倒立摆

    我将文章发表在了古月居 xff0c 一起来看看吧 xff01 戳这里 猜你想看 xff1a 深度强化学习专栏 1 研究现状深度强化学习专栏 2 手撕DQN算法实现CartPole控制深度强化学习专栏 3 实现一阶倒立摆pybullet杂谈
  • mysql导入数据报错ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it

    参考 xff1a https blog csdn net u011677147 article details 64129606 参考 xff1a http blog itpub net 31015730 viewspace 2152273
  • 第五章

    一 master节点生成密钥 发送至所有node节点 span class token punctuation span root localhost span class token punctuation span span class
  • linux中的&符号

    很好的文章 xff0c 文件描述符那个一直不是很懂 xff1a https www linux com blog learn 2019 2 ampersands and file descriptors bash https www lin
  • 三剑客20190714

    最后wordpress项目 xff1a main yml root 64 jenkins wordpress playbooks cat roles wordpress tasks main yml name Update yum depe
  • office2019中不包含onenote2016

    office2019中不包含onenote office2019中不包含onenote xff0c 而windows自带的onenote界面又大改 xff0c 完全不适应 xff0c 如何下载onenote2016 一 进入onenote下
  • kubernetes 1.15.1 高可用部署 -- 从零开始

    kubernetes 1 15 1 高可用部署 从零开始 晚点开始部署
  • prometheus和node_exporter部署

    监控体系 前面一篇文章对prometheus作了简单的入门了解 xff0c 在安装prometheus和node exporter之前先对监控体系做一下梳理 xff0c 更直观的讲可以分为iaas paas xff0c saas三个维度来说
  • ROS的一些基础的知识,自用

    零散小知识 先参考这个博客 再参考这个博客总结的知识点 查看当前所以发布的话题名 rostopic list 让ros一直调用回调函数 xff0c ros spin如下的代码无效函数 ros span class token operato
  • TMS320F28377X芯片can通信心得笔记(2)——流程细节

    一 xff0c 前言 补充上一篇文章 TMS320F28377X芯片can通信心得笔记 xff0c 之前一直找不到清晰又压缩的方式把图片缩小 二 xff0c 补充流程如图片和部分代码 带颜色 和带 号部分为中断配置 1 CAN配置部分代码
  • IDEA创建一个servlet项目

    1 File gt project gt java project 选中web application 如果选择java Enterprise可以免去后期导入servlet api jar包和配置Tomcat xff0c 但是需要在proj
  • STM32系列单片机的标准外设库、HAL库和LL库的区别和介绍

    本文转载自CSDN博客 xff1a ZCShouEXP xff0c 点击此处跳转至原博客 STM32 Embedded Software 工作以来一直使用意法半导体 xff08 ST xff09 的STM32系列MCU xff0c ST为开
  • Github的wiki编写

    全球最大的wiki xff0c 应该就是维基百科吧 xff0c 其实百度百科 xff0c csdn写博客等等也是wiki 不久前自己接触了Github wiki的编写 xff0c 因此做个记录吧 模式一般选择Markdown xff0c 因
  • EGOPlanner—Prometheus代码阅读笔记汇总

    Prometheusv2中的EGOSwarm代码阅读笔记 xff0c 个人学习用 目前还有部分代码没看明白 xff0c 欢迎大家交流 xff01 主要参考资料 xff1a Fast Planner 代码解读参考资料整理 EGO Swarm代
  • UAVControl—Prometheus代码阅读笔记【二】——节点实现

    Prometheusv2中的uav control代码阅读笔记 xff0c 个人学习用 内容正在补充中 xff0c 欢迎大家交流 xff01 代码来源 xff1a https github com amov lab Prometheus 二