机器人操作系统

(柯文德)ME3322025秋 2024秋 2023秋 2022秋 2022春 2021春 2020春  
2025秋 2024秋 2023秋 2022秋 2022春 2021春 2020春
7.0(3人评价)
  • 课程难度
    中等
  • 作业多少
    很少
  • 给分好坏
    超好
  • 收获大小
    一般
选课类别:专业任务 教学语言:双语
课程类别:专业选修课 开课单位:机械与能源工程系
课程层次:本科 获得学分:3.0
课程主页:暂无(如果你知道,请点右上角“编辑课程信息”添加!)
点评写点评
排序学期
评分评分3条点评
user avatar   Joanne_Mathis     2025秋
  • 难度:中等
  • 作业:很少
  • 给分:一般
  • 收获:一般

课前提醒:一定要按照要求装Linux的22.04版本和ros2 Humble!

这门课主要是学习ros2的。课上跟着老师过一遍ros2知识,老师这方面可以放心。讲的很好,很耐心,不会学不会的。助教们很负责,会在下面解决学生的bug。课下是实验报告作业。课程最后需要做一个很大的project。总体上就是这样。

先说上课内容:如果没有机器人开发经验,或者C++/Python面向对象编程基础,计算机基础(包括对计算机的理解),前面的基础知识,如节点,话题等也只能听个皮毛,不能透彻理解其内涵,也只能做到最基础的使用。当然,这些东西你听不懂也可以,反正最后project用不太上。前期的基础知识还好,跟着学就行,写写实验报告。中期讲rviz(可视化),gazebo(3D物理世界仿真平台,project主要就是围绕这个展开的),URDF/SDF(机器人描述文件格式,project的机器人需要用这样的文件描述),建图。后期的ros2安全,内存管理,通信等内容对大部分人来讲应该都是没啥用的,太深奥了,不符合短期的需求。建议听听就行,导航等。听做项目也可以),以后需要来再学。一门课了解了ros,camke,xml,C++,Python,urdf,sdf,yaml,rviz,gazebo,webots,nav,moveit,opencv,PX4,QGground……这很符合机器人专业杂而不精,会用就行的特点。

课程令人难以忘却(此处原来是一个情感较重的词汇)的地方在于,ros这个东西不是一个像windows一样成熟的操作系统(甚至就不是一个操作系统),linux也十分复杂,毕竟是开源嘛,整个课程需要面对大量的报错,无法工作等问题,大量的时间用于改bug(问题是很多bug不像代码一样是逻辑问题,就是什么接口不匹配,编译环境不对,找不到文件路径,版本不对,工具包没安装,cmake少一行,以及各种与核心知识无关的离谱报错。让一个ros是什么都不知道的萌新小白第一天就面对这些,这简直是在劝退),报错信息发AI问,反复改。要是什么代码逻辑报错,修改修改bug那还能学到什么东西,这些报错会让人对计算机感到怀疑。时间被浪费在了这些事情上,严重磨灭了学生对ROS学习信心,也压缩了真正学习ROS核心内容的时间。我可以负责任的说,新手去改这些不该由他们改的Bug毫无意义。整个课程学会了复制粘贴问AI。

再说project:与其叫ros2的project,不如叫gazebo的project。因为主要要围绕gazebo展开,ros2相对还是比较底层的。3人小组需要建模底盘和机械臂(solidworks转urdf文件),让底盘在地图里面导航,机械臂能抓取物体。同时实现语音和手势识别,交互。其中导航是会教的,机械臂完全不讲,自己鼓捣,语音视觉也是自己学,但是挺简单的。建议用Ubantu22.04+ros2humble,24.04+jazzy的生态很差,很多功能都不全,ros2control(用于桥接moveit和gazebo),Moveit(用于规划机械臂)的教程基本都是22.04版本的,用24.04版本能报错到你怀疑人生。project还有个问题,作为一个占课程总分百分之50的大项目,基础分居然只占project的70分,剩下30分叫“加分项目”,包含“统一环境仿真”“语音控制”“手势识别”。这样有什么意义?不直接全叫项目要求就行了,还美其名曰基础分和加分项?难道不是应该基础分90-100分,加分项作为bonus之类的吗?并且评分标准就是个黑箱,不是说你实现了要求就能给满分的,还看你实现的“好不好”,有没有“超标准完成”,但是“好不好”没个明确标准。我对这个project分数组成持负面评价。你完全可以告诉我们满分的标准是什么,而不是让我们去猜。建议搞明白什么叫“加分项”。目前成绩还没出,如果出了之后与我描述不符,这一部分删掉。整个project基本用不到前面学到的东西,这一点让我怀疑前面学习内容的意义。现在成绩出了,如我所料,真就不高。并且直接出总评,连小分都没有。真是黑箱外面又套了个黑体。

课程下来收获没有想象中那么多,但也不能说完全没收获。比如了解了机器人的基本知识,这对我一个大二的还是有提纲挈领意义的。同时你能学到很多AI提问技巧。还有就是学会了耐心,冷静,尤其是你在面对一个报错改半天的时候。不过这些可能是我个人问题,需要以后多实践。

user avatar   Robert_Hime     2024秋
  • 难度:简单
  • 作业:很少
  • 给分:超好
  • 收获:一般

幽默机械系课程,先谈谈为什么有七分。一分给这门课让我装了Ubuntu双系统,一分给这门课让我恋上了树莓派,一分是这门课让我知道了ROS这个东西,一分是让我更加熟练使用Github,两分是助教靠得住,还有一分是给柯老师给分好的印象。

首先本课程无考试,分数主要取决于平时签到和报告(40%)和一个期末大项目(60%)。从课程内容上来看,几乎可以完全依赖自学。上课内容基本上就是跟着官方教程一步一步来,没有什么难度,中间有同学遇到一些bug需要解决非常浪费时间,而且没有任何意义。课程没有针对性训练使用ros从而满足高级的需求,基本上都是复制粘贴开源代码,所以很难说有什么重要知识点。即便是期末的大项目,和同组同学讨论后我们认为完全不依赖这门课的情况下满打满算二十四个小时自学可以完成项目所有要求(这次期末项目出题阴间,导致大量同学前一天熬夜通宵调整参数)。ROS这个平台以及互联网已经提供了充足的开源项目和课程学习,所以这门课的处境非常尴尬。

综上所述,想要选择本课程的非机械系同学请慎重考虑,并综合对比我校其他类似课程;机械系同学可以尝试本课程,但是仍推荐自学。

最终得分A,推荐通过本课程提高绩点。

user avatar   wbaczt     2025秋
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

总结:柯老师万岁!整体收货很多,知识很实用,不过上课过程中有一些槽点。

课程整体以基于Ubuntu 22.04、ROS2 Humble和Gazebo 11 / Gazebo ign的实操为主,一学期下来你会:

  1. 学习到ROS2从入门到中级的相关知识,如①节点、话题、服务、动作、接口;②启动文件,常用工具(rqt,rviz等);③Gazebo和Webot仿真;④导航(Rviz2);⑤Qos、通信等。其中①做了解即可,更大的意义在于通过实操熟悉Linux操作和ROS2工作空间的项目包架构;②③④是重中之重,项目中会用到很多;⑤仅做了解,听得比较迷糊;
  2. 学会如何在书写实验报告上花费更少的时间,比如边上课边实操边写实验报告(有一定挑战性,不过确实像别的评论一样体现出一点:可以自学,没必要仔细听老师在讲什么,只要知道在干什么就行)。话说实验报告也不知道具体有什么意义,总感觉就是对着官网抄一遍,然后把自己的运行结果图片放上去,就很低效,不过我好像也想不到什么更好的建议,比如只需要截一下自己的运行结果以证明自己实操过了就行?
  3. 在Project的AI辅助的编程和debug过程中不断怀疑人生:包括但不限于版本问题(如sw2urdf插件生成的包文件仅支持ROS1;部分代码和包仅适用于其他ROS2版本);仿真系统问题(如Gazebo中物理建模的转动惯量、摩擦系数等参数设置不当导致小车乱飘,以及因为Classic版本在ROS2版本中停止维护导致的抓取插件/包不可用等);软件兼容性问题(如MoveIt可视化界面闪退等);虚拟机内存爆炸(如果选择使用虚拟机的话;顺带一提,课程使用虚拟机是可以完全上下来的,除了Webot那节课仿真跑得奇慢无比,不过没什么影响,因为项目中通常不会使用;建议给虚拟机分配50G以上内存);复现困难(当你想要录制最终展示视频的时候,小车总是跑得不如人意等)。虽然说上述问题最终可以解决,但是鉴于实际Project推进时长也就不过3周左右,在期末周遇到这许多问题往往会崩溃,然后对AI破口大骂

补充一下,本学期成绩构成为10%考勤(每节课传签到表签到),30%实验(实验报告),50%Project(最后一周汇报+18周周末交报告),10%综述论文(但是这一部分最终删去了,不知道移到哪里了)。Project的评分标准为基础部分70%(包括在 ROS2 系统中搭建移动底盘系统、在移动底盘上增加操作机械臂、在 gazebo 中搭建仿真环境、在仿真环境中使用自己搭建的系统完成自主移动导航/抓取任务);加分项目30%(包括将自己的移动操作机器人部署在课程提供的统一仿真环境中完成建图以及移动导航任务、增加人机交互系统等)。此外,基本要求是3人一组,如果最终是2人/1人1组,可分别获得10%/20%的加分,如果找不到好队友,同时对自己的实力有自信(或者愿意花时间),可以作为一个选择。

柯老师本人喜欢边讲课边和助教在教室里面帮大家debug,还是比较懂的,不过也不是所有bug都能解决;而且他人还是很好说话的,期末第一次出分后有人找老师要求调分,老师衡量之后整体网上调了一档。最终本人从A调到了A+,非常满意。


teacher avatar

柯文德

机械与能源工程系

教师主页

其他老师的「机器人操作系统」课

柯文德老师的其他课