版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS常见组件汽车计算机基础一、课程导入我们在编写代码时,有很多地方需要实现的功能是一样的,那我们每次都要写同样的代码吗?rqt工具箱课程导入rosbagTF坐标变换总结一、课程导入对于编程语言来说,它发展的目的就是重复使用,无论面向对象还是面向组件,它们的目的都是重复使用,写一次就不用再写了,这样可以减少代码量,使得代码更容易维护。组件(Component)是对数据和方法的简单封装。在ROS中同样也内置了一些比较实用的组件和工具,通过这些组件和工具可以方便快捷的实现某个功能或调试程序,从而提高开发效率。文件2文件1代码块1(功能1)代码块2(功能2)代码块3(功能3)代码块4(功能4)代码块1(功能2)代码块2(功能5)代码块3(功能6)代码块4(功能7)代码块5(功能8)文件3代码块1(功能9)代码块2(功能10)代码块3(功能11)代码块4(功能2)代码块5(功能12)函数封装代码块(功能2)代码复用代码复用代码复用rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.1TF坐标变换的概念及分类1.TF坐标变换的概念机器人在空间中运动主要有两种形式:平移和旋转。也就是线速度和角速度。rqt工具箱课程导入rosbagTF坐标变换总结a.平移b.旋转二、TF坐标变换2.1TF坐标变换的概念及分类1.TF坐标变换的概念机器人系统上,有多个传感器,如激光雷达、摄像头等,有的传感器是可以感知机器人周边的物体方位(或者称之为:坐标,横向、纵向、高度的距离信息),以协助机器人定位障碍物,但是物体相对该传感器的方位信息并不等价于物体相对于机器人系统或机器人其它组件的方位信息,这中间需要进行坐标转换。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.1TF坐标变换的概念及分类1.TF坐标变换的概念TF(TransFormFrame),就是坐标变换,包括了位置和姿态两个方面的变换,在ROS中用于实现不同坐标系之间的点或向量的转换。ROS中是通过坐标系来标定物体的,确切的是通过右手坐标系来标定的。注意区分坐标转换和坐标系转换。坐标转换是一个坐标在不同坐标系下的表示,而坐标系转换是不同坐标系的相对位姿关系。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.1TF坐标变换的概念及分类2.TF坐标变换的分类坐标变换发分为静态坐标变换、动态坐标变换和多坐标变换。rqt工具箱课程导入rosbagTF坐标变换总结静态坐标变换两个坐标系之间的相对位置是固定的动态坐标变换两个坐标系之间的相对位置是变化的多坐标变换在机器人坐标系统中,会涉及多个坐标系统。比如父级坐标系统world下有两子级系统:son1和son2二、TF坐标变换2.2TF功能包及TF工具1.TF功能包坐标变换是机器人系统中常用的基础功能,ROS中的坐标变换系统由TF功能包维护。TF是一个让用户随时间跟踪多个坐标系的功能包,它用树形数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,可以帮助开发者在任意时间,在坐标系间完成点、向量等坐标的变换。在hydro版本开始,TF被弃用,迁移到TF2,后者更为简洁高效,TF2对应的常用功能包有:rqt工具箱课程导入rosbagTF坐标变换总结geometry_msgstf2_geometry_msgstf2tf2_ros二、TF坐标变换2.2TF功能包及TF工具1.TF功能包(1)geometry_msgs功能包:里面包含了常见坐标系的数据类型(eg.TransformStamped数据类型和PointStamped数据类型);(2)tf2_geometry_msgs功能包:该功能包的主要作用就是根据“接收到的坐标系相互关系的信息(TransformStamped数据)以及自身子坐标系中坐标点的信息(PointStamped数据)”通过tf2功能包计算得到“参考坐标系下坐标点的位置信息”。(3)tf2功能包:封装了坐标变换的常用消息。用于根据坐标系信息以及坐标系间的关系计算得到坐标系之间坐标变换关系(向量/坐标系的旋转)。(4)tf2_ros功能包:该功能包用于在节点之间发送信息并进行相关操作,为tf2提供了roscpp和rospy绑定,封装了坐标变换常用的API。这些都是基于内部的NodeHandle对象实现的。例如,eg.Tf2_ros功能包中StaticTransformBroadcaster用于发布static_tf话题消息;TransformListener用于订阅static_tf话题消息;Buffer用于缓存订阅节点订阅到的static_tf话题消息。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.2TF功能包及TF工具2.TF工具坐标系统虽然是一个基础理论,但是由于涉及多个空间之间的变换,不容易进行想象,所以TF提供了丰富的终端工具来帮助开发者调试和创建TF变换。rqt工具箱课程导入rosbagTF坐标变换总结tf_monitortf_echostatic_transform_publisherview_framesrviz二、TF坐标变换2.2TF功能包及TF工具2.TF工具(1)tf_monitortf_monitor工具的功能是将当前的坐标系转换关系打印到终端控制台,命令的格式如下:也可以通过输入参数来查看指定坐标系之间的坐标系关系,命令的格式如下:rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.2TF功能包及TF工具2.TF工具(2)tf_echotf_echo工具的功能是查看指定坐标系之间的变换关系,命令的格式如下:(3)static_transform_publishertf_transform_publisher工具的功能是发布两个坐标系之间的静态坐标变换,这两个坐标系不发生相对位置变化。这个是最重要的命令,既可以在命令行使用,也可以在launch文件使用,并且经常在launch文件中使用。主要有两种形式:rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.2TF功能包及TF工具2.TF工具(3)static_transform_publisher①旋转是欧拉角yaw/pitch/roll(单位是弧度rad)。在launch文件中使用格式:rqt工具箱课程导入rosbagTF坐标变换总结航向角(绕Z轴旋转)俯仰角(绕Y轴旋转)横滚角(绕X轴旋转)发布周期二、TF坐标变换2.2TF功能包及TF工具2.TF工具(3)static_transform_publisher②旋转是四元数qxqyqzqw。在launch文件中使用格式:rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.2TF功能包及TF工具2.TF工具(4)view_framesview_frames是可视化的调试工具,可以生成pdf文件,显示整棵TF树的信息。执行方式为:然后使用以下命令,或者pdf阅读器查看生成的pdf文件。(5)rvizrviz是一种可视化工具,可以借助rviz显示坐标系关系,具体操作:①新建窗口输入命令:rviz;②在启动的rviz中设置FixedFrame为base_link;③点击左下的add按钮,在弹出的窗口中选择TF组件,即可显示坐标关系。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.3坐标msg消息订阅发布模型中数据载体msg是一个重要实现,在坐标变换中,需要使用坐标系的相对关系(geometry_msgs/TransformStamped)以及坐标点信息(geometry_msgs/PointStamped)。rqt工具箱课程导入rosbagTF坐标变换总结geometry_msgs/TransformStamped用于传输坐标系相关位置信息geometry_msgs/PointStamped用于传输某个坐标系内坐标点的信息二、TF坐标变换2.3坐标msg消息1.geometry_msgs/TransformStamped命令行键入:rqt工具箱课程导入rosbagTF坐标变换总结四元数用于表示坐标的相对姿态二、TF坐标变换2.3坐标msg消息2.geometry_msgs/PointStamped命令行键入:rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操需求描述:程序启动之初:产生两只乌龟,中间的乌龟(A)和左下乌龟(B),B会自动运行至A的位置,并且键盘控制时,只是控制A的运动,但是B可以跟随A运行。实现分析:乌龟跟随实现的核心,是乌龟A和B都要发布相对世界坐标系的坐标信息,然后,订阅到该信息需要转换获取A相对于B坐标系的信息,最后,再生成速度信息,并控制B运动。实现流程:新建功能包,添加依赖;编写服务客户端,用于生成一只新的乌龟;编写发布方,发布两只乌龟的坐标信息;编写订阅方,订阅两只乌龟信息,生成速度信息并发布;运行。1.创建功能包创建项目功能包依赖于tf2、tf2_ros、tf2_geometry_msgs、roscpprospystd_msgsgeometry_msgs、turtlesim。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操2.服务客户端(生成乌龟)rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操3.发布方(发布两只乌龟的坐标信息)可以订阅乌龟的位姿信息,然后再转换成坐标信息,两只乌龟的实现逻辑相同,只是订阅的话题名称,生成的坐标信息等稍有差异,可以将差异部分通过参数传入:①该节点需要启动两次;②每次启动时都需要传入乌龟节点名称(第一次是turtle1第二次是turtle2)。rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操3.发布方(发布两只乌龟的坐标信息)rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操4.订阅方(解析坐标信息并生成速度信息)rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操4.订阅方(解析坐标信息并生成速度信息)rqt工具箱课程导入rosbagTF坐标变换总结二、TF坐标变换2.4TF坐标变换实操5.运行使用launch文件组织需要运行的节点,内容示例如下:rqt工具箱课程导入rosbagTF坐标变换总结三、rosbag3.1rosbag的概述机器人传感器获取到的信息,有时可能需要实时处理,有时可能只是采集数据,事后分析,例如,机器人导航实现中,可能需要绘制导航所需的全局地图,地图绘制实现,有两种方式:方式1,可以控制机器人运动,将机器人传感器感知到的数据时时处理,生成地图信息。方式2,同样是控制机器人运动,将机器人传感器感知到的数据留存,事后,再重新读取数据,生成地图信息。在ROS中关于数据的留存以及读取实现,提供了专门的工具:rosbag。rosbag是用于录制和回放ROS主题的一个工具集。它实现数据的复用,方便调试、测试。rosbag本质也是ros的节点。当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。rqt工具箱课程导入rosbagTF坐标变换总结方式2更为灵活方便三、rosbag3.2rosbag的使用需求:ROS内置的乌龟案例并操作,操作过程中使用rosbag录制,录制结束后,实现重放。实现数据的录制和回放的方式:rqt工具箱课程导入rosbagTF坐标变换总结命令行编码三、rosbag3.2rosbag的使用1.命令行步骤如下:①创建目录保存录制的文件②开始录制③查看文件④回放文件rqt工具箱课程导入rosbagTF坐标变换总结三、rosbag3.2rosbag的使用2.编码命令实现不够灵活,可以使用编码的方式,增强录制与回放的灵活性。步骤如下:①写bagrqt工具箱课程导入rosbagTF坐标变换总结三、rosbag3.2rosbag的使用2.编码②读bagrqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.1rqt工具箱的概念ROS基于QT框架,针对机器人开发提供了一系列可视化的工具,这些工具的集合就是rqt。ROS提供的rqt工具箱,在调用工具时以图形化操作代替了命令操作,可以方便的实现ROS可视化调试,并且在同一窗口中打开多个部件,提高开发效率,优化用户体验。rqt工具箱组成有三大部分:rqt工具箱课程导入rosbagTF坐标变换总结rqt核心实现,开发人员无需关注rqt_common_pluginsrqt中常用的工具套件rqt_robot_plugins运行中和机器人交互的插件(比如:rviz)四、rqt工具箱4.2rqt安装启动与基本使用1.安装一般只要你安装的是desktop-full版本就会自带工具箱,如果需要安装可以以如下方式安装:2.启动rqt的启动方式有两种:rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.2rqt安装启动与基本使用3.基本使用启动rqt之后,可以通过plugins添加所需的插件。rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.3rqt常用插件1.rqt_graphrqt_graph可以可视化显示计算图。启动方式:可以在rqt的plugins中添加,或者使用rqt_graph启动。rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.3rqt常用插件2.rqt_consolerqt_console是ROS中用于显示和过滤日志的图形化插件。步骤如下:①准备:编写Node节点输出各个级别的日志信息rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.3rqt常用插件2.rqt_console②启动可以在rqt的plugins中添加,或者使用rqt_console启动。rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.3rqt常用插件3.rqt_plotrqt_plot是图形绘制插件,可以以2D绘图的方式绘制发布在topic上的数据。①准备:启动turtlesim乌龟节点与键盘控制节点,通过rqt_plot获取乌龟位姿。②启动:可以在rqt的plugins中添加,或者使用rqt_plot启动。rqt工具箱课程导入rosbagTF坐标变换总结四、rqt工具箱4.3rqt常用插件4.rqt_bagrqt_bag是录制和重放bag文件的图形化插件。①准备:启动turtlesim乌龟节点与键盘控制节点。②启动:可以在rqt的plugins中添加,或者使用rqt_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北京西城区卫生健康系统第一批事业单位招聘328人备考题库及1套参考答案详解
- 2025天津师范大学后勤管理处膳食服务中心劳务派遣工作人员招聘备考题库参考答案详解
- 2025云南昆明市第三人民医院“凤凰引进计划”高层次人才招引备考题库及参考答案详解一套
- 2026江西赣州市定南县总医院面向社会招聘编制外合同制人员19人备考题库及一套答案详解
- 2025年哈尔滨方正县“归雁计划”备考题库及答案详解1套
- 2025河南郑州七中教育集团津孚学校招聘10人备考题库及答案详解参考
- 2025湖北武汉市蔡甸区公立学校招聘4人备考题库含答案详解
- 2025浙江嘉兴海宁市袁花文化旅游产业发展有限公司招聘1人备考题库完整答案详解
- 2026年浙江杭州学军中学德清学校招聘教师10人备考题库有答案详解
- 2026国道316线南平下岚超限运输检测站招聘辅助人员1人备考题库附答案详解
- 2026福建能源石化集团校招面笔试题及答案
- 华东理工大学2026年公开招聘工作人员46名备考题库及参考答案详解
- 云南师大附中2026届高三高考适应性月考卷(六)历史试卷(含答案及解析)
- 2025桐梓县国土空间规划城市年度体检报告成果稿
- ISO-26262功能安全培训
- 2025浙江杭州钱塘新区建设投资集团有限公司招聘5人备考笔试试题及答案解析
- 智能家居销售培训课件
- 2025-2026学年小学苏少版(2024)新教材一年级上册美术期末测试卷及答案
- 2025-2026学年北师大版六年级数学上册期末测试卷及答案
- 不同类型休克的床旁超声鉴别诊断策略
- 企业ESG审计体系构建-洞察及研究
评论
0/150
提交评论