智能网联汽车装调与测试:任务2-2 ROS系统安装与基本使用_第1页
智能网联汽车装调与测试:任务2-2 ROS系统安装与基本使用_第2页
智能网联汽车装调与测试:任务2-2 ROS系统安装与基本使用_第3页
智能网联汽车装调与测试:任务2-2 ROS系统安装与基本使用_第4页
智能网联汽车装调与测试:任务2-2 ROS系统安装与基本使用_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务2.2ROS系统安装与基本使用01学习目标CONTENTE知识目标:掌握ROS系统的安装和各个组件使用方法;熟悉ROS系统的架构、文件系统和常用命令的含义。02学习目标CONTENTE能力目标:能熟悉使用ROS的常用命令完成代码编译、功能节点启动、ROS组件启动和功能调试;能熟悉使用rqt、rviz和gazebo等ROS组件完成数据可视化、功能调试和功能仿真*。ROS系统认知01ROS安装与基本使用02学习内容CONTENTEROS系统认知01任务2.2ROS系统安装与基本使用RobotOperatingSystem--机器人操作系统(ROS)是编写机器人软件的灵活框架。它是工具、库和惯例的集合,旨在简化在各种机器人平台上创建复杂而强大的机器人行为的任务。简介1.ROS认知机器人操作系统(RobotOperatingSystem),即ROS本身,它是一个元操作系统,提供了硬件抽象、设备控制、功能实现、进程间通信和包管理等服务简介1.ROS认知ROS是适用于机器人的开源元操作系统ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”ROS设计者将ROS表述为“ROS=Plumbing+Tools+Capabilities+Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体简介1.ROS认知ROS最大的贡献就是制定了机器人开发的统一接口标准,提高研发过程中的软件复用率和提供一个协作平台。1.提高软件复用率:ROS被设计成一种分布式的结构,框架中的每个功能模块都可以被单独的设计、编译,并且在运行的时候以松耦合的方式结合起来。2.提供协作平台:ROS也是一个协作平台。例如:建图专家可以发布一个先进的地图建模系统;导航专家可以在地图建模系统上进行机器人导航;视觉专家可以开发出一个物体识别的模块。特点1.ROS认知3.支持多种编程语言ROS使用了中立的定义语言描述模块之间的消息接口,支持在编译过程中产生目标语言的目标文件。目前支持的语言有Python、C++、Java、Octave和Lisp多种语言。换句话说,您可以使用熟悉的语言开发ROS程序。简介1.ROS认知ROS特点:4.ROS中集成众多开源项目简介1.ROS认知5.工具包丰富3D可视化工具----RVIZ物理仿真环境----Gazebo数据记录工具----rosbagQt工具箱----rqt_*简介1.ROS认知RVIZRViz(theRobitVisualizationtool),机器人可视化工具,可视化的作用是直观的,它极大的方便了监控和调试等操作。组件1.ROS认知GazeboGazebo是一个机器人仿真工具,模拟器,也是一个独立的开源机器人仿真平台。当今市面上还有其他的仿真工具例如V—Rep、Webots等等。但是Gazebo不仅开源,也是是兼容ROS最好的仿真工具。组件1.ROS认知Rqtrqt是一个基于qt开发的可视化工具,拥有扩展性好、灵活易用、跨平台等特点,它集成了30多种工具,可以作为一个综合的GUI工具来使用。另外,RViz也被集成到rqt的插件中,这使rqt成为ROS的一个不可缺少的GUI工具运行rqt将显示rqt的GUI界面,如所示。如果是第一次,它将只显示菜单,此外没有任何内容。这是因为还没有指定rqt直接运行的插件程序.组件1.ROS认知Rosbag组件1.ROS认知rosbag

是ROS的一个工具包,它可以用来录制、回放、查看、过滤和压缩ROS的消息6.开源免费与活跃的社区ROS遵照BSD许可证,使用者可以修改和重写发布其中的应用代码,可以进行商业化的开发和销售。简介1.ROS认知AutowareAutoware基金会是一个非盈利组织,旨在发起,发展和资助开源协作Autoware的项目工程,该工程创建了Autoware.AI,Autoware.Auto和Autoware.IO三个部分。Autoware.AI是第一个版本,它基于ROS1,提供了从定位和物体检测到路径规划和控制的所有必要功能。Autoware.Auto是对Autoware.AI的全新改写,它基于ROS2,采用了现代无人汽车自动驾驶领域软件工程的最佳实践。自动驾驶开源项目Autoware基金会自动驾驶1.ROS认知Apollo

BaiduApollo是由百度发布全球最大自动驾驶开放平台,包括开放平台及企业版解决方案,Apollo开放平台是面向所有开发者提供最开放、完整、安全的自动驾驶开源平台。Apollo已形成自动驾驶、车路协同、智能车联大开放平台。自动驾驶1.ROS认知百度Apollo在最初的版本中使用了ROS作为自动驾驶系统的框架,后在此基础上推出CyberRTWorkSpace---自定义的工作空间

|---build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。

|---devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。

|---src:源码

|--package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成文件系统1.ROS认知WorkSpace---自定义的工作空间

|---build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。

|---devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。

|---src:源码

|--package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成文件系统1.ROS认知

|--CMakeLists.txt配置编译规则,比如源文件、依赖项、目标文件

|--package.xml包信息,比如:包名、版本、作者、依赖项…|--scripts存储python文件

|--src存储C++源文件

|--include头文件

|--msg消息通信格式文件

|--srv服务通信格式文件

|--action动作格式文件

|--launch可一次性运行多个节点

|--config配置信息

|--CMakeLists.txt:编译的基本配置文件系统1.ROS认知Node在ROS的世界里,最小的进程单元就是节点(node)。一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。从程序角度来说,node就是一个可执行文件(通常为C++编译生成的可执行文件、Python脚本)被执行,加载到了内存之中。从功能角度来说,通常一个node负责者机器人的某一个单独的功能。例如:有一个node来控制底盘轮子的运动,有一个node驱动摄像头获取图像,有一个node驱动激光雷达,有一个node根据传感器信息进行路径规划……这样做可以降低程序发生崩溃的可能性,试想一下如果把所有功能都写到一个程序中,模块间的通信、异常处理将会很麻烦。通信架构1.ROS认知Mastermaster在整个网络通信架构里相当于管理中心,管理着各个node。node首先在master处进行注册,之后master会将该node纳入整个ROS程序中。node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信。当ROS程序启动时,第一步首先启动master,由节点管理器处理依次启动node。通信架构1.ROS认知通信方式ROS的通信方式是ROS最为核心的概念,ROS系统的精髓就在于它提供的通信架构。ROS的通信方式有以下四种:Topic主题Service服务ParameterService参数服务器Actionlib动作库通信架构1.ROS认知Topic通信ROS中的通信方式中,topic是常用的一种。对于实时性、周期性的消息,使用topic来传输是最佳的选择。topic通信属于一种异步的通信方式Node间进行通讯,其中发送消息的一方,ROS将其定义为Publisher(发布者),将接收消息的一方定义为Subscriber(订阅者)。考虑到消息需要广泛传播,ROS没有将其设计为点对点的单一传递,而是由Publisher将信息发布到Topic(主题)中,想要获得消息的任何一方都可以到这个Topic中去取数据。通信架构1.ROS认知Topic通信Message按照定义解释就是topic内容的数据类型,也称之为topic的格式标准。例如:乌龟的仿真中turtlesim节点订阅的话题/turtle1/cmd_vel的消息类型如下所示。通信架构1.ROS认知Service通信ROS提供了节点与节点间通讯的另外一种方式:service通讯。Service通讯分为client端和server端。Service通讯的特点:同步数据访问具有响应反馈机制一个server多个client注重业务逻辑处理通信架构1.ROS认知Service通信ROS提供了节点与节点间通讯的另外一种方式:service通讯。Service通讯分为client端和server端。Service通讯的特点:同步数据访问具有响应反馈机制一个server多个client注重业务逻辑处理通信架构1.ROS认知ParameterService与前两种通信方式不同,参数服务器也可以说是特殊的“通信方式”。特殊点在于参数服务器是节点存储参数的地方、用于配置参数,全局共享参数。参数服务器使用互联网传输,在节点管理器中运行,实现整个通信过程。参数服务器的维护方式,总的来讲有三种方式:命令行维护launch文件内读写node源码通信架构1.ROS认知ActionlibAction的工作原理是client-server模式,也是一个双向的通信模式。Action通讯分为Client端和Server端,Client端负责给Server端发送指令,Server端接收到指令,根据自身的业务逻辑进行处理指令,处理过程中,可以反馈进度给为Client端,处理结束后将结构反馈给Client端通信架构1.ROS认知Actionlib在Action

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论