电子神越女学 人 智能机器人原理与实践 机器人操作系统 骆德渊博士、教投 电子科技大学机械与电气工程学院副院长 电子科技大学机器人队总教练
1
德仓创机器人 Dechuang Robot 9.机器人操作系统(R0S) 主要内容 机器人操作系统ROS概述 ROS体系架构 ROS通信机制 ROS核心工具 5 ROS坐标变换(TF) 6 ROS开发接口 ROS机器人定位与建图SLAM ROS机器人导航与路径规划Navigation 3
9.机器人操作系统(ROS) 3 主要内容 2 ROS体系架构 1 机器人操作系统ROS概述 3 ROS通信机制 4 ROS核心工具 5 ROS坐标变换(TF) 6 ROS开发接口 7 ROS机器人定位与建图SLAM 8 ROS机器人导航与路径规划Navigation
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 ROS(ROBOT OPERATION SYSTEM)是一个适用于机器人的开源的次级操作系统。? 它提供类似操作系统所提供 的功能,包括硬件抽象、底层设备控制、常用函数的实现、进程间消息传递以及包管理;提供用于获取、编译、编 写、跨计算机运行代码所需的工具和库函数;采用的是松耦合点对点进程网络,目前支持Ubuntu.系统、MacOS X 、ROS2.0支持Windows。由框架、工具、功能和社区四个部分组成。 (1)框架(基础结构--通讯机制) (3)功能(package) 分布式 控制 ·节点:ROS中用节点表示进程,即Node 规划 硬件抽象 底层设 。 分布式架构优点扩展性好,软件复用率高 视觉 备控制 进程管理 建图 ·进程通信 进程间消 (2)工具(调试) 常用函 (4)社区 息传递 包管理 数实现 仿真 软件包管理 数据可视化 教程 ROS机器人操作系统 图形界面 文档 ·数据记录
9.1 机器人操作系统概述 4 硬件抽象 底层设 备控制 常用函 数实现 进程间消 息传递 包管理 ROS机器人操作系统 ROS(ROBOT OPERATION SYSTEM)是一个适用于机器人的开源的次级操作系统。它提供类似操作系统所提供 的功能,包括硬件抽象、底层设备控制、常用函数的实现、进程间消息传递以及包管理;提供用于获取、编译、编 写、跨计算机运行代码所需的工具和库函数;采用的是松耦合点对点进程网络,目前支持Ubuntu系统、MacOS X 、 ROS 2.0支持Windows。由框架、工具、功能和社区四个部分组成。 (1) 框架(基础结构---通讯机制) •分布式 • 节点: ROS中用节点表示进程,即Node • 分布式架构优点:扩展性好,软件复用率高 •进程管理 •进程通信 (2) 工具(调试) •仿真 •数据可视化 •图形界面 •数据记录 (3) 功能(package) •控制 •规划 •视觉 •建图 (4) 社区 •软件包管理 •教程 •文档
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 ROS的优势 ROS设计目标是在机器人研发领域提高代码复用率。ROS是 (1)松散耦合的机制方便机器人软件 一种分布式处理框架(又名Nodes)。可执行文件能被单独设计 框架的组织; (即节点),并且在运行时松散耦合。这些过程可以封装到数 (2)最丰富的机器人功能库,方便快 据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS 速搭建原型; (3)非常便利的数据记录、分析、仿 还支持代码库的联合系统。使得协作亦能被分发。这种从文 真工具,方便调试; 件系统级别到社区一级的设计让独立地决定发展和实施工作 (4)学界和产业界的标准,方便学习 成为可能。 和交流; ROS运行架构是一种使用ROS通信模块实现模块间P2P的松耦 (5)R0S使用了BSD许可证,这是一个 合的网络连接的处理架构,它执行若干种类型的通讯,包括 非常宽松的开放许可证,允许在商业 基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步 和闭源产品使用,这对于开发产品的 数据流通讯,还有参数服务器上的数据存储。ROS本身没有实 创业公司是比较重要的一点; 时性
9.1 机器人操作系统概述 5 ROS设计目标是在机器人研发领域提高代码复用率。ROS是 一种分布式处理框架(又名Nodes)。可执行文件能被单独设计 (即节点),并且在运行时松散耦合。这些过程可以封装到数 据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS 还支持代码库的联合系统。使得协作亦能被分发。这种从文 件系统级别到社区一级的设计让独立地决定发展和实施工作 成为可能。 ROS运行架构是一种使用ROS通信模块实现模块间P2P的松耦 合的网络连接的处理架构,它执行若干种类型的通讯,包括 基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步 数据流通讯,还有参数服务器上的数据存储。ROS本身没有实 时性。 ROS的优势 (1)松散耦合的机制方便机器人软件 框架的组织; (2)最丰富的机器人功能库,方便快 速搭建原型; (3)非常便利的数据记录、分析、仿 真工具,方便调试; (4)学界和产业界的标准,方便学习 和交流; (5)ROS使用了BSD许可证,这是一个 非常宽松的开放许可证,允许在商业 和闭源产品使用,这对于开发产品的 创业公司是比较重要的一点;
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 ROS的优势 ROS的四大特点 (6)R0S是最庞大的使用者群体,是事实上的机器人标 (1)点对点设计 准,2016年R0S大会数据显示,目前在使用操作系统做 开发的人员用户超过35万,其中活跃用户美国第一位, 中国第二位,ROS WIKI社区(http://wiki.ros.org)。 (7)在学术研究领域,基本上机器人算法都会给出ROS camera 版本的源程序; global map map vision (8)企业界:目前已经有很多机器人公司采用了0S系 统来开发一些应用于全新市场的产品,如ClearPath、 WIFI planning Rethink、Unbounded、Neurala、Blue River、Bigi; Server camera (9)Nvidia、博世、高通、英特尔、宝马以及大疆等 map vision 大公司也纷纷推出ROS接口
9.1 机器人操作系统概述 6 ROS的四大特点 (6)ROS是最庞大的使用者群体,是事实上的机器人标 准,2016年ROS大会数据显示,目前在使用操作系统做 开发的人员用户超过35万,其中活跃用户美国第一位, 中国第二位,ROS WIKI社区(http://wiki.ros.org/ )。 (7)在学术研究领域,基本上机器人算法都会给出ROS 版本的源程序; (8)企业界:目前已经有很多机器人公司采用了ROS系 统来开发一些应用于全新市场的产品,如ClearPath、 Rethink、Unbounded、Neurala、Blue River、Big-i; (9)Nvidia、博世、高通、英特尔、宝马以及大疆等 大公司也纷纷推出ROS接口。 ROS的优势 (1)点对点设计
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 ROS的四大特点 (2)多语言支持 (3)精简与集成 ROS现在支持许多种不同的语言,例如C+、Python、 0 ctave和LISP,也包含其他语言的多种接口实现。 ·OS建立的系统具有模块化的特点,各模块中的代 码可单独编译,而且编译使用的CMake.工具使它很 容易的就实现精简的理念。 点对点 ·O$基本将复杂的代码封装在库里,只是创建了一 些小的应用程序为OS显示库的功能,允许对简单 的代码超越原型进行移植和重新使用。 ROS利用了很多现在已经存在的开源项目的代码, 工具包丰富 免费开源 ROS 多语言 比如说从Player项目中借鉴了驱动、运动控制和仿 真方面的代码,从0 penCV中借鉴了视觉算法方面的 代码,从OpenRAVE借鉴了规划算法的内容。 ROS可以不断的从社区维护中进行升级,包括从其 精简 他的软件库、应用补丁中升级R0S的源代码。 集成
9.1 机器人操作系统概述 7 ROS的四大特点 ROS 点对点 多语言 精简 集成 工具包丰富 免费开源 (2)多语言支持 ROS现在支持许多种不同的语言,例如C++、Python、 Octave和LISP,也包含其他语言的多种接口实现。 (3)精简与集成 • ROS建立的系统具有模块化的特点,各模块中的代 码可单独编译,而且编译使用的CMake工具使它很 容易的就实现精简的理念。 • ROS基本将复杂的代码封装在库里 ,只是创建了一 些小的应用程序为ROS显示库的功能,允许对简单 的代码超越原型进行移植和重新使用。 • ROS利用了很多现在已经存在的开源项目的代码, 比如说从Player项目中借鉴了驱动、运动控制和仿 真方面的代码,从OpenCV中借鉴了视觉算法方面的 代码,从OpenRAVE借鉴了规划算法的内容。 • ROS可以不断的从社区维护中进行升级,包括从其 他的软件库、应用补丁中升级ROS的源代码
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 ROS的四大特点 (4)工具包丰富 rqt 可视化工具。 rqt_graph:显示通信架构 rqt_plot:查看原始数据,绘制 曲线,查看里程计,码盘 rqt_console:查看日志 ROS丰富的工具 Rosbag 包 Rviz ROS命令行工具 免费的开源资源 记录和回放数据流 The Robot Visualization tool 命令 可视化工具,方便监控与调试 专用工具 Moveit Gazebo (常用于机械臂领城) 机器人仿真工具 8
9.1 机器人操作系统概述 8 ROS的四大特点 (4)工具包丰富 ROS丰富的工具 包 免费的开源资源 rqt 可视化工具。 rqt_graph: 显示通信架构 rqt_plot:查看原始数据,绘制 曲线,查看里程计,码盘 rqt_console: 查看日志 Rosbag ROS命令行工具 记录和回放数据流 命令 专用工具 Moveit (常用于机械臂领域) Gazebo 机器人仿真工具 Rviz The Robot Visualization tool 可视化工具,方便监控与调试
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 理解ROS的四个关键要素 ROS (1)R0S-设计思想:分布式架构 设计思想 设计思想主要是分布式架构,将机器人的 核心工具 ROS ROS 功能和软件,做成一个个节点,然后每个 核心概念 节点通过topicj进行沟通,这些节点可以部 署在同一台机器上,也可以部署在不同机 ROS 器上,还可以部署在互联网上。 核心模块 9
9.1 机器人操作系统概述 9 理解ROS的四个关键要素 ROS ROS 设计思想 ROS 核心概念 ROS 核心模块 核心工具 (1)ROS-设计思想:分布式架构 设计思想主要是分布式架构,将机器人的 功能和软件,做成一个个节点,然后每个 节点通过topic进行沟通,这些节点可以部 署在同一台机器上,也可以部署在不同机 器上,还可以部署在互联网上
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 理解ROS的四个关键要素 ROS (2)ROS核心概念 设计思想 ·Nodes->节,点 节点是各自独立的可执行文件,能够通过话题、服务 或参数,与服务器或其他进程(节点)通信。ROS通过 ROS ROS 使用节点的方式将代码和功能解耦,提高了系统容错 核心工具 核心禄念 能力和可维护性,使系统简化。节点允许了ROS系统 能够布置在任意多个机器上并同时运行。关于节点需 要注意的事项有:节点在系统中必须有唯一的名称; ROS 节点可以使用不同的库进行编写,如roscpp和rospy, 核心模块 其中roscpp基于Ct+,rospy基于Python。 10
9.1 机器人操作系统概述 10 理解ROS的四个关键要素 (2)ROS核心概念 ROS ROS 设计思想 ROS 核心概念 ROS 核心模块 核心工具 • Nodes->节点 节点是各自独立的可执行文件,能够通过话题、服务 或参数,与服务器或其他进程(节点)通信。ROS通过 使用节点的方式将代码和功能解耦,提高了系统容错 能力和可维护性,使系统简化。节点允许了ROS系统 能够布置在任意多个机器上并同时运行。关于节点需 要注意的事项有:节点在系统中必须有唯一的名称; 节点可以使用不同的库进行编写,如roscpp和rospy, 其中roscpp基于C++,rospy基于Python
德仓创机器人 Dechuang Robot 9.1机器人操作系统概述 理解ROS的四个关键要素 ROS (2)R0S核心概念 设计思想 Messages and Topics->消息与话题(或主题) 节点之间通过topic机制进行通信,topic机制是 核心工具 ROS ROS 一个一对多的Publish/Subscribe模式,同一个 核心摄念 话题也可以有很多个订阅者,它的底层传输依 靠的是TCPP,也可以是UDP。topic.具体传输 ROS 的是message,具有一定的类型和数据结构,包 核心模块 括ROS提供的标准类型,和用户自定义类型。 11
9.1 机器人操作系统概述 11 理解ROS的四个关键要素 (2)ROS核心概念 ROS ROS 设计思想 ROS 核心概念 ROS 核心模块 核心工具 • Messages and Topics->消息与话题(或主题) 节点之间通过topic机制进行通信,topic机制是 一个一对多的Publish/Subscribe 模式, 同一个 话题也可以有很多个订阅者,它的底层传输依 靠的是TCP/IP,也可以是UDP。topic具体传输 的是message,具有一定的类型和数据结构,包 括ROS提供的标准类型,和用户自定义类型