机器人操作系统现状与应用实例李宝全_第1页
机器人操作系统现状与应用实例李宝全_第2页
机器人操作系统现状与应用实例李宝全_第3页
机器人操作系统现状与应用实例李宝全_第4页
机器人操作系统现状与应用实例李宝全_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

ROS-RobotOperatingSystemWhat&Why现状How&Results几个应用例程Sum-mary综合实例:体感远程控制1目前一页\总数五十八页\编于十五点

应用火爆的ROSROSRepositories(>50)Map:2目前二页\总数五十八页\编于十五点

应用火爆的ROSRobotics&AutomationMagazine,IEEE该杂志上设立了专题讨论区:ROSTopics下方图片是在最新一期中ROSTopics的论文3目前三页\总数五十八页\编于十五点

应用火爆的ROS新加坡南洋理工大学(NTU)机器人相关实验室大家都在用,已经形成了全民一起上的局面所见的应用设备:Pioneer3AT/DXKinectAR.DroneTurtleBot4目前四页\总数五十八页\编于十五点

ROS体系Main:由WillowGarage公式维护核心部分程序Universe:全球范围的代码,由其它个人/组织维护相关知识库(Repository),即功能包(例如先锋机器人的ROSARIA,Kinect的openni_tracker,语言识别pocketsphinx)5目前五页\总数五十八页\编于十五点

几点说明虽然ROS的名字为“机器人操作系统”,但不是真正的操作系统,只是说它可以提供类似于操作系统的一些服务,比如底层通讯,分布式控制。对于机器人的相关功能,不使用ROS也能实现.但ROS使得机器人软件搭建的工作更方便,效率更高。6目前六页\总数五十八页\编于十五点

ROS的程序的核心节点即可执行文件由.cpp文件编译生成而来(指C++)节点之间的通讯节点间信息的发布与接收PublishSubscribe7目前七页\总数五十八页\编于十五点

节点将整个工程(Project)模块化,每个节点即为一个模块。每个节点都可以单独维护,比如现在有N个节点已经在运行了,用户可以再编写第N+1个节点,然后编译,然后运行,即有N+1个节点共同运行。每个节点有唯一的名字节点之间可借助网络跨主机共同运行.8目前八页\总数五十八页\编于十五点

节点之间的通讯发布者Publisher订阅者Subscriber话题:发布者与订阅者之间的通讯方式话题的名称:Topic:发布者与订阅者之间数据传输“管道”的名字,为一字符串消息:Message:传输数据的类型,例如int,char,自定义类型。9目前九页\总数五十八页\编于十五点

ROS-RobotOperatingSystemWhat&Why现状How&Results几个应用例程Sum-mary综合实例:体感远程控制10目前十页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯11目前十一页\总数五十八页\编于十五点

HelloWorld程序节点:2个节点talker(talker.cpp):包含一个发布者节点listener(listener.cpp):包含一个接收者节点间的通讯:Topic(话题的名称):“chatter”Message(传递的数据类型):std_msgs::StringString为ROS自定义的数据类型String中包含唯一变量为std::string

data12目前十二页\总数五十八页\编于十五点

HelloWorld程序13目前十三页\总数五十八页\编于十五点

HelloWorld程序14目前十四页\总数五十八页\编于十五点

HelloWorld程序15目前十五页\总数五十八页\编于十五点

HelloWorld程序16目前十六页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯17目前十七页\总数五十八页\编于十五点

ROS的几个例程:图像图像的发布:对应ROS中的Publisher.以如下三个图像源举例:Kinect的RGB摄像头笔记本内置摄像头外接USB摄像头图像的接收:对应ROS中的Subscriber图像的处理:可以与OpenCV相结合(OpenCV与ROS均属于WillowGarage公司,所以….)用户可以在该步骤中进行任意的图像处理操作(“soyoucandoeverythinginthisstep”)图像的显示:与OpenCV相结合18目前十八页\总数五十八页\编于十五点

图像的发布:Kinect的RGB摄像头首先对Kinect设备进行配置,并进行初始化由于Kinect与ROS相互支持,因此配置过程非常简便初始化Kinect的过程就是发布一些列Topic的过程,这些Topic包括:/camera/rgb/image_color:该话题即对应于我们需要的RGB图像数据至此图像发布的任务完毕若想把图像显示出来,需要进行下一节“图像的接收与显示”/camera/rgb/image_raw:RGB图像的原始数据/camera/grey:这是灰度图像/camera/depth:这是场景深度图像19目前十九页\总数五十八页\编于十五点

图像的发布:Kinect的RGB摄像头图:Rviz中显示出的Kinect发布的点云信息20目前二十页\总数五十八页\编于十五点

图像的发布:笔记本内置摄像头对于笔记本内置USB摄像头的图像获取,要比Kinect复杂.这是由于ROS对Kinect的支持包括了图像Topic的发布,而对于计算机的内置/外置USB摄像头,需要我们自己做些操作下载usb_cam包:/bosch-ros-pkg/usb_cam.git.包含如下3个文件//usb_cam.h//usb_cam.cpp:由于是在Ubuntu(12.04)系统下进行的,因此里面用到了Linux的V4L2视频驱动与服务//usb_cam_node.cpp摄像头的图像在此节点中发布21目前二十一页\总数五十八页\编于十五点

图像的发布:笔记本内置摄像头22目前二十二页\总数五十八页\编于十五点

图像的发布:外置USB摄像头也需要利用包usb_cam由于外接USB摄像头的设备名为video1,因此将设备名的语句修改为除此之外,其它操作与上一节的内置摄像头图像发布一致23目前二十三页\总数五十八页\编于十五点

图像的接收,处理与显示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摄像头24目前二十四页\总数五十八页\编于十五点

图像的接收,处理与显示25目前二十五页\总数五十八页\编于十五点

图像的接收,处理与显示26目前二十六页\总数五十八页\编于十五点

图像的接收,处理与显示上页的image_converter节点对应于图像发布源为Kinect,若想要获得外置/内置摄像头的图像时,将订阅者的Topic改为“/image_raw”即可.改为因此将该节点修改后重新编译并运行,便可以继续获取另一个图像源的图像.这也体现了ROS的代码维护非常灵活.27目前二十七页\总数五十八页\编于十五点

图像的接收,处理与显示28目前二十八页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯29目前二十九页\总数五十八页\编于十五点

先锋机器人P3AT/P3DXP3AT/P3DX的配置角速度和线速度控制量的发布控制量发布的节点:对应Publisher控制量的接收控制量接收的节点:对应Subscriber即控制机器人的运动30目前三十页\总数五十八页\编于十五点

P3AT/P3DX的配置由于P3AT是串口通讯,我的笔记本上仅有USB口,因此首先需要配置USB转串口.安装ROSARIAARIA是ActivMedia公司为先锋机器人提供的驱动与服务由于该公司也支持ROS,因此发布了ROSARIA版本31目前三十一页\总数五十八页\编于十五点

角速度和线速度控制量的发布话题名称"/RosAria/cmd_vel“该话题名称要与下一节接收节点中的一致消息类型为ROS自定义的:geometry_msgs::Twist在该Twist数据结构中,包括了角速度控制量与线速度控制量32目前三十二页\总数五十八页\编于十五点

角速度和线速度控制量的发布33目前三十三页\总数五十八页\编于十五点

控制量的接收首先下载包rosaria:/amor-ros-pkg/rosaria.git该包中含有RosAria.cpp文件将该文件编译为节点RosAria,并运行该节点节点RosAria的功能:接收上节的Twist数据结构(即订阅者),Twist中含有角速度与线速度的数据.将控制量发送给先锋机器人,即让机器人做相应运动.34目前三十四页\总数五十八页\编于十五点

控制量的接收35目前三十五页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeleton(人体骨骼识别)VoiceNetwork通讯36目前三十六页\总数五十八页\编于十五点

KinectSkeleton由于用到了Kinect的骨骼识别,因此首先需要安装NiTE之后下载包openni_tracker:/ros-drivers/openni_tracker.gitopenni_tracker节点将用户的骨骼位置发布(发布者)Topic为“/tf”Message为tf2_msgs::TFMessage,一个TFMessage的对象包括了一个关节的位置与姿态信息37目前三十七页\总数五十八页\编于十五点

KinectSkeleton38目前三十八页\总数五十八页\编于十五点

KinectSkeleton39目前三十九页\总数五十八页\编于十五点

KinectSkeleton图:Rviz显示出的发布的tf的信息40目前四十页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯41目前四十一页\总数五十八页\编于十五点

Voice语音识别语言发布综合:声音的接收与发声42目前四十二页\总数五十八页\编于十五点

Voice:语言识别包pocketsphinx的安装与配置pocketsphinx用以语言识别,并发布(Publish)识别结果String识别结果的接收与显示将pocketsphinx发布的String其获取(Subscribe)后从屏幕上显示43目前四十三页\总数五十八页\编于十五点

Voice44目前四十四页\总数五十八页\编于十五点

Voice:语言发布包sound_play的安装与配置利用程序来控制发声45目前四十五页\总数五十八页\编于十五点

Voice:综合:声音的接收与发声利用pocketsphinx对语言进行识别,并以String的消息类型来发布接收pocketsphinx发布的String将String显示到屏幕上发声:将String朗读出来当然也可以朗读其它语句,即实现了人机之间的对话46目前四十六页\总数五十八页\编于十五点

Voice:综合:声音的接收与发声47目前四十七页\总数五十八页\编于十五点

ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯48目前四十八页\总数五十八页\编于十五点

Network通讯(以两主机为例)ROS的分布式特点:对两主机进行简单配置后,若有相同的Topic,则节点之间即可跨主机利用网络进行通讯.因此网络通讯/控制变为十分简单.实验场景:取名为”hal”的电脑上连接先锋机器人P3AT,并连接Wifi取名为”marvin”的电脑(我的笔记本)没有连接设备,但与”hal”连接了同一个Wifi目标:让”marvin”将先锋机器人的控制命令通过Wifi发送给”hal”,然后”hal”再把此命令发送给先锋机器人49目前四十九页\总数五十八页\编于十五点

Network通讯(以两主机为例)50目前五十页\总数五十八页\编于十五点

ROS-RobotOperatingSystemWhat&Why现状How&Results几个应用例程Sum-mary综合实例:体感远程控制51目前五十一页\总数五十八页\编于十五点

ROS综合实例:实验目标通过网络,远程控制机器人的运动使用者在Kinect前移动,当距离Kinect超过1米时,让远方的机器人做前进运动;当距离Kinect小于1米时,让机器人后退;并且机器人的运动速度与使用着距Kinect1米的误差成正比.将上一章“几个应用例程”结合在了一起.52目前五十二页\总数五十八

温馨提示

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

评论

0/150

提交评论