这个课程是瑞士联邦理工学院(ETHZ)与蒙特利尔大学、芝加哥的丰田技术学院合作的成果,使用了大量Duckietown提供的智能硬件。
教学的基本内容是,探索数据驱动的理论和实践方法,使得汽车模型可以在城市环境中自动行驶,同时检测和避开行人。达成这个目标,需要掌握从基础数学到机器学习技能等各领域的专业知识。其中包括:计算机视觉,机器人操作,建模与控制,目标检测与避障等。
具体来说,该课程包含了机器人学习理论、相关算法,以及将它们用于实践的方式,这些方法完全可以用于现实生活。学员们使用ROS、Python、Docker这些编程软件,创建相应的编程模型。
同时,在课堂之外,老师将和学员一同探究各种机器人学习的方法,并分析它们在实践中的优缺点。
强化STEM学习方法
在STEM的工程教育领域,一直存在一个严重的缺陷,那就是不同的主题之间缺乏良好的沟通和联系。这个课程,就是运用Duckietown的教学资源,强化STEM学习。
课程分为两大部分。第一部分,是在基础主题领域基础上开展的课程,帮助学生们看到不同事物之间的联系,包含数学、编程、电学等内容。在学习基础理论的同时,Duckietown会为学生提供动手学习的机会,比如编写程序、提出解决方案等。
由于Duckietown小巧且灵活的特点,对编程和机器人一无所知的孩子也可以在很短的时间内上手。在“编程”主题中,学生们要学会独立启动ROS的基本单元,熟悉Duckietown的基本项目,并动手解决具体的机器人编程项目;在“计算机体系结构”主题中,学生们要练习在模拟器中独立设计算术逻辑电路。
课程的第二部分,是实践项目的介绍和训练,这其中要用到Duckietown的硬件和教具。学生们在设计自动驾驶的同时,理解其背后的理论数学和物理学,完成穿越城市的复杂挑战。
例如“小鸭出租车”项目的想法是,Duckiebots可以在某个物体附近停下来,然后按照一定路线继续前进。所以,该任务需要分为两部分:检测和沿图形移动。学生需要思考,如何让小车在未检测到Duckie的情况下驱动,以及如何根据地图和目的地建立路线。
还有学生自己发明的“巡逻车”,想法是教一个Duckiebot(即巡逻队),让它发现,跟踪并制止“入侵”的Duckiebots。具体方法是,使用标记器识别道路上的入侵者,根据标记器的方向和距离更改Patrol Duckiebots的状态机,使得机器人在接近停车线时继续行驶不停车,最终使用SSH连接并关闭它。