智能机器人与运动控制- 课件 第18讲-ROS运动控制实践_第1页
智能机器人与运动控制- 课件 第18讲-ROS运动控制实践_第2页
智能机器人与运动控制- 课件 第18讲-ROS运动控制实践_第3页
智能机器人与运动控制- 课件 第18讲-ROS运动控制实践_第4页
智能机器人与运动控制- 课件 第18讲-ROS运动控制实践_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

智能机器人与运动控制系统18.ROS运动控制实践ROS简介发布/订阅ROS节点基于消息发布的小乌龟运动编程ROS简介ROS简介-到底是什么ROS通信机制ROSROS的通讯机制为松耦合分布式通讯ROS通信机制ROS通讯机制通讯机制的组成节点:最小可执单元,即一个进程箭头:进行数据传输话题:单向的异步通信的机制ROS的模块化设计初步了解ROS后,有以下疑问:ROS为什么会设计成这几个模块?它的通信机制为什么会是这种方式?当需要ROS实现某个任务的时候,

它又是如何运转的?一个例子假设你和同学组团去旅游:建立微信群做攻略分配任务每个人根据自己的任务和做的攻略各自完成在群里讨论进展,动态调整准备出发ROS模块化设计ROS模块化设计类比举例:组团旅游ROS模块化设计1.便于同时开发各个模块,提高协作开发效率。

2.模块内容可以更换、扩展,便于实现更复杂的功能。

3.模块具有复用性,便于快速搭建系统。ROS应用:小乌龟运动编程小海龟仿真器开启一个终端,打开roscore开启另外一个终端,启动小海龟节点再开启一个终端,进行键盘控制$roscore$rosrunturtlesimturtlesim_node$rosrunturtlesimturtle_teleop_keyturtlesim功能包中的话题和服务

名称类型描

述话题订阅turtleX/cmd_velgeometry_msgs/Twist控制海龟角速度与线速度的输入指令话题发布turtleX/poseturtlesim/Pose海龟的姿态信息,包括xy的位置、角度、线速度和角速度服务clearstd_srvs/Empty清除仿真器中的背景颜色resetstd_srvs/Empty复位仿真器到初始配置killturtlesim/Kill删除一只海龟spawnturtlesim/Spawn新生一只海龟turtleX/set_penturtlesim/SetPen设置画笔的颜色和线宽turtleX/teleport_absoluteturtlesim/TeleportAbsolute移动海龟到指定姿态turtleX/teleport_relativeturtlesim/TeleportRelative移动海龟到指定的角度和距离ROS应用:小乌龟运动编程小海龟仿真器打开一个新终端,查看ROS计算图节点/turtlesim:接受数据/teleop_turtle:发布数据主题/turtle1/cmd_vel$rqt_graph发布/订阅ROS节点发布/订阅ROS节点小海龟例程中的发布/订阅节点节点/turtlesim:接受数据(订阅节点)/teleop_turtle:发布数据(发布节点)

rostopic/turtle1/cmd_vel发布/订阅节点是ROS系统中最基本、最常用的通信方式,接下来我们就以经典的“HelloWorld”为例学习如何创建发布/订阅节点Catkin工作空间编辑和编译代码的文件夹可以协助编译目录下的所有项目操作:打开一个终端,并且输入:$source/opt/ros/kinetic/setup.bash$mkdir-pcatkin_ws/src$cdcatkin_ws$catkin_makecatkin_make是catkinworkspace下的编译指令。初次运行时,目录下会生成build、devel两个文件夹,并在src文件夹生成CMakeLists.txt文件。发布/订阅ROS节点创建新功能包在工作空间里创建一个新功能包:catkin_create_pkg创建了一个名叫tutorials的新功能包,这个包依赖于已有的ros功能包:std_msgs,rospy,在生成的package.xml中包括了名称描述、作者、证书、依赖项等$cdsrc#进入src文件夹再进行操作$catkin_create_pkgtutorialsstd_msgsrospy发布/订阅ROS节点创建新功能包编译这个新功能包$cd..#返回到catkin_ws文件夹$catkin_make发布/订阅ROS节点发布者/订阅者节点对一个Topic,节点A,B注册成为该Topic的发布者(Publisher),他们都可以不定时的向Topic发送格式化的消息(message)节点C,D可以订阅(Subscribe)该Topic,每当Topic上出现新message,C,D都会收到通知,并调用各自的回调函数(CallbackFunction)处理新message发布者节点创建(需要在codeserver中编辑python文件)$cdsrc/tutorials#进入tutorials文件夹再进行后续操作$mkdirscripts$cdscripts$touchstr_talker.py发布/订阅ROS节点创建发布者节点编辑str_talker.py,代码如下:第一行#!/usr/bin/envpython设置环境编译并测试发布者节点#确保目前在tutorials/scripts文件夹$chmod+x./str_talker.py给文件以执行权限$cd/home/headless/catkin_ws#确保自己在catkin_ws文件夹下进行操作$

catkin_make$source./devel/setup.bash$rosruntutorialsstr_talker.py发布/订阅ROS节点发布者/订阅者节点对一个Topic,节点A,B注册成为该Topic的发布者(Publisher),他们都可以不定时的向Topic发送格式化的消息(message)节点C,D可以订阅(Subscribe)该Topic,每当Topic上出现新message,C,D都会收到通知,并调用各自的回调函数(CallbackFunction)处理新message订阅者节点创建(需要编辑python文件)$cdsrc/tutorials#进入tutorials文件夹再进行后续操作$cdscripts$touchstr_listener.py发布/订阅ROS节点创建订阅者节点编辑str_listener.py,代码如下:第一行#!/usr/bin/envpython设置环境编译并测试订阅者节点#确保目前在tutorials/scripts文件夹#给文件以执行权限$chmod+x./str_listener.py$cd/home/headless/catkin_ws#确保在catkin_ws文件夹下操作$

catkin_make$source./devel/setup.bash$rosruntutorialsstr_listener.py发布/订阅ROS节点共同运行发布者和订阅者节点打开3个终端窗口,分别在里面运行主节点roscore,发布者节点str_talker.py,订阅者节点str_listener.py##=====TerminalNo.1=======$source/opt/ros/kinetic/setup.bash$

cd/home/headless/catkin_ws$source./devel/setup.bash$roscore##=====TerminalNo.2=======$source/opt/ros/kinetic/setup.bash$cd/home/headless/catkin_ws$source./devel/setup.bash$rosruntutorialsstr_talker.py##=====TerminalNo.3=======$source/opt/ros/kinetic/setup.bash$cd/home/headless/catkin_ws$source./devel/setup.bash$rosruntutorialsstr_listerner.py同时运行,可以看到一边发布了消息,一边订阅了消息发布/订阅ROS节点(练习)基于消息发布的小乌龟运动编程小乌龟运动开环控制按照以下步骤可以尝试使用开环控制让小乌龟进行圆形运动打开一个终端进入/catkin_ws/src文件夹,并且在工作空间中创建功能包$source/opt/ros/kinetic/setup.bash$cdDesktop$mkdir-pcatkin_ws/src$cdcatkin_ws$catkin_make$cdsrc#进入src文件夹再进行操作$catkin_create_pkglearning_topicroscpprospystd_msgsgeometry_msgsturtlesim基于消息发布的小乌龟运动编程(练习)基于消息发布的小乌龟运动编程小乌龟运动开环控制进入文件夹/catkin_ws/src/learning_topic/src,编辑velocity_publisher.py,控制小海龟按照圆形运动,并且改动文件的权限程序要点:(1)ROS节点初始化(2)创建Publisher(3)设置循环频率(4)循环:初始化消息类型,设置速度,发布消息,按照循环频率延时$touchvelocity_publisher.py$chmod+xvelocity_publisher.py(练习)基于消息发布的小乌龟运动编程小乌龟运动开环控制完成py文件编写后,在文件夹catkin_ws中进行编译,并且运行程序$cdcatkin_ws$catkin_make#确认没有报错信息后再进行下一步$sourcedevel/setup

温馨提示

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

评论

0/150

提交评论