




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.1Gazebo机器人仿真是每个机器人专家工具箱中必不可少的工具。精心设计的模拟器可以使用现实场景快速测试算法,设计机器人,执行回归测试以及训练AI系统。Gazebo提供了在复杂的室内和室外环境中准确高效地模拟机器人数量的功能。Gazebo的功能:1)构建机器人运动仿真模型2)构建现实世界各种场景的仿真模型3)构建传感器仿真模型4)为机器人模型添加现实世界的物理性质1Gazebo是一款优秀的开源物理仿真环境,它具备如下特点:(1)动力学仿真:支持多种高性能的物理引擎,例如ODE、Bullet、SimBody、DART等。(2)三维可视化环境:支持显示逼真的三维环境,包括光线、纹理、影子。(3)传感器仿真:支持传感器数据的仿真,同时可以仿真传感器噪声。(4)可扩展插件:用户可以定制化开发插件,扩展gazebo的功能,满足个性化的需求。(5)多种机器人模型:官方提供PR2、Pioneer2DX、TurtleBot等机器人模型,当然也可以使用自己创建的机器人模型。(6)TCP/IP传输:gazebo可以实现远程仿真,后台仿真和前台显示通过网络通信。(7)云仿真:gazebo仿真可以在Amazon、Softlayer等云端运行,也可以在自己搭建的云服务器上运行。(8)终端工具:用户可以使用gazebo提供的命令行工具在终端实现仿真控制。9.1Gazebo29.1Gazebo使用Gazebo创建一个机器人模型一个模型的创建,主要包括以下4个方面。Models指的是从模型库添加的模型,是已经构建好的物体,具有一定功能和外观的,例如传感器,房屋,车体,车轮等。ModelPlugins指的是关于目前正在创建的模型的一些功能描述信息。Links指当前通过球体/圆柱/立方体创建的物体。Joints指各个物体之间的连接关节。39.2
RVizRViz是一款三维可视化工具,很好地兼容了各种基于ROS软件框架的机器人平台。在RViz中,可以使用XML对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且在界面中呈现出来。同时,RViz还可以通过图形化的方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等。利用用户指定的多边形(polygon)支持各种表现形式,交互标记(InteractiveMarkers)可以表达接收来自用户节点的命令和数据并互交的过程。在ROS中,机器人以URDF(UnifiedRobotDescriptionFormat,统一机器人描述格式)描述,它可以表示为三维模型,并且每个模型可以根据自由度进行移动或驱动,因此可以用于仿真或控制。49.2RViz数据可视化进行数据可视化的前提当然是要有数据,假设需要可视化的数据以对应的消息类型发布,我们在RViz中使用相应的插件订阅该消息即可实现显示。首先,需要添加显示数据的插件。单击RViz界面左侧下方的Add按钮,RViz会将默认支持的所有数据类型的显示插件罗列出来。在列表中选择需要的数据类型插件,然后在DisplayName里填入一个唯一的名称,用来识别显示的数据。例如显示两个激光传感器的数据,可以分别添加两个LaserScan类型的插件,命名为Laser_base和Laser_head进行显示。添加完成后,RViz左侧的Dispaly中会列出已经添加的显示插件;单击插件列表前的加号,可以打开一个属性列表,根据需求设置属性。一般情况下,Topic属性较为重要,用来声明该显示插件所订阅的数据来源,如果订阅成功,在中间的显示区应该会出现可视化后的数据。59.2RViz数据可视化如果显示有问题,请检查属性区域的Status状态。Status有4种状态:OK、Warning、Error和Disabled,如果显示的状态不是OK,则查看错误信息,并详细检查数据发布是否正常69.3
RQtRQt是一个图形化用户接口框架,它允许以插件的形式来实现各种图形工具和接口。在RQt中能以可停靠窗口的形式来运行所以存在的GUI工具。可以通过命令“rqt”来运行RQt工具和插件。这个GUI允许你载入并运行任何插件。当然,大家也可以以独立窗口的形式运行插件,但是RQt使得同时管理屏幕上所有各种窗口变得更加容易。RQt的结构:RQt包含三个metapackages:rqt:核心的基础结构模块。rqt_common_plugins:用于build的后端工具。rqt_robot_plugins:用于与机器人交互的工具。7图(Graph)概念概览:节点(Nodes):一个节点是ROS下面一个可执行程序,使用ROS与其他节点进行通信,节点可以发布或接收一个话题,节点也可以提供或使用某种服务。消息(Messages):将数据订阅或者发布到主题时使用数据类型结构。主题(Topics):节点可以发布消息到主题,或者订阅主题来接收消息,以此实现和其他节点的数据交互。主机节点(Master):主机节点提供命名服务,以帮助节点找到其他节点。ROS输出(rosout):在ROS中等价于stdout或者stderr(ROS中的标准输出)ROS核心(roscore):主机节点+标准输出+参数服务器。9.3
RQt8使用rosnode打开一个新的终端,可以使用rosnode运行部分节点(注意:当打开一个新的终端时,你的运行环境会复位,同时你的~/.bashrc文件会复原)。rosnode显示当前运行的ROS节点信息。rosnodelist指令列出活跃的节点。9.3
RQt命令作用roscore启动ros核心,包括master,rosout,parameterserver参数服务器rosnodelist列出所有的rosnode节点rosnodeinfo[node_name]列出某个node的信息rosrun[package_name][node_name]启动某个ros节点rosnodeping[node_name]ping某个节点9节点管理器master用于节点的名称注册和查找,也用于设置节点间的通信。因此在启动节点之前必须要先启动master。参数服务器通信的过程为(三步全部使用RPC(RemoteProcedureCall)协议):(1)节点1设置参数值。(2)节点2查询参数值。(3)参数服务器向节点2发送参数值。9.3
RQt10rosbag主要用于记录、回放、分析rostopic中的数据。它可以将指定rostopic中的数据记录到.bag后缀的数据包中,便于对其中的数据进行离线分析和处理。对于subscribe某个topic的节点来说,它无法区分这个topic中的数据到底是实时获取的数据还是从rosbag中回放的数据。这就有助于我们基于离线数据快速重现曾经的实际场景,进行可重复、低成本的分析和调试。9.4Rosbag11一个包是ROS用于存储ROS消息数据的文件格式,rosbag命令可以记录、回访和操作包,指令列表如下。9.4Rosbag命令作用cheak确定一个包是否可以在当前系统中进行,或者是否可以迁移。decompress压缩一个或者多个包文件。filter解压一个或多个包文件fix在包文件中修复消息,以便在当前系统中播放。help获取相关命令指示帮助信息。info总结一个或多个包的内容。play以一种时间同步的方式回放一个或多个包文件的内容。record用指定主题的内容记录一个包文件。reindex重新索引一个或多个包文件。12Rosbag“迁移”ROS“数据包迁移”=转换*.bag记录文件的过程,以使它们包含更新的ROS消息,即使它们是使用旧消息定义来记录的。当记录发布到ROS主题的ROS消息时,该记录将另存为ROS*.bag文件。但是,有时需要通过它们的*.msg定义文件来更新ROS消息定义。执行此操作时,可能会无意间“破坏了”bag文件,因为现在记录中包含的消息和文件系统上的消息定义是不同步的。要使记录袋记录再次可用,用户必须“迁移”它。这意味着只需将其从旧的消息定义集转换为新的消息定义集,以便它仍然可用,并与项目中最新的消息定义保持同步。在包迁移过程中,将创建包迁移规则或*.bmr文件。从旧的ROS消息定义到新的ROS消息定义,它们都是解释机制。用户可以使用下面描述和演示的一些特殊rosrunrosbag命令或下面也演示的“rosbagcheck”来创建“袋子迁移规则”(*.bmr文件)。这些基于插件的迁移规则可以由任何程序包导出,尽管最好将*.bmr包迁移规则文件与ROS消息本身(*.msg文件)保持在同一程序包中。9.4Rosbag13Rosbridge为非ROS程序提供了一个使用ROS功能的JSONAPI。有许多前端与rosbridge接口,包括一个WebSocket服务器,用于Web浏览器进行交互。Rosbridge_suite是一个包含rosbridge的元包,rosbridge的各种前端包,像一个WebSocket包和帮助包。rosbridge包含两个部分:rosbridge协议,rosbridge实现。rosbridge协议是用于向ROS发送基于JSON的命令的规范。规范是编程语言和传输方式无关。想法是任何语言或传输可以发送JSON形式的rosbridge协议与ROS交互。协议涵盖订阅和发布主题,服务调用,获取和设置参数,甚至压缩消息等。9.5Rosbridge14rosbridge_suite包是一个包集合,用于实现rosbridge协议和提供WebSocket传输层。包含如下几个包:1)rosbridge_library-核心rosbridge包。rosbridge_library负责获取JSON字符串并将命令发送到ROS,反之亦然。2)rosapi-通过服务调用使某些ROSactions可访问。这包括获取和设置参数,获取主题列表等。3)rosbridge_server-虽然rosbridge_library提供了JSONROS转换,但它将传输层留给其他人。4)Rosbridge_server提供了一个WebSocket连接,所以浏览器可以“与rosbridge交谈”。5)Roslibjs是一个浏览器的JavaScript库,可以通过rosbridge_server与ROS交谈。9.5Rosbridge15RosbridgelibrarRosbridgelibrar是一个Python库,负责获取JSON字符串并将其转换为ROS消息,反之亦然。Rosbridge库旨在用作传输层程序包的库。例如,rosbridge_server包创建一个WebSocket连接,并使用rosbridge库来处理JSON到ROS的转换。任何Python软件包或程序都可以使用rosbridge库来进行JSON与ROS的直接通信。例如,TCP服务器,串行桥等。RosapiRosapi是rosbridge_suite的一部分,通过服务调用公开ROS功能,例如获取和设置参数,主题列表等。Rosapi通过rosbridge将通常为ROS客户端库保留的功能公开给外部程序。9.5Rosbridge16RosbridgeServerRosbridgeServer是rosbridge_suite软件包的一部分,提供WebSocket传输层。WebSocket是客户端(Web浏览器)和服务器之间的低延迟双向通信层。通过提供WebSocket连接,rosbridge服务器允许网页使用rosbridge协议与ROS对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于机器学习技术的智能评价与课程优化的关系研究
- 情感智能培养与学生心理健康的关系研究
- 2024年内蒙古自治区教育厅下属事业单位真题
- 2025年中国豪华华丽板行业投资前景及策略咨询研究报告
- 2025年中国芬达行业投资前景及策略咨询研究报告
- 2025年中国美式水枪行业投资前景及策略咨询研究报告
- 2025年中国管路螺纹密封剂行业投资前景及策略咨询研究报告
- 2025年中国砂岩马赛克行业投资前景及策略咨询研究报告
- 2025年中国电绣鞋面行业投资前景及策略咨询研究报告
- 2025年中国珐琅漆行业市场调查、投资前景及策略咨询报告
- 财政投资评审咨询服务预算和结算评审项目投标文件(技术方案)
- 手术室医疗垃圾的分类
- 教育领域中的信息化技术讨论以小学数为例
- 2025广东佛山市南海区图书馆拟聘用公益一类事业编制人员历年高频重点提升(共500题)附带答案详解
- 2025届广东省深圳宝安区四校联考中考生物全真模拟试卷含解析
- 高中家长会 共筑梦想,携手未来课件-高二下学期期末家长会
- 《混凝土灌注桩检测》课件
- 2023年《计量经济学》期末试卷
- 防范非法金融活动
- 《人工智能:AIGC基础与应用》题库 项选择题
- 数字资产投资策略-洞察分析
评论
0/150
提交评论