《ROS机器人程序设计》考试试卷**********大学2024~2025学年第(1)学期-zhangrelay

 

前序 

学生能力是如何被封印的-CSDN博客

作为回应,我觉得我的尝试是失败的,大部分学生仍然被封印着。 

对于课程无法找到重难点,同理

  • 生活也是无法找到重难点,
  • 工作也是无法找到重难点。

方向不对,努力白费。

其实资料全打印出来也行,但是……


根结

学生学习效率如果无法提升,单位时间产出有限,不提升学习效率,只通过加大时间投入不可能解决本质上的问题。但我关于这类课程相关尝试全部都以失败告终。 

本质还是:

答疑时光-总感觉基础不够扎实,很乱很迷茫怎么办-24年12月-CSDN博客 

学生已经麻木了……毫无希望了……太惨了 

当然也有积极参与的学生班级:

不同班级学生的精神状态差异非常大。


试题

考试时间是24年12月14日,如下题目考察原题,只有极少数学生准备了。

这是开卷考试。所有题型都给过案例。

设计编程题:

四 2.2

ROS 2 Jazzy Jalisco 导航工具 Nav2 总结和习题_ros1 vs ros jazzy-CSDN博客

提升效率,随机应变,这是所有情况下都可以优质技能。 

试卷

试卷如下:

 

***********大学2024~2025学年第(1)学期
《ROS机器人程序设计》考试试卷(A卷)
适用班级:****、****
试题总分:100 分  考试时限:100分钟  考试形式:开卷
题号    一    二    三    四    总分    阅卷人
得分                        

得分    
一、单选题(本大题共10小题, 每小题2分, 共20分。)
(  )1、ROS2使用rclcpp::async_spin()相较于rclcpp::spin()主要优势是什么?
A. 减少CPU占用 B. 提高实时性 C. 支持异步回调处理 D. 减少内存使用
(  )2、rcl_interfaces/msg/Parameter消息类型主要用于什么场景?
A. 节点间参数传递 B. 服务调用结果返回 C. 主题消息发布 D. 行动反馈
(  )3、ROS2如何实现节点的自动发现和连接?
A. DDS机制 B. ROS Master  C. 手动配置节点连接 D. 静态IP地址
(  )4、rclcpp::Service类与哪个概念直接相关?
得分    
A. 主题(Topic) B. 服务(Service) C. 行动(Action) D. 参数(Parameter)
(  )5、在ROS2中,如何实现基于时间的消息过滤?
A. 使用消息队列 B. 通过时间戳筛选 C. 设置消息优先级 D. 使用ROS Bag
(  )6、rclcpp::Waitable接口的主要作用是什么?
A. 等待节点启动 B. 等待消息到达 C. 等待服务响应 D. 等待行动完成
(  )7、在ROS2中,如何实现节点的热插拔(即动态添加和移除节点)?
A. 节点管理器 B. ROS参数服务器 C. DDS的动态发现机制 D. 手动重启节点
(  )8、rclcpp::Subscription类与哪个概念直接相关?
A. 服务调用 B. 主题订阅 C. 行动反馈 D. 参数服务器
(  )9、在ROS2中,如何实现多节点间的同步操作?
A. 锁机制 B. 时间戳对齐 C. ROS参数服务器 D. rclcpp::WaitSet
(  )10、ROS2中的ament_index_python主要用于什么目的?
A. 代码编译 B. 包管理 C. 节点注册 D. 环境配置
得分    
二、判断题(每小题2分, 5题共10分。)
(    )1、在ROS2中,rclcpp::AsyncParametersClient类允许节点以异步方式获取参数,但设置参数时仍然需要阻塞主线程。
(    )2、在ROS2中,服务(Service)是一种同步的节点间通信机制,而行动(Action)则是一种异步的、长时间运行的通信机制。
(    )3、在ROS2中,rclcpp::Node类的构造函数中必须指定节点的名称,否则节点无法启动。
(    )4、在ROS2中,rclcpp::WaitSet类允许节点等待多个Waitable对象中的任意一个变得就绪,这有助于实现复杂的同步逻辑。
(    )5、在ROS2中,rclcpp::Executor类负责调度和处理节点的回调函数,但它不支持自定义的执行策略。
三、多选题(每小题4分, 5题共20分。)
(     )1、在nav2的路径规划中,以下哪些算法可能被用到?
A. Dijkstra算法  B. A*算法    C. 遗传算法   D. 粒子群算法
(     )2、在ROS2中,nav2栈的哪些组件负责路径跟踪?
A. 路径控制器  B. 速度控制器 C. 全局规划器 D. 地图服务器
(     )3、关于nav2的代价地图,以下哪些说法是正确的?
A. 表示环境中的障碍物和自由空间 B. 动态更新以反映环境变化 
C. 支持多层代价地图以处理不同类型的信息 D. 路径规划的基础 
(     )4、moveit2支持哪些类型的机器人?
A. 串联机器人臂 B. 并联机器人臂 C. 移动机器人 D. 仿真机器人 
(     )5、关于nav2与moveit2的协同工作,以下哪些说法是正确的?
A. 可以实现更复杂的机器人任务 
B. 需要确保两者之间的状态同步 
C. 可以利用nav2的导航能力为moveit2提供操作位置 
D. 可以利用moveit2的操作能力为nav2提供避障支持 
得分    

四、设计编程题(2题共50分)
1 设计一个ROS2节点,该节点订阅来自激光雷达(LiDAR)和车辆动力学状态(如速度、加速度等)的传感器数据,并根据这些数据实现一个自动紧急刹车系统(AEB)。当检测到前方有障碍物且距离小于设定的安全距离时,系统应发布刹车命令到机器人的移动底盘,以实现紧急刹车。
设计思路(10分),流程图(10分),核心程序(10分)。
设计思路:


流程图:


核心程序:

2 室内机器人导航仿真环境三维可视化交互rviz2如下图4.2所示:
 
图4.2 rviz2中nav2导航演示
Nav2应用于此环境实现机器人自主导航的设计思路(10分); 
设计思路:


新增用户动态地选择规划器、控制器、目标检查器、进度检查器和平滑器等功能的这类插件的优势(10分)。
插件的优势:

教程

COURSE