机器人操作系统ROS-现状与应用实例李宝全.ppt

上传人:小飞机 文档编号:6421103 上传时间:2023-10-29 格式:PPT 页数:59 大小:5.64MB
返回 下载 相关 举报
机器人操作系统ROS-现状与应用实例李宝全.ppt_第1页
第1页 / 共59页
机器人操作系统ROS-现状与应用实例李宝全.ppt_第2页
第2页 / 共59页
机器人操作系统ROS-现状与应用实例李宝全.ppt_第3页
第3页 / 共59页
机器人操作系统ROS-现状与应用实例李宝全.ppt_第4页
第4页 / 共59页
机器人操作系统ROS-现状与应用实例李宝全.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《机器人操作系统ROS-现状与应用实例李宝全.ppt》由会员分享,可在线阅读,更多相关《机器人操作系统ROS-现状与应用实例李宝全.ppt(59页珍藏版)》请在三一办公上搜索。

1、1,ROS-Robot Operating System:现状与应用实例,李宝全,南开大学:2014-7-3,南开大学首届机器人学博士生论坛,2,ROS-Robot Operating System,What&Why,现状,How&Results,几个应用例程,Sum-mary,综合实例:体感远程控制,3,应用火爆的ROS,ROS Repositories(50)Map:,4,应用火爆的ROS,Robotics&Automation Magazine,IEEE该杂志上设立了专题讨论区:ROS Topics下方图片是在最新一期中ROS Topics的论文,5,应用火爆的ROS,新加坡南洋理工大学

2、(NTU)机器人相关实验室大家都在用,已经形成了全民一起上的局面所见的应用设备:Pioneer3AT/DXKinectAR.DroneTurtleBot,6,ROS体系,Main:由Willow Garage公式维护核心部分程序Universe:全球范围的代码,由其它个人/组织维护相关知识库(Repository),即功能包(例如先锋机器人的ROSARIA,Kinect的openni_tracker,语言识别pocketsphinx),7,几点说明,虽然ROS的名字为“机器人操作系统”,但不是真正的操作系统,只是说它可以提供类似于操作系统的一些服务,比如底层通讯,分布式控制。对于机器人的相关功

3、能,不使用ROS也能实现.但ROS使得机器人软件搭建的工作更方便,效率更高。,8,ROS的程序的核心,节点即可执行文件由.cpp文件编译生成而来(指C+)节点之间的通讯节点间信息的发布与接收PublishSubscribe,9,节点,将整个工程(Project)模块化,每个节点即为一个模块。每个节点都可以单独维护,比如现在有N个节点已经在运行了,用户可以再编写第N+1个节点,然后编译,然后运行,即有N+1个节点共同运行。每个节点有唯一的名字节点之间可借助网络跨主机共同运行.,10,节点之间的通讯,发布者Publisher订阅者Subscriber话题:发布者与订阅者之间的通讯方式话题的名称:T

4、opic:发布者与订阅者之间数据传输“管道”的名字,为一字符串消息:Message:传输数据的类型,例如int,char,自定义类型。,11,ROS-Robot Operating System,What&Why,现状,How&Results,几个应用例程,Sum-mary,综合实例:体感远程控制,12,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯,13,Hello World程序,节点:2个节点talker(talker.cpp):包含一个发布者节点listener(listener.cpp):包含一个接收者

5、节点间的通讯:Topic(话题的名称):“chatter”Message(传递的数据类型):std_msgs:StringString为 ROS自定义的数据类型String中包含唯一变量为 std:stringdata,14,Hello World程序,15,Hello World程序,16,Hello World程序,17,Hello World程序,18,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯,19,ROS的几个例程:图像,图像的发布:对应ROS中的Publisher.以如下三个图像源举例:Kinec

6、t的RGB摄像头笔记本内置摄像头外接USB摄像头图像的接收:对应ROS中的Subscriber图像的处理:可以与OpenCV相结合(OpenCV与ROS均属于Willow Garage公司,所以.)用户可以在该步骤中进行任意的图像处理操作(“so you can do everything in this step”)图像的显示:与OpenCV相结合,20,图像的发布:Kinect的RGB摄像头,首先对Kinect设备进行配置,并进行初始化由于Kinect与ROS相互支持,因此配置过程非常简便初始化Kinect的过程就是发布一些列Topic的过程,这些Topic包括:/camera/rgb/i

7、mage_color:该话题即对应于我们需要的RGB图像数据至此图像发布的任务完毕若想把图像显示出来,需要进行下一节“图像的接收与显示”/camera/rgb/image_raw:RGB图像的原始数据/camera/grey:这是灰度图像/camera/depth:这是场景深度图像,21,图像的发布:Kinect的RGB摄像头,图:Rviz中显示出的Kinect发布的点云信息,22,图像的发布:笔记本内置摄像头,对于笔记本内置USB摄像头的图像获取,要比Kinect复杂.这是由于ROS对Kinect的支持包括了图像Topic的发布,而对于计算机的内置/外置USB摄像头,需要我们自己做些操作下载

8、usb_cam包:https:/.包含如下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的库

9、,在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,若想要获得外置/内

10、置摄像头的图像时,将订阅者的Topic改为“/image_raw”即可.改为因此将该节点修改后重新编译并运行,便可以继续获取另一个图像源的图像.这也体现了ROS的代码维护非常灵活.,29,图像的接收,处理与显示,30,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯,31,先锋机器人P3AT/P3DX,P3AT/P3DX的配置角速度和线速度控制量的发布控制量发布的节点:对应Publisher控制量的接收控制量接收的节点:对应Subscriber即控制机器人的运动,32,P3AT/P3DX的配置,由于P3AT是串口通

11、讯,我的笔记本上仅有USB口,因此首先需要配置USB转串口.安装ROSARIAARIA是ActivMedia公司为先锋机器人提供的驱动与服务由于该公司也支持ROS,因此发布了ROSARIA版本,33,角速度和线速度控制量的发布,话题名称/RosAria/cmd_vel“该话题名称要与下一节接收节点中的一致消息类型为ROS自定义的:geometry_msgs:Twist在该Twist数据结构中,包括了角速度控制量与线速度控制量,34,角速度和线速度控制量的发布,35,控制量的接收,首先下载包rosaria:https:/并运行该节点节点RosAria的功能:接收上节的Twist数据结构(即订阅者

12、),Twist中含有角速度与线速度的数据.将控制量发送给先锋机器人,即让机器人做相应运动.,36,控制量的接收,37,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeleton(人体骨骼识别)VoiceNetwork通讯,38,KinectSkeleton,由于用到了Kinect的骨骼识别,因此首先需要安装NiTE之后下载包openni_tracker:https:/Topic为“/tf”Message为tf2_msgs:TFMessage,一个TFMessage的对象包括了一个关节的位置与姿态信息,39,KinectSkeleton,40,Kinec

13、tSkeleton,41,KinectSkeleton,图:Rviz显示出的发布的tf的信息,42,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯,43,Voice,语音识别语言发布综合:声音的接收与发声,44,Voice:语言识别,包pocketsphinx的安装与配置pocketsphinx用以语言识别,并发布(Publish)识别结果String识别结果的接收与显示将pocketsphinx发布的String其获取(Subscribe)后从屏幕上显示,45,Voice,46,Voice:语言发布,包soun

14、d_play的安装与配置利用程序来控制发声,47,Voice:综合:声音的接收与发声,利用pocketsphinx对语言进行识别,并以String的消息类型来发布接收pocketsphinx发布的String将String显示到屏幕上发声:将String朗读出来当然也可以朗读其它语句,即实现了人机之间的对话,48,Voice:综合:声音的接收与发声,49,ROS的几个例程,Hello world图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯,50,Network通讯(以两主机为例),ROS的分布式特点:对两主机进行简单配置后,若有相同的Topic,则节

15、点之间即可跨主机利用网络进行通讯.因此网络通讯/控制变为十分简单.实验场景:取名为”hal”的电脑上连接先锋机器人P3AT,并连接Wifi取名为”marvin”的电脑(我的笔记本)没有连接设备,但与”hal”连接了同一个Wifi目标:让”marvin”将先锋机器人的控制命令通过Wifi发送给”hal”,然后”hal”再把此命令发送给先锋机器人,51,Network通讯(以两主机为例),52,ROS-Robot Operating System,What&Why,现状,How&Results,几个应用例程,Sum-mary,综合实例:体感远程控制,53,ROS综合实例:实验目标,通过网络,远程控

16、制机器人的运动使用者在Kinect前移动,当距离Kinect超过1米时,让远方的机器人做前进运动;当距离Kinect小于1米时,让机器人后退;并且机器人的运动速度与使用着距Kinect 1米的误差成正比.将上一章“几个应用例程”结合在了一起.,54,ROS综合实例:实验场景,取名为”hal”的电脑上连接先锋机器人P3AT,并连接Wifi取名为”marvin”的电脑(我的笔记本)连接了Kinect,并与”hal”连接了同一个Wifi,55,ROS综合实例:实现方法,通过Kinect读取用户的骨骼位置(KinectSkeleton)根据用户的头部位置,主机“marvin”来设计P3AT的线速度量.

17、通过Wifi将机器人的速度控制量传到主机“hal”上“hal”将速度控制量发送到P3AT上,56,ROS综合实例:框架,57,ROS综合实例:视频展示,1_Kinetct-P3AT_TrackingPeople.mp42_ControlThroughNetwork.mp43_withMe 综合.mp4,58,总结与展望,总结ROS的应用已非常火爆介绍了ROS的几个典型应用,并给出了一综合实例展望ROS整合了世界范围内的很多很强大的功能,比如语言的识别与发布,骨骼位置获取,可以使机器人更智能.ROS的模块化特点,使得代码易于维护ROS本身是基于分布式的,因此网络通讯/控制变为十分简单,59,Q&A Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号