ROS学习笔记35(标准单位,坐标系和编程规则)

需要说明的是:本篇博客内容来自于《ROS机器人编程 从基本概念到机器人应用程序编程实战》的第七章,本是打算参考和翻译官网相关资料,但官网资料的质量明显没有本书描述的更为清楚,记录于此仅仅是为了自己学习和查找的方便!

1 标准单位

对ROS中所使用的消息(message),推荐使用世界上最广泛运用的标准单位SI。为了确保这一点,REP-0103 也明确了各物理量的单位。例如,长度(Length),使用米(merter)、质量(Mass)使用千克(Kilogram)、时间(Time)使用秒(Second)、电流(Current)使用安培(Ampere)、角度(Angle)使用弧度(Radian)、频率(Frequency)使用赫兹(Hertz)、力(Force)使用牛顿(Newton)、功率(Power)使用瓦(Watt)、电压(Voltage)使用伏特(Volt)、温度(Temperature)使用摄氏度(Celsius)。其他所有单位都是这些单位的组合。例如,平移速度以米/秒表示,旋转速度以弧度/秒表示。消息鼓励重用ROS提供的方式,但也可以根据需要使用用户全新定义的新的类型的消息。然而,消息用到的单位却必须要遵守使用SI单位,这是为了让其他用户使用这种消息的时候不需要转换单位。

ROS学习笔记35(标准单位,坐标系和编程规则)

2 坐标表现方式

左侧所示,ROS中的旋转轴使用x,y和z轴。正面是x轴的正方向,轴是红色(R)。左边是y轴的正方向,轴用绿色(G)表示。最后,上方是z轴的正方向,轴用蓝色(B)表示。为了便于记忆,您可以将x轴视为食指,将y轴视为中指,将z轴视为拇指。顺序是x、y、z,且颜色是RGB颜色顺序。机器人的旋转方向是右手定则 ,用右手卷住的方向是正(+)方向。例如,如果机器人在原地从12点钟方向开始向9点方向旋转,则由于旋转角度的单位用弧度,所以我们说机器人在z轴上旋转+1.5708弧度。这种坐标表示法在ROS编程中经常使用,必须以x:forward,y:left,z:up的形式进行编程。

ROS学习笔记35(标准单位,坐标系和编程规则)

3 编程规则

为了最大化每个程序的源代码的可重用性,ROS指定了编程风格指南,并建议开发者遵守该指南。这减少了开发人员在处理源代码时频繁发生的额外的选项,也提高了其他协作开发人员和用户们的代码理解程度,并降低了他们之间的代码分析难度。这不是一个要
求,但为了代码共享,笔者想鼓励ROS的许多用户遵守这一规则。编程规则在wiki(C++ ,Python )中按各个编程语言有详细解释。下面的表格整理了基本的命名规则 ,在开始ROS编程之前熟悉这些吧。

ROS学习笔记35(标准单位,坐标系和编程规则)