# 单元测试二
<quiz>
<question>
<p>1.[单选](2分)目前ROS主流的编译系统是?</p>
<answer>A.Ament</answer>
<answer>B.rosbuild</answer>
<answer>C.CMake</answer>
<answer correct>D.Catkin</answer>
<explanation>Ament是ROS2的编译系统,rosbuild太老了</explanation>
</question>
</quiz>
<quiz>
<question>
<p>2.[单选](2分)如果你要clone一个ROS的软件包,下列哪个路径是合理的存放位置?</p>
<answer>A.~/catkin_ws/devel</answer>
<answer>B.~/catkin_ws/</answer>
<answer correct>C.~/my_ws/src</answer>
<answer>D.~/catkin_ws/build</answer>
<explanation>通常ROS的pacakge都放在工作空间下的src目录里,工作空间的名称当然可以随意指定</explanation>
</question>
</quiz>
<quiz>
<question>
<p>3.[单选](2分)默认情况下,catkin_make生成的ROS可执行文件放在哪个路径?</p>
<answer>A.catkin_ws/src</answer>
<answer>B.catkin_ws/</answer>
<answer correct>C.catkin_ws/devel</answer>
<answer>D.catkin_ws/build</answer>
<explanation>你选对了</explanation>
</question>
</quiz>
<quiz>
<question>
<p>4.[单选](2分)CMake文件编写规则中,用于将库文件链接到目标文件的是哪条指令?</p>
<answer>A.add_executable()</answer>
<answer>B.add_link()</answer>
<answer>C.add_library() </answer>
<answer correct>D.target_link_libraries()</answer>
<explanation>你选对了</explanation>
</question>
</quiz>
<quiz>
<question>
<p>5.[单选](2分)CMake的指令中,引入头文件的搜索路径是哪个指令?</p>
<answer>A.cmake_include_directory()</answer>
<answer>B.cmake_include_path()</answer>
<answer correct>C.include_directories()</answer>
<answer>D.include_directory()</answer>
<explanation>你选对了</explanation>
</question>
</quiz>
<quiz>
<question multiple>
<p>6.[多选](5分)一个ROS的pacakge要正常的编译,必须要有哪些文件?</p>
<answer>A.*.cpp</answer>
<answer correct>B.CMakeLists.txt</answer>
<answer>C.*.h</answer>
<answer correct>D.package.xml</answer>
<explanation>你选对了</explanation>
</question>
</quiz>
<quiz>
<question multiple>
<p>7.[多选](5分)下列哪些是CMake没有而Catkin有(Catkin扩展了)的指令?</p>
<answer correct>A.add_action_files()</answer>
<answer correct>B.add_message_files()</answer>
<answer correct>C.add_service_files()</answer>
<answer correct>D.generate_messages()</answer>
<explanation> A、添加ROS的action文件 B、添加ROS的msg文件 C、添加ROS的srv文件 D、生成msg、srv、action</explanation>
</question>
</quiz>
<quiz>
<question>
<p>8.[判断](2分)roscd、rosls指令后面都可以直接加包名,作用分别是跳转到软件包路径下,列出软件包中的内容.</p>
<answer correct>A.正确</answer>
<answer>B.错误</answer>
<explanation>是正确的</explanation>
</question>
</quiz>
- 前言
- 第一章 ROS简介
- 机器人时代的到来
- ROS发展历程
- 什么是ROS
- 安装ROS
- 安装ROS-Academy-for-Beginners教学包
- 二进制与源码包
- 安装RoboWare Studio
- 单元测试一
- 第二章 ROS文件系统
- Catkin编译系统
- Catkin工作空间
- Package软件包
- CMakeLists.txt
- package.xml
- Metapacakge软件元包
- 其他常见文件类型
- 单元测试二
- 第三章 ROS通信架构(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常见msg类型
- 单元测试三
- 第四章 ROS通信架构(二)
- Service
- Srv
- Parameter server
- Action
- 常见srv类型
- 常见action类型
- 单元测试四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 单元测试五
- 第六章 roscpp
- Client Library与roscpp
- 节点初始、关闭与NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 时钟
- 日志与异常
- 第七章 rospy
- Rospy与主要接口
- Topic in rospy
- Service in rospy
- Param与Time
- 第八章 TF与URDF
- 认识TF
- TF消息
- tf in c++
- tf in python
- 统一机器人描述格式
- 附录:TF数学基础
- 三维空间刚体运动---旋转矩阵
- 三维空间刚体运动---欧拉角
- 三维空间刚体运动---四元数
- 第九章 SLAM
- 地图
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附录:Navigation工具包说明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery