机器人学习——姿态表达,ros通讯机制

目录

一、机器人自由度

二、机器人姿态的表达方式

1.旋转矩阵

 2.坐标轴旋转——欧拉角

2.1 固定转轴欧拉角 转 旋转矩阵

2.2 非固定旋转轴的欧拉角

 3.等效轴角

 4.四元数

三、ros基础知识

1. 节点(Node)——执行单元

2.节点管理器(Master)——控制中心

3. 通信机制

3.1 话题(Topic)

3.2 服务(Service)

3.3 动作(Action)

4.参数(Parameter)——全局共享字典

5.消息记录包(Bag)


一、机器人自由度

自由度是机器人的一个重要技术指标,它是由机器人的结构决定的,并直接影响到机器人的机动性。

机器人自由度一般指末端执行器的自由度。一般机器人有6个自由度。机器人的机械臂一般具有3个自由度。

二、机器人姿态的表达方式

机器人姿态的表示方式可以分为以下三种:

  1. 旋转矩阵
  2. 坐标轴旋转-绕xyz轴旋转不同的角度(欧拉角)
  3. 四元数-ROS2的TF2中的姿态描述

姿态描述方法,三类共五种方法如下:

  • 旋转矩阵-旋转矩阵
  • 坐标轴旋转-固定轴欧拉角,非固定轴欧拉角
  • 任意轴旋转-等效轴角,四元数

1.旋转矩阵

旋转矩阵采用的是旋转后的坐标系三个轴分别与原坐标系三个轴的夹角余弦值共九个数字组成3*3的矩阵。

旋转矩阵一般记作记作R,其一般形式为:

                                            938c5122e3424e01aef939c0b2c7d045.png

 2.坐标轴旋转——欧拉角

旋转矩阵对绕轴旋转的姿态表达非常不直观,而最直观的方法即绕主轴旋转。

绕主轴的旋转表示方法,按是否固定可以分为两种,一是不固定的欧拉角,二是固定角。要三个参量就能表示空间所有姿态的一种方法,结果是最直观的。欧拉角不是唯一的,只要是参考坐标系按照一定顺序依次进行三次绕主轴的旋转就到达空间中任意姿态。只要满足以下条件就可以保证能到达所有姿态:

【1】所有旋转都是绕着参考轴的
【2】三次旋转至少涉及两个不同主轴
【3】同一个主轴不进行两次旋转
注意:绕轴旋转顺序不同结果不同,加上可以参考自身坐标系或参考固定的坐标系旋转,所以欧拉角有12*2=24种旋转方式。

 2.1 固定转轴欧拉角 转 旋转矩阵

以绕固定轴以XYZ顺序旋转为例,最终结果为:

28c7f20df4e94c379f756fd65d129969.png

2.2 非固定旋转轴的欧拉角

以绕固定轴以ZYX顺序旋转为例,最终结果为:

 60bbc4053a474946b0fbedddd33b65ca.png

3.等效轴角

如果轴的方向是一般方向(不是主轴方向),任何姿态都可以通过选择适当的轴和角度来得到。

                                           watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTI1ODk3OQ==,size_16,color_FFFFFF,t_70#pic_center 

如果我们选择的是一个主轴,那么他就是我们常见的平面旋转矩阵;如果选择的是一般轴,那么等效旋转矩阵为:
b55dc6ab57584ffb8cf157e7ed04965e.png

 4.四元数

四元数的四个数字由一个实部和三个虚部组成,是一个超复数形式:q=w+x∗i+y∗j+z∗k

97e82d96e11b49cc9ca79a9f48798b92.png

 430e5296a15d447d8fe4f84849b8e7f7.png

三、ros基础知识

0.ros的文件系统

 

 

1. 节点(Node)——执行单元

【1】节点就是执行具体任务的进程或独立运行的可执行文件,通常一个系统由多个节点组成,节点之间可以通过ROS客户端库(如roscpp 、rospy)相互通信。【2】不同节点可使用不同编程语言,可分布式运行在不同的主机。【3】节点在系统中的名称必须是唯一的。

2.节点管理器(Master)——控制中心

【1】节点管理器在系统中主要起到了一个中介的作用,能够帮助节点相互找到彼此。【2】节点管理器能够为节点提供命名和注册服务,以及跟踪和记录话题/服务通信。【3】同时节点管理器还提供了一个参数服务器(Parameter Server),节点使用此服务器存储和检索运行时的参数。

节点与节点管理器工作图示如下:

50a6d0ad733f41079b0840e28c0592ef.png

 3. 通信机制

ROS采用的是一种点对点的分布式通信机制,实现模块间点对点的松耦合连接,所有软件功能及工具都建立在这种通信机制上,为用户提供多节点(进程)的通信服务,其中ROS最核心的三种通信机制是话题(Topic)通信机制、服务(Service)通信机制和参数(Parameter)管理机制。

96550cf1b23a40ff890a79e7c34f204e.png

 3.1 话题(Topic)

话题通信采用的是一种异步通信机制。话题通信基于发布/订阅模型,数据由发布者传输给订阅者。其中节点既可以作为发布者发布消息(message),也可以作为订阅者订阅消息。同一个话题的发布者和订阅者可以不唯一,另外一个节点也可以发布或订阅多个消息。一般来说,发布者和订阅者并不知道对方的存在。发布者将信息发布在一个全局的工作区内,当订阅者发现该信息是它所订阅的,就可以接收到这个信息。通常用于数据传输。

3ed49e4734244a479e0fa37dfd3043e2.png

 关于话题的命令:

d5621a68a845415ead709f49225de9c4.png

3.2 服务(Service)

服务通信采用的是一种同步通信机制。服务通信基于客户端/服务器模型,客户端(Client)发送请求数据(Request),服务器(Server)完成处理后返回应答数据(Response)。与话题不同的是,ROS中只允许有一个节点提供指定命名的服务。通常用于逻辑处理。

5ef708006f3f42538e036c680cbe3bc2.png6d7bda5cf3f243eeb2249b07bfa62102.png

话题与服务的区别

352d6e6408ec46bab8ab5d6f8aceff37.png

3.3 动作(Action)

动作是基于ROS消息机制实现的一种问答通信机制,基于客户端/服务器模型,服务器可以连续反馈数据给客户端,客户端可以在任务运行过程中中止运行。动作Action的接口主要由goal、cancel、status、feedback和result组成,客户端可以在任务启动前向服务器发布任务目标goal,也可以在任务过程中向服务器发送cancel请求取消任务。服务器向客户端反馈服务器当前的状态,或周期性反馈任务运行的监控数据,而result在任务运行过程中只发布一次,仅在服务器完成动作后反馈一个最终结果。

4.参数(Parameter)——全局共享字典

参数服务器能够保存一部分参数作为全局共享字典,系统中的所有节点都可以通过网络访问这些共享字典,存储和检索参数的参数名或参数值,而字典中的数据类型包含了int整型、float浮点型、string字符串等。参数的存储和检索采用的通信机制是更为底层的RPC,而不再是话题或服务。它更适合存储静态、非二进制的配置参数,不适合存储动态配置的数据。
 

e77d5bc8f48c4a799e04f02416a7ccb5.png

5.消息记录包(Bag)

消息记录包是一种用于保存和回放ROS消息数据的文件格式。它使用.bag格式保存消息、主题、服务和其他ROS数据信息,可以在事件发生后,通过使用可视化工具调用和回放数据,检查在系统中到底发生了什么。记录包文件可以像实时会话一样在ROS中再现情景,在相同时间向主题发送相同的数据。通常用于调试算法。

使用

 5eba5063f5714b43aeb6047ec65f6654.png

参考学习资料:

B站:古月居【ros入门】

博客:【1】机器人姿态 https://blog.csdn.net/weixin_39258979/article/details/119855612

【2】机器人姿态 http://t.csdn.cn/qSV7s

【3】ros基础 http://t.csdn.cn/eEQTw 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Halcon是一款强大的机器视觉软件,它可以用于图像处理和模式识别等领域。在使用Halcon进行三维视觉处理时,需要对旋转轴进行标定。 Halcon中的旋转轴标定主要是指相机坐标系与机器坐标系之间的转换。相机坐标系是相机的坐标系统,由相机坐标原点、相机光心和相机成像平面组成;机器坐标系是机器人的坐标系统,由机器坐标原点、机器臂工作区域等组成。为了将相机坐标系上的3D点转换到机器坐标系上,需要标定旋转轴。 Halcon中一般采用以下步骤进行旋转轴标定: 1. 首先准备一个标定板,上面有已知尺寸的标定点。将标定板固定在工作区域内,使得相机能够正常拍摄到标定板上的点。 2. 使用Halcon的相机标定工具,通过标定板上的标定点对相机的内参进行标定。根据已知标定点的3D坐标和对应的像素坐标,可以计算得到相机的内参矩阵。 3. 标定机器臂上的位置:将机器臂手动移动到不同的位置,在每个位置上通过Halcon的坐标转换工具获取对应的机器坐标系坐标。 4. 根据标定板上的标定点在机器坐标系中的位置和相机的内参矩阵,可以计算得到相机坐标系与机器坐标系的转换关系,即旋转轴的标定值。 通过以上步骤,就可以完成Halcon中旋转轴的标定。标定后,可以根据相机图像上检测到的点的坐标,通过旋转轴的标定值将其转换到机器坐标系中,实现图像处理和模式识别等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值