声明:文中图片素材均采用了其他博主文章(文末参考来源),如有侵权或不妥(确有不妥和不安,奈何苦于佳图难觅),还望告知,立即删除!
坐标系统
ROS中的坐标系广义上来说一般有3种:世界坐标系、机器人坐标系及相机坐标系。他们都遵循右手定则(右手大拇指、食指和中指双双成90°,其中大拇指向上为Z轴正方向,中指朝外为Y轴正方向,食指对应的方向即为X轴正方向),绕轴旋转的规则也是右手定则,逆时针为正,顺时针为负。
广义坐标系
世界坐标系
还有一种中指朝上为Z轴正方向,食指朝里为Y轴正方向,大拇指的朝向为X轴正方向,这种其实可以利用常见的那种围绕Z轴逆时针旋转得到。
机器人坐标系
在Rviz中 我们可以搭建上图这样的一个机器人模型(左下角添加tf),正常情况R(红色)为X轴,G(绿色)为Y轴,B(蓝色)为Z轴,从机器人自身角度(传感器坐标系)来看,标准方向约定为:
- X轴:朝前
- Y轴:朝左
- Z轴:朝上
对于地理定位的短距离笛卡尔坐标系,使用东-北-上(ENU)的方向约定:
- X轴:朝东
- Y轴:朝北
- Z轴:朝上(天)
相机坐标系
一般以“_optical”作为后缀:
- X轴:朝右
- Y轴:朝下
- Z轴:朝上
其他坐标系
对于一些室外的应用系统(以"_ned"为后缀),可能会采用北-东-下(NED)的方向约定:
- X轴:朝北
- Y轴:朝东
- Z轴:朝下
狭义坐标系
在现实机器人开发中,我们比较常用的坐标系有/world、/map、/base_link、/odom、/sensor_link(比如laser_link)等。
移动机器人平台坐标系
- /world:世界坐标系,固定坐标系(帧),机器人所在空间的固定背景参考坐标系;
- /map: 地图坐标系,world-fixed frame,有时也同/world,位置数据离散;
- /odom: 里程计坐标系,world-fixed frame,机器人移动过程中通过自己的里程计系统定位自己所参考的坐标系,位置数据连续;
- /base_link: 基本链接坐标系,一般以机器人底盘中心点为固定原点的坐标系;
- /sensor_link: 传感器链接坐标系,一般根据安装在机器人身上的姿态来确定其坐标系(与/base_link 坐标系相关);
以上坐标系的关系一般为:map(world) -> odom -> base_link -> sensor_link
- /earth:地球坐标系,地心地固坐标系(ECEF,Earth-Centered, Earth-Fixed)的原点,这个坐标系设计用于允许多个机器人在不同的地图坐标系中进行交互。
单位
在ROS中,采用了国际单位制(System International Unit)的单位(十进制),可以帮助统一度量标准,使机器人编程、通信和数据交换更为方便和准确。
基本单位
名称 | 单位 |
长度 | 米 m |
重量 | 千克 kg |
时间 | 秒 s |
电流 | 安培 A |
衍生单位
名称 | 单位 |
角度 | 弧度 rad |
频率 | 赫兹 hz |
力 | 牛顿 N |
功率 | 瓦特 W |
电压 | 伏特 V |
温度 | 摄氏度 ℃ |
磁感应强度 | 特斯拉 T |
线速度 | 米/秒 m/s |
角速度 | 弧度/秒 rad/s |
后续学习过程中如有需要再细化补充。
参考:
rep/rep-0103.rst at master · ros-infrastructure/rep · GitHub
rep/rep-0105.rst at master · ros-infrastructure/rep · GitHub
REP 105 -- Coordinate Frames for Mobile Platforms (ROS.org)
ROS中的坐标系规定及数据单位_ros kinect的坐标系和ros的坐标系-CSDN博客
ROS中/odom,/map,/base_link几个坐标系的含义:从ROS的REP105严谨介绍_ros里程计和odom的关系-CSDN博客ROS坐标系统,常见的坐标系和其含义 | 蓝鲸ROS机器人论坛ROS中/odom,/map,/base_link几个坐标系的含义:从ROS的REP105严谨介绍_ros里程计和odom的关系-CSDN博客
ROS Components – AIRLab