《鸿蒙机器人编程》2-实践课 - 运行第一个ROS程序-实训指南_第1页
《鸿蒙机器人编程》2-实践课 - 运行第一个ROS程序-实训指南_第2页
《鸿蒙机器人编程》2-实践课 - 运行第一个ROS程序-实训指南_第3页
《鸿蒙机器人编程》2-实践课 - 运行第一个ROS程序-实训指南_第4页
《鸿蒙机器人编程》2-实践课 - 运行第一个ROS程序-实训指南_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

ROS星火计划 實踐課-運行第一個ROS程式 NXROBO运行第一个ROS程序课程内容: 本节将启动turtlesim小乌龟程序,通过本章内容,可了解启动ROS程序的命令,以及熟悉启动ROS程序的流程。教学目标:熟悉启动ROS程序流程掌握ROS常用命令掌握rqt工具的使用一.turtlesim小乌龟仿真程序这是一个经常被用来展示ROS程序特点的小例子。安装ROS通常就已经自带了turtlesim这个程序,如果没有,可通过下面的命令进行安装:$sudoapt-getinstallros-noetic-turtlesim启动ROS管理器:roscore打开一个终端,输入以下命令:$roscoreroscore将启动:aROS

MasteraROS

ParameterServera

rosout

loggingnode运行功能包:rosrun打开一个新的终端,并输入以下命令启动turtlesimdemo。$rosrunturtlesimturtlesim_node(语法:rosrun<package><executable>)turtlesim就是一个功能包,这个功能包下面会有一个可执行的程序就是这个可执行程序的名字。可执行程序的文件名就是turtlesimnode。所以这句话的意思就是rosrun就是说我要启动启动turtlesim这个包下面的node节点。查看话题:rostopiclist显示ROS节点所发布的所有话题。$rostopiclist我们把这个当前启动起来机械系统的这个话题用rostopiclist这样一个命令列出来。发送单个话题:rostopicpubpub就是要用这个工具来去发送消息,所以这个pub就是publish的缩写,就是发送消息。目的:让海龟以0.2m/s爬行。方法:发布cmd_velmessage给/turtle1/cmd_vel的x:完整命令$rostopicpub/turtle1/cmd_velgeometry_msgs/Twist'{linear:{x:0.2,y:0,z:0},angular:{x:0,y:0,z:0}}'简化命令$rostopicpub/turtle1/cmd_velgeometry_msgs/Twist'{linear:{x:0.2}}'速度消息分成两部分一部分是线速度,就是linear;angular是角速度。我们用xyz这三个轴上的向量来去描述速度。x这个朝向的话,就是他正前方速度是0.2米每秒。在他侧向没有速度。在z轴就是在垂直方向也是没有速度的。那么这样的话就描述了线速度。角速度同样就是说绕着这个小乌龟的哪个轴来去转动的这个角速度。通过这样一个命令就可以让这个小乌龟以0.2米每秒这个速度来去爬行了。这个命令实际上是可以简化成下面的msgs。连续自动发送给话题:rostopicpub如果我想循环的发送同样的这个消息,比如说我想让他这个持续的发送这个消息就用到了下面的这个参数。参量:-r单位Hz(defaultis10Hz)。例如让海龟连续转圈圈:$rostopicpub/turtle1/cmd_vel-r10geometry_msgs/Twist'{linear:{x:0.2,y:0,z:0},angular:{x:0,y:0,z:0.5}}'发送一个既有线速度也有角速度的这样一个速度,他就转圈圈了。我们速度消息的这个软件总线上发。以10赫兹的频率来发送这个消息。这个消息类型跟前面的这个消息类型一致,linear跟前面这个是一样的。这里面多了一个角速度就是绕着Z轴0.5弧度每秒这样一个速度来去做角速度,那么这样话他就会就会转圈圈了。让海龟转起来消息格式定义:rosmsg使用rosmsg工具查看geometry_msgs/Twist消息格式定义$rosmsgshowgeometry_msgs/Twist这个消息分成两部分:一部分是linear,一部分是这个angular。linear是一个向量,这个向量的每一个分量是三个浮点数;angular这个向量也是3个浮点数。记录ROSTopic:rosbagrecord记录所有topic(-a):$rosbagrecord-a-Ocmd_vel_record-a是把所有的topic都给记录下来,-O是把数据都记录下来,存储到cmd_velrecord这样一个文件里面。在同一终端按Ctrl+C结束记录。回放cmd_vel_record.bag(先Ctrl+C停止原来转圈命令的topic发布)。$rosbagplaycmd_vel_record.bag你会发现海龟会像先前的记录装态重新转起来!使用rqt_graph打开rqt_graph:$rqt_graph刚才我们说了rosrun启动个turtlesim这个程序之后,实际上就是启动了一个机器人系统。相当于启动了机械系统。那么这个机械系统他都有哪些节点,这些节点之间是通过哪些话题来去通信的。我们可以用rqtgraph可以看到数据在几个node之间的传递。用rqtgraph就可以把前面说这个计算图给呈现出来使用ROSservice可使用rosservice命令调用一只新的海龟:$rosservicecall/spawn'{x:1.0,

温馨提示

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

评论

0/150

提交评论