机器人操作系统ROS_现状与应用实例ppt课件.ppt_第1页
机器人操作系统ROS_现状与应用实例ppt课件.ppt_第2页
机器人操作系统ROS_现状与应用实例ppt课件.ppt_第3页
机器人操作系统ROS_现状与应用实例ppt课件.ppt_第4页
机器人操作系统ROS_现状与应用实例ppt课件.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1 ROS RobotOperatingSystem 现状与应用实例 2014 7 3 2 ROS RobotOperatingSystem What Why 现状 How Results 几个应用例程 Sum mary 综合实例 体感远程控制 3 应用火爆的ROS ROSRepositories 50 Map 4 应用火爆的ROS Robotics AutomationMagazine IEEE该杂志上设立了专题讨论区 ROSTopics下方图片是在最新一期中ROSTopics的论文 5 应用火爆的ROS 新加坡南洋理工大学 NTU 机器人相关实验室大家都在用 已经形成了全民一起上的局面所见的应用设备 Pioneer3AT DXKinectAR DroneTurtleBot 6 ROS体系 Main 由WillowGarage公式维护核心部分程序Universe 全球范围的代码 由其它个人 组织维护相关知识库 Repository 即功能包 例如先锋机器人的ROSARIA Kinect的openni tracker 语言识别pocketsphinx 7 几点说明 虽然ROS的名字为 机器人操作系统 但不是真正的操作系统 只是说它可以提供类似于操作系统的一些服务 比如底层通讯 分布式控制 对于机器人的相关功能 不使用ROS也能实现 但ROS使得机器人软件搭建的工作更方便 效率更高 8 ROS的程序的核心 节点即可执行文件由 cpp文件编译生成而来 指C 节点之间的通讯节点间信息的发布与接收PublishSubscribe 9 节点 将整个工程 Project 模块化 每个节点即为一个模块 每个节点都可以单独维护 比如现在有N个节点已经在运行了 用户可以再编写第N 1个节点 然后编译 然后运行 即有N 1个节点共同运行 每个节点有唯一的名字节点之间可借助网络跨主机共同运行 10 节点之间的通讯 发布者Publisher订阅者Subscriber话题 发布者与订阅者之间的通讯方式话题的名称 Topic 发布者与订阅者之间数据传输 管道 的名字 为一字符串消息 Message 传输数据的类型 例如int char 自定义类型 11 ROS RobotOperatingSystem What Why 现状 How Results 几个应用例程 Sum mary 综合实例 体感远程控制 12 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeletonVoiceNetwork通讯 13 HelloWorld程序 节点 2个节点talker talker cpp 包含一个发布者节点listener listener cpp 包含一个接收者节点间的通讯 Topic 话题的名称 chatter Message 传递的数据类型 std msgs StringString为ROS自定义的数据类型String中包含唯一变量为std stringdata 14 HelloWorld程序 15 HelloWorld程序 16 HelloWorld程序 17 HelloWorld程序 18 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeletonVoiceNetwork通讯 19 ROS的几个例程 图像 图像的发布 对应ROS中的Publisher 以如下三个图像源举例 Kinect的RGB摄像头笔记本内置摄像头外接USB摄像头图像的接收 对应ROS中的Subscriber图像的处理 可以与OpenCV相结合 OpenCV与ROS均属于WillowGarage公司 所以 用户可以在该步骤中进行任意的图像处理操作 soyoucandoeverythinginthisstep 图像的显示 与OpenCV相结合 20 图像的发布 Kinect的RGB摄像头 首先对Kinect设备进行配置 并进行初始化由于Kinect与ROS相互支持 因此配置过程非常简便初始化Kinect的过程就是发布一些列Topic的过程 这些Topic包括 camera rgb image color 该话题即对应于我们需要的RGB图像数据至此图像发布的任务完毕若想把图像显示出来 需要进行下一节 图像的接收与显示 camera rgb image raw RGB图像的原始数据 camera grey 这是灰度图像 camera depth 这是场景深度图像 21 图像的发布 Kinect的RGB摄像头 图 Rviz中显示出的Kinect发布的点云信息 22 图像的发布 笔记本内置摄像头 对于笔记本内置USB摄像头的图像获取 要比Kinect复杂 这是由于ROS对Kinect的支持包括了图像Topic的发布 而对于计算机的内置 外置USB摄像头 需要我们自己做些操作下载usb cam包 t 包含如下3个文件 usb cam h usb cam cpp 由于是在Ubuntu 12 04 系统下进行的 因此里面用到了Linux的V4L2视频驱动与服务 usb cam node cpp摄像头的图像在此节点中发布 23 图像的发布 笔记本内置摄像头 24 图像的发布 外置USB摄像头 也需要利用包usb cam由于外接USB摄像头的设备名为video1 因此将设备名的语句修改为除此之外 其它操作与上一节的内置摄像头图像发布一致 25 图像的接收 处理与显示 ROS的图像数据使用sensor msgs Image的消息格式CvBridge 属于ROS的库 在vision opencv 堆stack cv bridge 包package image geometry中 用以转换sensor msgs Image至cv Mat该部分功能 从相应Topic中获得sensor msgs Image图像信息 接收者 并将其转化为cv Mat的形式 并显示图像 当然 该部分首先需要图像源来发布一个图像Topic 例如上节的 Kinect 内置USB摄像头 外接USB摄像头 26 图像的接收 处理与显示 27 图像的接收 处理与显示 28 图像的接收 处理与显示 上页的image converter节点对应于图像发布源为Kinect 若想要获得外置 内置摄像头的图像时 将订阅者的Topic改为 image raw 即可 改为因此将该节点修改后重新编译并运行 便可以继续获取另一个图像源的图像 这也体现了ROS的代码维护非常灵活 29 图像的接收 处理与显示 30 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeletonVoiceNetwork通讯 31 先锋机器人P3AT P3DX P3AT P3DX的配置角速度和线速度控制量的发布控制量发布的节点 对应Publisher控制量的接收控制量接收的节点 对应Subscriber即控制机器人的运动 32 P3AT P3DX的配置 由于P3AT是串口通讯 我的笔记本上仅有USB口 因此首先需要配置USB转串口 安装ROSARIAARIA是ActivMedia公司为先锋机器人提供的驱动与服务由于该公司也支持ROS 因此发布了ROSARIA版本 33 角速度和线速度控制量的发布 话题名称 RosAria cmd vel 该话题名称要与下一节接收节点中的一致消息类型为ROS自定义的 geometry msgs Twist在该Twist数据结构中 包括了角速度控制量与线速度控制量 34 角速度和线速度控制量的发布 35 控制量的接收 首先下载包rosaria 该包中含有RosAria cpp文件将该文件编译为节点RosAria 并运行该节点节点RosAria的功能 接收上节的Twist数据结构 即订阅者 Twist中含有角速度与线速度的数据 将控制量发送给先锋机器人 即让机器人做相应运动 36 控制量的接收 37 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeleton 人体骨骼识别 VoiceNetwork通讯 38 KinectSkeleton 由于用到了Kinect的骨骼识别 因此首先需要安装NiTE之后下载包openni tracker openni tracker节点将用户的骨骼位置发布 发布者 Topic为 tf Message为tf2 msgs TFMessage 一个TFMessage的对象包括了一个关节的位置与姿态信息 39 KinectSkeleton 40 KinectSkeleton 41 KinectSkeleton 图 Rviz显示出的发布的tf的信息 42 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeletonVoiceNetwork通讯 43 Voice 语音识别语言发布综合 声音的接收与发声 44 Voice 语言识别 包pocketsphinx的安装与配置pocketsphinx用以语言识别 并发布 Publish 识别结果String识别结果的接收与显示将pocketsphinx发布的String其获取 Subscribe 后从屏幕上显示 45 Voice 46 Voice 语言发布 包sound play的安装与配置利用程序来控制发声 47 Voice 综合 声音的接收与发声 利用pocketsphinx对语言进行识别 并以String的消息类型来发布接收pocketsphinx发布的String将String显示到屏幕上发声 将String朗读出来当然也可以朗读其它语句 即实现了人机之间的对话 48 Voice 综合 声音的接收与发声 49 ROS的几个例程 Helloworld图像先锋机器人P3AT P3DXKinectSkeletonVoiceNetwork通讯 50 Network通讯 以两主机为例 ROS的分布式特点 对两主机进行简单配置后 若有相同的Topic 则节点之间即可跨主机利用网络进行通讯 因此网络通讯 控制变为十分简单 实验场景 取名为 hal 的电脑上连接先锋机器人P3AT 并连接Wifi取名为 marvin 的电脑 我的笔记本 没有连接设备 但与 hal 连接了同一个Wifi目标 让 marvin 将先锋机器人的控制命令通过Wifi发送给 hal 然后 hal 再把此命令发送给先锋机器人 51 Network通讯 以两主机为例 52 ROS RobotOperatingSystem What Why 现状 How Results 几个应用例程 Sum mary 综合实例 体感远程控制 53 ROS综合实例 实验目标 通过网络 远程控制机器人的运动使用者在Kinect前移动 当距离Kinect超过1米时 让远方的机器人做前进运动 当距离Kinect小于1米时 让机器人后退 并且机器人的运动速度与使用着距Kinect1米的误差成正比 将上一章 几个应用例程 结合在了一起 54 ROS综合实例 实验场景 取名为 hal 的电脑上连接先锋机器人P3AT 并连接Wifi取名为 marvin 的电脑 我的笔记本 连接了Kinect 并与 hal 连接了同一个Wifi 55 ROS综合实例 实现方法 通过Kinect读取用户的骨骼位置 KinectSkeleton 根据用户的头部位置 主机 marvin 来设计P3AT的线速度量 通过Wifi将机器人的速度控制量传到主机 hal 上 hal 将速度控制量发送到P3AT上 56 ROS综

温馨提示

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

评论

0/150

提交评论