《ROS机器人操作系统基础习题册》 习题答案_第1页
《ROS机器人操作系统基础习题册》 习题答案_第2页
《ROS机器人操作系统基础习题册》 习题答案_第3页
《ROS机器人操作系统基础习题册》 习题答案_第4页
《ROS机器人操作系统基础习题册》 习题答案_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1122ROS机器人操作系统基础习题册答案目录项目一 ROS机器人操作系统的认知 1任务一 了解ROS机器人操作系统 1任务二 安装ROS机器人操作系统 2项目二 ROS架构的认知 3任务一 ROS整体架构的介绍 3任务二 启动ROS第一个节点——小海龟仿真 5任务三 ROS的通信机制在小海龟中的应用 6项目三 命令行工具的使用 7任务一 初识命令行工具 7任务二 使用rosnode命令管理节点 8任务三 使用rostopic命令管理话题消息 9任务四 使用rosservice命令管理服务消息 10任务五 使用rosbag命令记录运行数据 任务六 使用rosparam命令修改参数 12任务七 使用rosmsg命令查看消息 12项目四 ROS节点的启动 14任务一 启动节点和节点管理器的两种方式 14任务二 创建工作空间和功能包 15任务三 使用Python和C++编写节点程序 17任务四 使用launch文件实现节点启动和参数设置 18任务五 使用launch文件实现多节点启动 19项目五 话题通信机制的实现 21任务一 话题通信机制基础概述 21任务二 使用话题通信机制实现节点通信 23任务三 使用话题通信机制控制小海龟移动 24项目六 服务通信机制的实现 25任务一 服务通信机制基础概述 25任务二 创建并编译自定义服务数据 26任务三 使用服务通信机制实现节点通信 27项目七数据信息可视化的实现 28任务一 初识数据可视化 28任务二 实现小海龟速度数据的可视化 29任务三查看ROS进程网络计算图 31任务四 使用实现数据的可视化 32任务五 使用TF坐标变换实现小海龟跟随运动 33项目八机器人仿真环境搭建与仿真操作 35任务一 机器人仿真概述 35任务二 搭建仿真场景 37任务三 在仿真环境中实现SLAM建图 38任务四 在仿真环境中实现点对点导航 39项目一ROS机器人操作系统的认知任务一 了解ROS机器人操作系统一、填空题节点单元 分布式网络 RPC+TCP/UDP 适合多机通信$gitclone<gitaddress>DownloadZIP分布式 可靠性 实时性 嵌入式公开二、判断题1.×2.√3.×4.√5.×三、选择题CDABD四、简答题1.3D可视化工具——Rviz物理仿真环境——Gazebo数据记录工具——rosbagQt工具箱——rqt_*2.不同开发者会偏向使用不同的编程语言,为了解决这个问题,ROS被设计成语言中C++PythonJavaLisp的接口。为了实现交叉语言,ROS利用了语言无关的接口定义语言(举个例子,在供水系任务二 安装ROS机器人操作系统一、填空题$sudoapt-getinstall<软件名称>$sudoapt-getremove<软件名称>$source*.sh$printenv|grepROS二、判断题1.√2.×3.×4.×5.√三、选择题AACAB四、简答题ROS环境:在终端中输入以下命令后,可以完成当前终端的环境配置。$source*.shROS环境:在终端中输入以下两行命令后,可以成功配置当前终端的环境,并且在新建的终端中也会自动应用相同的环境配置。$echo"source/opt/ros/melodic/setup.bash">>~/.bashrc$source~/.bashrcPAGEPAGE3PAGEPAGE4项目二 ROS架构的认知任务一 ROS整体架构的介绍一、填空题操作系统层 中间层 应用层通用实时性二、判断题1.×2.×3.√4.×5.√三、选择题BCADD四、简答题在应用层,ROS的正常运行需要一个管理器——ROSmaster。ROSmaster即节点ROSROS编译产生的工作空间文件结构如下:src(代码空间)ROS功能包的源代码。build(编译空间):储存工作空间编译过程中产生的缓存信息和中间文件。devel(开发空间):储存编译生成的可执行文件。ROSROSsrc能重复。功能包清单:一个名为“package.xm1”的功能包清单文件,用“xm1”的标签语的功能包配cmake(一个跨平台的安装或编译工具)进行编译。ROS中一个节点发布/ROS.msg文件(ROS话题消息)自定义消息类型。服务类型:服务是ROS中一个节点请求/响应到其他节点的通信过程,服务类型ROS系统提供的标准服务类型,也可以使用.srv文件(ROSsrv文件夹下)进行自定义。C++程序、Python脚本等。任务二启动ROS第一个节点——小海龟仿真一、填空题话题$rosrunturtlesimturtlesim_node$rosrunturtlesimturtle_teleop_key二、判断题1.√2.×3.√4.√三、选择题BAA四、简答题键盘控制节点/teleop_tutle通过话题与小海龟节点/turtlesim连接。当按下键盘的指定按键时,键盘控制节点向/turtle1/cmd_vel话题发布一个速度信息。小海龟节点获取/turtle1/cmd_vel中的速度消息进行移动。(使用鼠标单击该终端,确保键盘“→”键控制小海龟进行移动。任务三 ROS的通信机制在小海龟中的应用一、填空题话题分布式异步 同步rostopic参数二、判断题1.√2.×3.√4.×5.√三、选择题ABBAC四、简答题ROS参数管理机制的优势在于它可以提供一个集中的区域来管理和共享节点的配置参项目三 命令行工具的使用任务一 初识命令行工具一、填空题rosnoderosbagrosrunrosparamrosservice二、判断题1.√2.√3.√4.×5.√三、选择题DBBAD四、简答题ROSROSROS消息命令对数据进行储存并回放。catkincatkin命令可以很方便地生成功能包并快速完成功能包的编译。任务二 使用rosnode命令管理节点一、填空题rosnodecleanuprosnodeinforosnodekill二、判断题1.√2.×3.√三、选择题BAB四、简答题rosnodeROS节点调试消息的命令行工具,包括发布、订阅、连接等。可rosnodelist命令查看当前运行的节点消息,rosnodeinfo命令查看节点的详细消息,rosnodekillROS节点,rosnodeping命令检测节点是否正在运行。rosnoderosnodelistrosnodeinfo/node_name等。任务三 使用rostopic命令管理话题消息一、填空题rostopiclistrostopicinforostopicecho二、判断题1.√2.√3.√4.√三、选择题CBA四、简答题rostopicbw/turtle1/poserostopictype/turtle1/cmd_velPAGEPAGE10PAGEPAGE11任务四 使用rosservice命令管理服务消息一、填空题rosservicelistrosserviceinforosservicecall二、判断题1.√2.√3.×三、选择题ABC四、简答题rosserviceuri/turtle1/set_penrosserviceinfo/turtle1/set_pen任务五 使用rosbag命令记录运行数据一、填空题rosbagrecordrosbagplayrosbagcompressrosbagdecompress二、判断题1.√2.×3.×三、选择题CCBB四、简答题1.rosbaginfo2020-06-12-10-11-37.bag2.rosbagcompress2020-06-12-10-11-37.bag任务六 使用rosparam命令修改参数一、填空题rosparamset列出参数名获取参数二、判断题1.× 2.√ 3.√三、选择题CACA四、简答题1.rosparamset/turtlesim/background_r255rosparamset/turtlesim/background_g251rosparamset/turtlesim/background_b250rosservicecall/clear2.rosparamloadaaa.yaml任务七 使用rosmsg命令查看消息一、填空题rosmsgshowrosmsglistrosmsgpackage二、判断题1.√2.× 3.×三、选择题ACB四、简答题rosmsglist、rosmsgshow、rosmsgpackage、rosmsgpackagesrosmsgpackageturtlesim项目四ROS节点的启动任务一 启动节点和节点管理器的两种方式一、填空题rosrunroslaunchroscorerosout parameterserver二、判断题1.×2.√ 3√三、选择题CBC四、简答题ROSlaunch文件可以简单理解为一个集合了多个节点和参数的文件,launch文件的功能是一次性启动多个节点。ROS中通常需要同时运行多个节点,如果每次开机都launchroslaunch命令一次性启动多个节点。rosrun命令来单独运行程序,roslaunch命令有两个主要优点:roslaunch命令可以向程序传递参数,以便在启动时动态地配置节点的行为。roslaunch命令可以同时运行多个节点,提供了更方便的节点启动方式。roslaunchROSroscoreroscorerosaunhroscoreroscorelaunch文件中定义的规则执行启动过程。launch文件包含了预先配置好的启动规则,roslaunch是一个启动工具,可以一次性按照配置启动多个节点,无须在终端中逐个输入命令。任务二 创建工作空间和功能包一、填空题编译package.xmlroscppsource~/.bashrcsrc二、判断题1.√2.√3.√4.×5.√三、选择题ADCCB四、简答题创建工作空间的作用有以下几点:ROS项目模块化组织。ROS项目通常包含多方便编译和构建:ROS项目需要进行编译,将源代码转化为可执行文件,同时需CMakeLists.txtpackage.xml。工作空间允许用户在其中进行编译,并自动生成构建文件,从而简化项目构建过程。依赖项管理:工作空间有助于管理项目所依赖的其他功能包。ROS中的功能包通ROS复制到其他计算机上并进行编译和运行,而无须手动复制和配置每个功能包。ROSmkdir-p~/catkin_ws/srccatkin_make任务三 使用Python和C++编写节点程序一、填空题rospy.loginfo(str)循环rate.sleep()Python5.C++二、判断题1.×2.√3.√4.×5.√三、选择题BABC四、简答题Rospy.is_shutdown()是一个用于检查程序是否应该退出循环的函数。当该函数返回FalseTrueCtrl+C”rospy.is_shutdown()True,结束程序的运行。ROSROS进行交互,而无须深入关注底层的实现细节。任务四 使用launch文件实现节点启动和参数设置一、填空题<node><param><<include>XML二、判断题1.√2.×3.√4.×5.√ 6.√三、选择题CBADD四、简答题<launch>roslaunch<launch>ROSlaunchXMLROSlaunch文件必须包含且仅包含一个根元素,它由一对<launch>标签定义。其他的所有元素标签都要写在<launch>与</launch>标签之间。XMLXML语言编写的文本文件,它由标签和数据组成。标签用于标ROS中,XML文件被广泛应用于描述、XML文件时的注意事项如下:所有元素必须有结束标签。XML语法对大、小写敏感,即大、小写字母应区分对待。嵌套格式必须正确。同级标签要对齐。元素名称可以包含字母、数字或其他字符,但是不能以数字或标点符号开始。元素名称中不能包含空格。XML属性值必须加引导符号。XML文件中字符“<”和“&”是非法的,需要用实体引用来代替它们。任务五 使用launch文件实现多节点启动一、填空题单一launch roslaunch压入命名空间二、判断题1.× 2.× 3.√ 4.√三、选择题AAC四、简答题Launch文件实现多节点启动的步骤如下:Launch文件(通常以.launch为扩展名)。Launch文件中,使用<node>标签定义每个节点的启动选项,包括节点的包(package)、类型(type)、名称(name)和其他参数。Launch文件中使用<include>Launch文件,以便启动多个节点。Launch<group>标签将多个节点组合在一起,或者使用其他适当的方法进行控制。Launch文件,然后使用适当的启动命令(roslaunch)Launch文件,从而启动相应的节点。PAGEPAGE20PAGEPAGE21ROS支持相对名称,相对名称用到了默认命名空间的概念。为一个节点设置默认命名空间属性,具体实现案例如下:<groupns="turtlesim1"><nodepkg="turtlesim"name="sim"type="turtlesim_node"/></group><groupns="turtlesim2"><nodepkg="turtlesim"name="sim"type="turtlesim_node"/></group>uresim1turtlesim2turtlesimturtlesim模拟器而不会产生冲突。项目五话题通信机制的实现任务一 话题通信机制基础概述一、填空题二、判断题1.√2.×3.×4.×5.√三、选择题DAD四、简答题话题通信机制定义了一种发布/订阅模式,在这种模式下,一个节点可以作为消息/订阅模式中,发布者和订阅者之间通过话题传递消息,(/订阅位置、目标信息等话题来进行协作,实现任务分配、路径规划和协同工作。最后,话题通信模型还应用于机器人监测和诊断系统。任务二 使用话题通信机制实现节点通信一、填空题发布订阅rospy.publisher()publish()回调二、判断题1.√2.×3.×4.√三、选择题BAD四、简答题rospy.Subscriber("chatter",String,callback)pub=rospy.Publisher("chatter",String,queue_size=8)任务三 使用话题通信机制控制小海龟移动一、填空题linearangularrosmsgshow二、判断题1.√2.√3.√4.×三、选择题BDA四、简答题消息含义如下:geometry_msgs/Twistgeometry_msgs/TwistPublishers:None表示当前无发布者向该话题发布消息Subscribers:*/turtlesim(http://ubuntu:35923/)表示当前话题的订阅者是/turtlesim可以使用命令rostopiclist来查看当前正在发布的话题列表。该命令会列出所有已经创建的话题名称。项目六服务通信机制的实现任务一 服务通信机制基础概述一、填空题服务服务器请求 响应服务描述 .srv超时服务数据类型二、判断题1.×2.√3.×4.√5.√三、选择题CDBBA四、简答题任务。此外,服务通信机制具有同步操作和阻塞等待的能力,能够确保顺序性和依赖关系,更适合需要同步操作和结果等待的场景。任务二 创建并编译自定义服务数据一、填空题srv结构 数据类型字段功能包清单二、判断题1.×2.×3.√4.×三、选择题BCD四、简答题rossrvshowrossrvshow指令查看到具体服务数据,即可确认服务数据创建成功。任务三使用服务通信机制实现节点通信一、填空题开头头文件rospy.Service()服务名称服务数据类型处理函数rosservicelist二、判断题1.√2.√3.×4.√5.√三、选择题ACBA四、简答题S=rospy.Service(‘sum_ints’,SumInts,handle_sum_ints)服务通信机制中的处理函数与话题通信机制中订阅者的回调函数的作用相似,当接收到功能包名称:beginner_tutorials;“*”代表导入所有。项目七 数据信息可视化的实现任务一 初识数据可视化一、填空题项目显示区 3D视图显示区 观测视角设置区 时间显示区rqtimageviewbag二、判断题1.√2.×3.×4.√5.√三、选择题BCDBA四、简答题cmd_velROS的三维可视化工具,具有以下两个主要功能:可以以图形化的方式显示外部信息,如机器人模型、zOS系统中。的界面,用户可以发送控制指令,如设置目标位置、设定机器人的运动速度等,环境中直接与机器人进行交互,观察其行为和效果。任务二 实现小海龟速度数据的可视化一、填空题rqt_plot线速度 角速度rostopicm/s二、判断题1.√2.×3.√三、选择题AAD四、简答题GUI界面选择。(1)使用命令行启动,命令如下:$rqt_plot/[topic_name]例如,输入以下命令,打开小海龟的/turtle1/pose的相关界面。$rqt_plot/turtle1/pose/x/turtle1/pose/y(2)通过GUI界面选择,操作步骤如下:PAGEPAGE30PAGEPAGE31输入以下命令,启动rqt_plot。$rqt_plot在GUI界面“Topic”右侧文本框中输入话题,然后单击文本框右侧的加号即可完成话题的添加。勾选曲线坐标窗口界面右上角的“autoscroll”复选框,曲线坐标系中会自动绘制并播放曲线动图。任务三 查看ROS进程网络计算图一、填空题计算图节点 话题 消息节点 节点管理器 参数服务器 消息 话题 服务二、判断题1.√2.×3.√三、选择题CAAD四、简答题ROSrqt_graph"roscore"ROS(例如小海龟仿真节点和键盘控制节点rosrunrqt_graphrqt_graph"rqt_graphROS系统ROS系统中,rqt_graphrqtrqt_graph命令可以获得系统的整体情况和信息流动的可视化展示,学习者可以了解消息是如何在不同节点之间进行传递和处理的,从而更好地理解整个系统的运行原理。此外,rqt_graph还能帮助学习者快速发现和纠正通信方面的问题,提高开发调试的效率。任务四使用RViz实现数据的可视化一、填空题LaserScanPath显示类型 话题Pose二、判断题1.√2.√3.×4.√5.√三、选择题CCDBD四、简答题按话题添加可视化元素步骤如下:在显示屏菜单中单击“Add”,弹出“rviz”对话框。。By能够显示多种传感器数据和机器人状态,包括但不限于:LaserScan插件显示激光雷达扫描结果。PointCloud2插件显示三维空间中的点云数据。Image插件显示图像数据,如摄像头的实时图像。Path插件显示机器人的运动轨迹。RobotModel插件显示机器人的模型,并支持交互操作。MarkerArray插件显示机器人的碰撞检测结果。OccupancyGrid插件显示静态地图信息。若要更改激光雷达点云的颜色,首先应在“LaserScan”的“ColorTransformer”下拉菜单中选择“FlatColor”,这将使激光点云显示为单色,若要自定义颜色,单击“Color”右侧的图标,弹出颜色编辑器,在颜色编辑器中选择所需的颜色并单击“OK”即可。任务五 使用TF坐标变换实现小海龟跟随运动一、填空题坐标系弧度 四元数view_framestf_echo订阅发布二、判断题1.√2.×3.√4.√三、选择题CAC四、简答题TF坐标变换功能包,开发者可以请求以下类型的数据:坐标系之间的变换关系:TF坐标变换功能包允许开发者查询不同坐标系之间的变换关系,如一个坐标系相对于另一个坐标系的平移和旋转关系。时刻的坐标变换:TF坐标变换功能包能够记录并提供坐标系在不同时间点的变换运动中的坐标变换:对于运动中的物体或机器人,TF坐标变换功能包能够提供动查看坐标系变换关系步骤如下:tf更形象地不同坐标系之间的变化关系。新建一个终端,输入以下命令:rosrunrvizrviz-d$(rospackfindturtle_tf)/rviz/turtle_rviz.rviz的“Displays”窗口的“FixedFrameTF组件中坐标系的名字和对应关系。单击“Displays”窗口中的“TreeTF树。TFTFTFROS系统中可TFTF变换消息将坐标变TFTF树中项目八机器人仿真环境搭建与仿真操作任务一 机器人仿真概述一、填空题仿真模型 仿真实验初始条件参数二、判断题1.√2.√3.√

温馨提示

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

最新文档

评论

0/150

提交评论