前序
作为回应,我觉得我的尝试是失败的,大部分学生仍然被封印着。
对于课程无法找到重难点,同理
- 生活也是无法找到重难点,
- 工作也是无法找到重难点。
方向不对,努力白费。
其实资料全打印出来也行,但是……
根结
学生学习效率如果无法提升,单位时间产出有限,不提升学习效率,只通过加大时间投入不可能解决本质上的问题。但我关于这类课程相关尝试全部都以失败告终。
本质还是:
答疑时光-总感觉基础不够扎实,很乱很迷茫怎么办-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分)。
插件的优势: