版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器人操作系统ROS现状与应用实例第1页,共58页。机器人操作系统ROS现状与应用实例第2页,共58页。
ROS-RobotOperatingSystemWhat&Why现状How&Results几个应用例程Sum-mary综合实例:体感远程控制第3页,共58页。
应用火爆的ROSROSRepositories(>50)Map:第4页,共58页。
应用火爆的ROSRobotics&AutomationMagazine,IEEE该杂志上设立了专题讨论区:ROSTopics下方图片是在最新一期中ROSTopics的论文第5页,共58页。
应用火爆的ROS新加坡南洋理工大学(NTU)机器人相关实验室大家都在用,已经形成了全民一起上的局面所见的应用设备:Pioneer3AT/DXKinectAR.DroneTurtleBot第6页,共58页。
ROS体系Main:由WillowGarage公式维护核心部分程序Universe:全球范围的代码,由其它个人/组织维护相关知识库(Repository),即功能包(例如先锋机器人的ROSARIA,Kinect的openni_tracker,语言识别pocketsphinx)第7页,共58页。
几点说明虽然ROS的名字为“机器人操作系统”,但不是真正的操作系统,只是说它可以提供类似于操作系统的一些服务,比如底层通讯,分布式控制。对于机器人的相关功能,不使用ROS也能实现.但ROS使得机器人软件搭建的工作更方便,效率更高。第8页,共58页。
ROS的程序的核心节点即可执行文件由.cpp文件编译生成而来(指C++)节点之间的通讯节点间信息的发布与接收PublishSubscribe第9页,共58页。
节点将整个工程(Project)模块化,每个节点即为一个模块。每个节点都可以单独维护,比如现在有N个节点已经在运行了,用户可以再编写第N+1个节点,然后编译,然后运行,即有N+1个节点共同运行。每个节点有唯一的名字节点之间可借助网络跨主机共同运行.第10页,共58页。
节点之间的通讯发布者Publisher订阅者Subscriber话题:发布者与订阅者之间的通讯方式话题的名称:Topic:发布者与订阅者之间数据传输“管道”的名字,为一字符串消息:Message:传输数据的类型,例如int,char,自定义类型。第11页,共58页。
ROS-RobotOperatingSystemWhat&Why现状How&Results几个应用例程Sum-mary综合实例:体感远程控制第12页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯第13页,共58页。
HelloWorld程序节点:2个节点talker(talker.cpp):包含一个发布者节点listener(listener.cpp):包含一个接收者节点间的通讯:Topic(话题的名称):“chatter”Message(传递的数据类型):std_msgs::StringString为ROS自定义的数据类型String中包含唯一变量为std::string
data第14页,共58页。
HelloWorld程序第15页,共58页。
HelloWorld程序第16页,共58页。
HelloWorld程序第17页,共58页。
HelloWorld程序第18页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯第19页,共58页。
ROS的几个例程:图像图像的发布:对应ROS中的Publisher.以如下三个图像源举例:Kinect的RGB摄像头笔记本内置摄像头外接USB摄像头图像的接收:对应ROS中的Subscriber图像的处理:可以与OpenCV相结合(OpenCV与ROS均属于WillowGarage公司,所以….)用户可以在该步骤中进行任意的图像处理操作(“soyoucandoeverythinginthisstep”)图像的显示:与OpenCV相结合第20页,共58页。
图像的发布:Kinect的RGB摄像头首先对Kinect设备进行配置,并进行初始化由于Kinect与ROS相互支持,因此配置过程非常简便初始化Kinect的过程就是发布一些列Topic的过程,这些Topic包括:/camera/rgb/image_color:该话题即对应于我们需要的RGB图像数据至此图像发布的任务完毕若想把图像显示出来,需要进行下一节“图像的接收与显示”/camera/rgb/image_raw:RGB图像的原始数据/camera/grey:这是灰度图像/camera/depth:这是场景深度图像第21页,共58页。
图像的发布:Kinect的RGB摄像头图:Rviz中显示出的Kinect发布的点云信息第22页,共58页。
图像的发布:笔记本内置摄像头对于笔记本内置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摄像头的图像在此节点中发布第23页,共58页。
图像的发布:笔记本内置摄像头第24页,共58页。
图像的发布:外置USB摄像头也需要利用包usb_cam由于外接USB摄像头的设备名为video1,因此将设备名的语句修改为除此之外,其它操作与上一节的内置摄像头图像发布一致第25页,共58页。
图像的接收,处理与显示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页,共58页。
图像的接收,处理与显示第27页,共58页。
图像的接收,处理与显示第28页,共58页。
图像的接收,处理与显示上页的image_converter节点对应于图像发布源为Kinect,若想要获得外置/内置摄像头的图像时,将订阅者的Topic改为“/image_raw”即可.改为因此将该节点修改后重新编译并运行,便可以继续获取另一个图像源的图像.这也体现了ROS的代码维护非常灵活.第29页,共58页。
图像的接收,处理与显示第30页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯第31页,共58页。
先锋机器人P3AT/P3DXP3AT/P3DX的配置角速度和线速度控制量的发布控制量发布的节点:对应Publisher控制量的接收控制量接收的节点:对应Subscriber即控制机器人的运动第32页,共58页。
P3AT/P3DX的配置由于P3AT是串口通讯,我的笔记本上仅有USB口,因此首先需要配置USB转串口.安装ROSARIAARIA是ActivMedia公司为先锋机器人提供的驱动与服务由于该公司也支持ROS,因此发布了ROSARIA版本第33页,共58页。
角速度和线速度控制量的发布话题名称"/RosAria/cmd_vel“该话题名称要与下一节接收节点中的一致消息类型为ROS自定义的:geometry_msgs::Twist在该Twist数据结构中,包括了角速度控制量与线速度控制量第34页,共58页。
角速度和线速度控制量的发布第35页,共58页。
控制量的接收首先下载包rosaria:/amor-ros-pkg/rosaria.git该包中含有RosAria.cpp文件将该文件编译为节点RosAria,并运行该节点节点RosAria的功能:接收上节的Twist数据结构(即订阅者),Twist中含有角速度与线速度的数据.将控制量发送给先锋机器人,即让机器人做相应运动.第36页,共58页。
控制量的接收第37页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeleton(人体骨骼识别)VoiceNetwork通讯第38页,共58页。
KinectSkeleton由于用到了Kinect的骨骼识别,因此首先需要安装NiTE之后下载包openni_tracker:/ros-drivers/openni_tracker.gitopenni_tracker节点将用户的骨骼位置发布(发布者)Topic为“/tf”Message为tf2_msgs::TFMessage,一个TFMessage的对象包括了一个关节的位置与姿态信息第39页,共58页。
KinectSkeleton第40页,共58页。
KinectSkeleton第41页,共58页。
KinectSkeleton图:Rviz显示出的发布的tf的信息第42页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯第43页,共58页。
Voice语音识别语言发布综合:声音的接收与发声第44页,共58页。
Voice:语言识别包pocketsphinx的安装与配置pocketsphinx用以语言识别,并发布(Publish)识别结果String识别结果的接收与显示将pocketsphinx发布的String其获取(Subscribe)后从屏幕上显示第45页,共58页。
Voice第46页,共58页。
Voice:语言发布包sound_play的安装与配置利用程序来控制发声第47页,共58页。
Voice:综合:声音的接收与发声利用pocketsphinx对语言进行识别,并以String的消息类型来发布接收pocketsphinx发布的String将String显示到屏幕上发声:将String朗读出来当然也可以朗读其它语句,即实现了人机之间的对话第48页,共58页。
Voice:综合:声音的接收与发声第49页,共58页。
ROS的几个例程Helloworld图像先锋机器人P3AT/P3DXKinectSkeletonVoiceNetwork通讯第50页,共58页。
Network通讯(以两主机为例)ROS的分布式特点:对两主机进行简单配置后,若有相同的Topic,则节点之间即可跨主机利用网络进行通讯.因此网络通讯/控制变为十分简单.实验场景:取名为”hal”的电脑上连接先锋机器人P3AT,并连接Wifi取名为”marvin”的电脑(我的笔记本)没有连接设备,但与”hal”连接了同一个Wifi目标:让”marvin”将先锋机器人的控制命令通过Wifi发送给”hal”,然后”hal”再把此命令发送给先锋机器人第51页,共58页。
Network通讯(以两主机为例)第52页,共58页。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新冠疫情对自动化仓储的影响分析
- 2026年实现物联网的自动化控制方案
- 住宅绿化与景观施工方案
- 项目质量检验记录管理方案
- 2026年过程控制系统的实时监控技术
- 2026浙江宁波市镇海区急救中心编外人员招聘1人备考题库附参考答案详解(基础题)
- 2026北京大学工学院(本科生学院)招聘1名劳动合同制人员备考题库及参考答案详解(新)
- 2026年甘肃省酒泉市博物馆招聘工作人员备考题库及参考答案详解一套
- 2026广东梅州市人民医院招聘博士研究生备考题库及1套完整答案详解
- 2026年使用Python分析供应商绩效数据
- 2024山东特检集团招聘24人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2024年漯河职业技术学院单招职业适应性测试题库及答案解析
- 抖音违禁语考试试题及答案
- 质量保证分大纲第三章文件和记录控制
- 史上最全国家保安员资格考试复习题题库(十套)附答案
- 黑龙江省哈尔滨市哈工大附中2022-2023学年八年级物理第二学期期中经典模拟试题含解析
- 2023年大同煤炭职业技术学院单招考试职业技能考试模拟试题及答案解析
- 农药的环境毒理学案例
- 计算机网络性能指标
- SAS课件-第5讲-SAS的假设检验
- 《汽车专业英语图解教程》高职配套教学课件
评论
0/150
提交评论