# 單元測試二
<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