您好,欢迎访问三七文档
浅谈ROS基础内容一、ROS背景二、ROS特点三、ROS框架介绍四、ROS常用功能包五、ROS应用一、ROS背景什么是ROS?ROS历史ROS:TheRobotOperatingSystem2007年,起源于StanfordAI实验室,为了支持STAIR机器人而建立的交换庭(switchyard)项目。后又与WillowGarage公司的个人机器人项目(PersonalRobotsProgram)之间合作。2008年,主要由WillowGarage来进行推动。随着PR2那些不可思议的表现,ROS得到越来越多的关注。2010年,WillowGarage正式发布ROS1.02013年,OpenSourceRoboticsFoundation接手维护2016年,正式发布ROS2.0ROS版本PR2ROBOTROS发展现状ROS设计目标首先,在机器人研发领域提高代码复用率。其次,ROS=通信管道+工具+功能块+生态系统ROS主要功能ROS提供类似操作系统所提供的功能硬件抽象描述底层驱动程序管理共用功能的执行程序间的消息传递程序发行包管理一些工具程序和库用于获取、建立、编写和运行多机整合的程序ROS释疑ROS(RobotOperatingSystem)不是传统意义上的一种操作系统,而是一种系统软件框架该框架使用了当前最流行的面向服务(SOA)的软件技术,通过网络协议将节点间数据通信解耦。这样就能够轻松地集成不同语言不同功能的代码。ROS不是一种编程语言ROS不仅是一个函数库,除包含客户端(ClientLibraries)外,还包含一个中心服务器(CentralServer)、一系列命令行工具、图形化界面工具以及编译环境。ROS不是集成开发环境。二、ROS特点为什么选择ROS?ROS运行架构ROS的运行架构是一种使用ROS通信模块,实现模块间P2P的松耦合的网络连接的处理架构(1)点对点设计(2)多语言支持(3)精简与集成(4)工具包丰富(5)免费且开源(1)点对点设计(2)多语言支持ROS的特殊性主要体现在消息通讯层,而不是更深的层次。端对端的连接和配置利用XML-RPC机制进行实现,XML-RPC也包含了大多数主要语言的合理实现描述。每种语言的代码产生器就会产生类似本种语言目标文件,在消息传递和接收的过程中通过ROS自动连续并行的实现。(3)精简与集成ROS将复杂重复使用的驱动和算法,封装成模块。各模块中的代码可以单独编译,而且编译使用的CMake工具使它很容易的就实现精简的理念。ROS利用了很多开源项目作为模块,比如从Player项目中借鉴了驱动、运动控制和仿真方面的代码从OpenCV中借鉴了视觉算法方面的代码从OpenRAVE借鉴了规划算法的内容(4)工具包丰富使用工具仿真测试按时间戳回放记录的传感器数据和消息数据(5)免费且开源ROS所有的源代码公开发布。遵循BSD许可,允许各种商业和非商业的工程开发。ROS通过内部处理的通讯系统进行数据的传递,不要求各模块在同样的可执行功能上连接在一起。个别的模块可以包含被各种协议保护的软件,这些协议从GPL到BSD,但是许可的一些“污染物”将在模块的分解上就完全消灭掉。ROS开发平台支持最好的平台Ubuntu(14.04LTS+ROSKinetic)实验性的平台ROS支持的机器人ROS支持的传感器激光测距传感器单目双目相机RGBD相机三、ROS系统框架ROS是怎样运行的、ROS系统框架ROS系统的架构主要被设计和划分成了三部分:文件系统级(Filesystemlevel)ROS内部结构和文件计算图级(ComputationGraphlevel)进程和系统间的通信机制开源社区级(Communitylevel)共享知识、算法和代码文件系统级Manifests(manifest.xml):提供关于Package元数据,包括它的许可信息和Package之间依赖关系,以及语言特性信息像编译旗帜(编译优化参数)。Stackmanifests(stack.xml):提供关于Stack元数据,包括它的许可信息和Stack之间依赖关系。计算图级ROS会创建一个连接到所有进程的网络。在系统中的任何节点都可以访问此网络,并通过该网络与其他节点交互,获取其他节点发布的信息,并将自身数据发布到网络上。计算图级-主题1.消息以一种publish/subscribe的方式传递2.节点可以在给定的主题中发布/订阅消息3.一个节点可以订阅/发布多个不同的主题4.允许多个节点订阅/发布同一个主题5.订阅节点和发布节点并不知道相互之间的存在计算图级-主题计算图级-服务1.消息以一种request/reply的方式传递2.节点之间发送请求和接受应答3.一对一模式:一个请求,一个响应4.远程过程调用(remoteprocedurecall,rpc)计算图级-服务开源社区级ROS.org搭建了一个社区平台软件源不同的机构能够发布和分享各自的机器人软件与程序。多机器人系统架构四、ROS常用功能包ROS常用工具-RVIZRViz是ROS中一款强大的3D可视化工具机器人通过ROS发布数据,rviz订阅消息接收数据ROS常用工具-TFTF是ROS中的坐标变换系统,在机器人的建模仿真中经常用到。ROS中主要有两种坐标系:(1)固定坐标系:用于表示世界的参考坐标系;(2)目标坐标系:相对于摄像机视角的参考坐标系。ROS常用工具-TFROS常用工具-RQT五、ROS-TUTORIALS简单机器人仿真示例1、安装机器人模拟器arbotix2、TurtleBot机器人的模拟导入已预先写好的模拟仿真代码///‘“注意必须启动Master,才能对机器人做其他操作打开rviz工具,可以看到机器人仿真实体ROS-TUTORIALS加载了rviz的配置文件sim_fuerte.vcg,效果如图ROS-TUTORIALS此时的机器人是静止的,需要发布一个消息才能让它动起来。当前ROS1.0特性ROS1.0在通信实时性做得比较差.新发布的ROS2.0着重在通信上有做升级,效果有待验证Thanks!
本文标题:浅谈ROS基础
链接地址:https://www.777doc.com/doc-1717154 .html