mavros坐标系转换与方向

2023-05-16

2021.05.04更新:

本文中提到的kinetic版本的mavros中body系的坐标系问题已经被修复为FLU坐标系,只需要更新kinetic版本的mavros即可!

sudo apt install ros-kinetic-mavros
sudo apt install ros-kinetic-mavros-msgs

----------原文分界线----------------------------------------------------------------------

本文写于2021年1月21日,以后mavros的坐标系方向可能还会变动。

mavros的坐标系真的比较乱,而且和px4所常用的坐标系不同。px4使用的坐标系为NED(北东地)坐标系或者FRD(前右下)坐标系。然而mavros中常使用的是ENU(东北天)坐标系或者body系(下面细讲),mavros会自动将输入的ENU坐标值或者body系坐标值转换到NED坐标系中,再通过mavlink发送给飞控。具体说明可以参考mavros的github仓库中的说明

mavros的话题中常见的坐标系有global系、local系、body系

global系好理解,是gps坐标系,经纬度什么的,用的不多。

local系指当地坐标系,一般是ENU坐标系,坐标原点一般在起飞点。如果有offset的话坐标原点在飞机上,这时其实是导航坐标系。

body系就比较有意思了。如果你用apt安装的ros-kinetic-mavros(二进制安装),即kinetic版本的mavros,则body系是RFU(右前上)坐标系,坐标原点在机体上。这个RFU坐标系表面上和ENU系有点像,但其实在工程领域和各大教材中都没有采用。因此在melodic版本中,body系已经改成了FLU(前左上)坐标系。在最新的mavros源码里,body系也已经更换成了FLU坐标系,因此是如果用源码编译的mavros,body系都是FLU系。

这个mavros的更改发生在:https://github.com/mavlink/mavros/pull/1446/files

其中,baselink系就是mavros所使用的body系(FLU),aircraft系是px4所使用的body系(FRD),用到的transform细节可以在/mavros/mavros/src/lib/ftf_frame_conversions.cpp/mavros/include/mavros/frame_tf.h中找到。

因此,使用kinetic和melodic版本的mavros一定要注意这个body系的差别。

具体到mavros中的话题,比如我们常用的mavros/setpoint_raw/local话题,话题类型是mavros_msgs/PositionTarget,这个话题类型官方解释如下:

其中coordinate_frame的说明不仅错误,而且极容易误导人。

px4中相关的issue:https://github.com/mavlink/mavros/issues/1500

coordinate_frame=1虽然代表向px4发送NED坐标值,但是你发送到这个话题的坐标系应该用ENU,mavros会自动完成这个坐标系的转换。同样的,coordinate=8 也不是NED系,而是FLU系。目前px4暂不支持向话题里发布coordinate=7、9的坐标值。

如果是用apt安装的旧版kinetic版本的mavros,恐怕body系还是奇怪的RFU系。切记切记。

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

mavros坐标系转换与方向 的相关文章

  • PX4四旋翼mavros与offboard模式在避障实时路径规划(SLAM)方面的应用培训班

    前言 基于SLAM的机器人技术 xff0c 一直是机器人领域的研究热点 xff0c 伴随了一个又一个无人车项目的落地 xff0c SLAM技术到了一个又一个的研究高潮 我们知道PX4构架下面的 mavros与offboard模式 xff0c
  • PIXHAWK无人机mavros与SLAM技术实用课程培训--北京站(2018年3月31日~4月2日)

    SLAM技术一直是机器人领域的研究热点 伴随着一个又一个无人车SLAM的落地 xff0c 技术的发展到了实用化的研究热潮 xff0c 尤其SLAM技术在无人机路径规划方面的研究更具无限潜力 xff0c 广阔的天地间毕竟还需要那么一双眼睛 众
  • ardupilot官方2018年项目计划表(建议)

    本文是一篇ArduPilot开发人员为GSoC2018建议的项目列表 xff0c 我们翻译过来方便大家观看 xff0c 文章来源 xff1a http ardupilot org dev docs gsoc ideas list html
  • offboard模式下的无人机自主飞行(基于树莓派,ROS,MAVROS)

    offboard模式下 xff08 基于树莓派 xff0c ROS xff0c MAVROS 无人机自主飞行测试视频链接地址 xff1a https v qq com x page t0633a3ykta html 我们在无人机视觉方面做了
  • 2018年4月最新版虚拟机(包含APM开发环境和PX4开发环境)

    以下为 2018年4月最新版代码编译 的虚拟机 xff08 包含APM开发环境和PX4开发环境 xff09 分享给一直支持阿木的大家 百度网盘下载地址 xff1a 链接 xff1a https pan baidu com s 1n9Pydi
  • 阿木社区pixhawk二次开发无人机参数测量报告

    为了更好的给无人机建模 xff0c 更好的给无人机建立数学模型 xff0c 用于算法开发 xff0c 我们测量了数据如下 xff1a 1 无人机绕三轴转动惯量的测量 在此我们利用双线摆来测量三个转动惯量 xff0c 其示意图和原理如下 xf
  • 千寻高精度定位系统能在pixhawk系统上使用成功吗?

    如何在不使用基站的情况下 xff0c 得到精确的位置数据 xff1f 如何给在无人车的开发提供全国范围的厘米级精确定位数据 xff1f 如何在基于pixhawk上的无人车 xff0c 无人船 xff0c 无人机上解决以上问题 xff1f 为
  • 在ubuntu server上安装raspi-config并开启CSI摄像头

    我的树莓派安装了ubuntu server18 04 xff0c 由于不是树莓派官方系统raspian xff0c 因此不自带raspi config 启动摄像头需要用到官方的raspi config配置程序 xff0c 进入官网地址 xf
  • 【测试】QGC地面站开发课程完结篇--一站多机控制测试说明

    阿木实验室去年推出的QGC地面站开发实战课程 xff0c 随着地面站控制多架飞机的测试的成功 xff0c 课程全部完结 xff0c 以下是我们户外测试最终版地面站的测试视频 xff1a 视频地址 xff1a https v qq com x
  • sdf文件使用plugin

  • VGG16训练RAF-DB

    使用VGG16对本地数据集RAF DB中的basic图片进行训练 xff0c 官方已经在图片命名时分好了train与test xff0c train和test的label在同一个txt文件里 xff0c 方便起见 xff0c 把这两种lab
  • CMake编译opencv(测试)

    WORKIGN FOR THE WOLF 单编译OpenCV来测试项目 项目名称 span class token operator span 自定义 span class token function project span span
  • 从零开始学习SLAM:openCV

    继续跟随 视觉SLAM十四讲 学习SLAM问题 xff0c 由于理论方面已经有一些研究 xff0c 主要缺乏的是在LINUX下的实战开发能力 xff0c 因而从代码开始分析入手 xff0c 同时对C 43 43 11进行回顾 1 openC
  • 对博士学位说永别

    来自王垠 xff1a http blog sina com cn s blog 5d90e82f0101atzr html 经过深思熟虑之后 xff0c 我决定再次 抛弃 我的博士学位 这是我第三次决定离开博士学位 xff0c 也应该是最后
  • python web开发——Django基于类的视图

    简介 视图是一个可调用对象 xff0c 可以接收一个请求然后返回一个响应 这个可调用对象不仅仅限于函数 xff0c Django 同时提供一些可以用作视图的类 它们允许你结构化你的视图并且利用继承和混合重用代码 后面我们将介绍一些用于简单任
  • 使用docker安装ubuntu镜像

    使用docker安装ubuntu镜像 查找Ubuntu镜像 docker search ubuntu 安装Ubuntu镜像 docker pull ubuntu 查看docker镜像 docker images 运行docker镜像 doc
  • Ubuntu安装kalibr

    Ubuntu安装kalibr错误集锦 一 安装过程 ros参考 xff1a https blog csdn net Mua111 article details 107513509 kalibr安装参考 xff1a https blog c
  • 树莓派4b ubuntu系统开启串口

    树莓派4b安装ubuntu server18后如何开启串口 xff1f 树莓派4b的引脚图如下 xff1a 其中GPIO14和GPIO15是硬件串口 因为我安装的不是Raspian系统 xff0c 因此无法用raspi config打开该串
  • 惯性导航原理(1):导航坐标系及相互转换

    一 导航坐标系转换 坐标系介绍1 惯性坐标系 xff08 地心惯性坐标系 xff09 i系2 地球坐标系 xff08 地心地固坐标系 xff09 e系3 WGS 84坐标系 xff08 常用 xff09 blh坐标系4 当地水平地理坐标系g
  • win7系统下安装Ubuntu20.04.5系统保姆级教程

    一 制作u盘启动盘 准备工作 xff1a 一个空的8G大小的u盘 43 ultraISO软件 43 ubuntu系统的镜像文件 1 下载并安装ultraISO软件 下载地址 xff1a 百度网盘 请输入提取码 提取码 xff1a jv6a

随机推荐

  • 手把手带你免费打嘉立创pcb板

    手把手带你免费打嘉立创pcb板 前言一 熟悉规则二 下单1 下载安装下单助手2 领劵 注意 前言 嘉立创的新规则 xff1a 上个月消费没有满20的话只支持立创EDA画的板子 一 熟悉规则 嘉立创的免费规则和板子工艺要求如下 xff0c 大
  • ADRC学习与参数整定心得

    ADRC xff0c 中文名是自抗扰控制技术 继承了经典PID控制器的精华 xff0c 对被控对象的数学模型几乎没有任何要求 xff0c 又在其基础上引入了基于现代控制理论的状态观测器技术 xff0c 将抗干扰技术融入到了传统PID控制当中
  • ArUco相关

    ArUco相关 ArUco xff0c 一个开源的微型的现实增强库 https blog csdn net bashendixie5 article details 113769010 Aruco码估计相机位姿初步 xff01 xff01
  • ArUco

    文章目录 一 ArUco简介二 Marker和字典三 步骤1 创建Marker xff08 Marker Creation xff09 2 检测Marker xff08 Marker Detection xff09 3 姿态估计 xff08
  • Python PIP升级后执行命令报错: sys.stderr.write(f“ERROR: {exc}“)解决方法

    近日在使用pip时终端始终提示 You are using pip version 8 1 1 however version 21 0 1 is available You should consider upgrading via th
  • 戴尔Optiplex-7080装ubuntu16.04双系统时遇到的一些坑

    目录 ubuntu16 04安装过程中遇到的坑安装教程安装类型为空 xff08 读取不到磁盘 xff09 ubuntu16 04安装完成后无法启动windows ubuntu16 04无法连接无线网络 ubuntu16 04安装过程中遇到的
  • Ubuntu 16.04无法检测双屏/nvidia-smi显示no running processing found/nvidia-settings读取不到显卡信息

    问题 xff1a 1 笔记本ubuntu 16 04系统无法检测双屏 xff0c xrandr不显示hdmi接口或hdmi disconnectted 2 nvidia smi的最下方显示No running processes found
  • C++中的智能指针:shared_ptr

    本文主要参考 std shared ptr C 43 43 shared ptr共享型智能指针详解 std shared ptr 是一种智能指针 xff0c 它能够记录多少个 shared ptr 共同指向一个对象 xff0c 从而消除显式
  • pixhawk4 mini重启后死机

    pixhawk4 mini通过供电口供电 xff0c telement1口连接数传 xff0c usb口连接树莓派 xff08 机载计算机 xff09 此时如果用QGC地面站数传发送reboot指令 xff0c pixhawk4 mini关
  • C++利用auto对std::vector进行遍历时auto的类型

    先把结论摆在最前面 xff0c 当使用for auto amp node nodes 对std vector lt xxx gt nodes进行遍历时 xff0c auto定义的node其实是一个对nodes中对应元素的引用 具体的探究过程
  • 使用roslaunch为Gazebo加载自定义模型时黑屏、报错问题

    今天自己弄了一个dae类型的模型文件 xff0c 想要导入gazebo xff0c 按照gazebo world文件中导入dae模型的问题文章操作了一番 xff0c 编写如下 world文件 span class token operato
  • 点云地图导入gazebo思路

    参考这篇帖子下曹超大神的回答 xff0c 思路如下 xff1a 曹超CMU xff1a 如果不需要用地图渲染rgb图像的话 xff0c 我们通常的做法是把纯激光雷达点云地图导入CloudCompare进行downsample和计算每个点的n
  • Git删除历史commit记录中的大文件

    在使用Git的过程中 xff0c 常常会出现不小心commit了没用作用的大文件 xff0c 导致无法push到远程的情况 xff0c 并且即使删除了该文件重新commit xff0c 该文件也已经保存在历史commit中 xff0c 仍然
  • realsense d435 刷固件后连接失败问题

    刷固件后提示 Backend in rs2 create device info list 000001B00E9DF470 index 0 source gt QueryInterface uuidof IKsTopologyInfo r
  • 用Stm32CubeMX在STM32F107上移植LWIP(PHY:DM9161A)

    背景 有一块吃灰7年的神州IV号开发板 xff0c 主控芯片STM32F107VCT6 xff0c PHY芯片DM9161A xff0c 配套的资料都是当年ST的标准库 这个开发板应该是因为当年上市太匆忙 xff0c 资料和代码的细节部分做
  • ROS_Python编程 之 案例代码核心解析(第一版)

    ROS Python编程 之 案例代码核心解析 xff08 第一版 xff09 通过Handsfree mini机器人平台配套的中级教程 xff0c 我对ros python编程实现 传感器数据读取 运动控制 的知识做以下归纳 xff1a
  • 一个结束,又是一个开始

    随着大一期终考试的结束 xff0c 我的C语言学习之旅算是暂告一段落 xff0c 盘点下来我最多就只是学习了一些最皮毛的语法之类的东西 xff01 我同时从各种渠道了解到C语言的特殊地位 是许多计算机语言的根本 xff0c 我也体会到其中的
  • 如何使用 Ubuntu 配置可视化桌面环境?

    https developer aliyun com article 727585 如何使用 Ubuntu 配置可视化桌面环境 xff1f 迪科斯彻 2019 11 20 1340浏览量 简介 xff1a Ubuntu 是一个世界领先的开源
  • 如何将电脑的代理网络以WIFI热点的方式共享

    文章目录 写在前面如何设置PC端连接代理设置共享1 打开win10自带的 移动热点 2 选择 更改适配器选项 3 连接代理4 右键连接 xff0c 打开属性页面 5 重新连接代理 xff0c 重启移动热点注意共享给有线网络 测试 由于各地甲
  • mavros坐标系转换与方向

    2021 05 04更新 xff1a 本文中提到的kinetic版本的mavros中body系的坐标系问题已经被修复为FLU坐标系 xff0c 只需要更新kinetic版本的mavros即可 xff01 sudo apt install r