ROS机器人程序设计

ROS robot programming


课程编号



16300021



学分



3



开课学期



6



学时



讲课:32学时      实验:16 学时       实践:0学时



课程类型



专业选修课程



课程性质



限选



考核形式



考查



先修课程



《单片机技术理论与实验》、《电力拖动与运动控制》、《电力电子技术》、《大学物理》、《机械基础》



适用专业



机器人工程/智能制造



开课学院



电气与机器人化工程学院



建议教材




  1. ROS机器人高效编程(第三版)


主要参考书



(1)蓝桥云课: ROS机器人操作系统初级教程



修订时期



2020年9月



版本



2020版


一、课程说明

本课程包含实际动手操作的示例,帮助学生快速入门开发机器人程序,并提供使用开源ROS1[KINETIC/MELODIC/NOETIC]库和工具的完整解决方案。本课程还介绍如何使用虚拟机和Docker容器来简化Ubuntu和ROS1[KINETIC/MELODIC/NOETIC]框架的安装,可以在隔离和可控的环境中开始工作,而无须更改常规的计算机设置。本课程首先介绍ROS1[KINETIC/MELODIC/NOETIC]的安装和基本概念,然后讲述ROS1[KINETIC/MELODIC/NOETIC]支持的更复杂的模块,如传感器和执行器集成模块(驱动程序)、导航和地图构建模块(创建自主移动机器人)、操作模块、计算机视觉模块、3D感知模块等。完成本课程后,将能够使用ROS1[KINETIC/MELODIC/NOETIC]的全部功能来设计和开发一个满足个性需求的功能齐全的机器人。

二、课程目标

1.了解机器人操作系统编程设计的基本方法。(对应毕业要求5.1能够应用专业知识对机器人工程问题进行软硬件分析与设计。

2. 能够使用机器人操作系统各组件进行系统集成设计。(对应毕业要求5.2:理解现代工程工具的特点,能够选择恰当的工具将其应用于元件选型、模块设计和系统集成等工程实践关键环节。

3. 能够使用机器人操作系统如Gazebo进行相应项目开发和设计。(对应毕业要求5.3:能够运用适当的现代工程工具进行仿真,用于复杂工程问题的模拟与预测,并能够理解其局限性。

4. 了解机器人操作系统发展动态和最新进展(对应毕业要求10.3:了解国际本行业发展动态,关注本专业国际热点问题。

三、教学内容及基本要求

  • 机器人操作系统知识和入门

   1.课程教学内容

机器人操作系统安装、虚拟机、Docker、嵌入式系统,本课程的内容、性质与任务。

   2.课程重点、难点

     机器人操作系统安装、虚拟机、Docker、嵌入式系统。

3.课程教学要求

了解本课程的性质、任务、内容和学习方法。了解ROS1[KINETIC/MELODIC/NOETIC]的基本构成、类型及主要参数,掌握ROS1[KINETIC/MELODIC/NOETIC]开发环境、程序设计基础。

  • ROS1[KINETIC/MELODIC/NOETIC]架构及概念

   1.课程教学内容

机器人操作系统文件系统级、计算图级、社区级、创建功能包并实现功能等

   2.课程重点、难点

   机器人操作系统的核心概念和具体使用方法。

   3.课程教学要求

了解机器人操作系统内涵,熟悉机器人操作系统功能并能够编写对应功能的函数语句。

  • 可视化和调试工具

  1.课程教学内容

调试ROS1[KINETIC/MELODIC/NOETIC]节点、日志消息、检测系统状态、设置动态参数、roswtf、可视化节点诊断、绘制标量数据图、图像可视化、3D可视化、保存与回放数据、插件

   2.课程重点、难点

    机器人操作系统的调试工具和各种可视化方法

   3.课程教学要求

     通过ROS1[KINETIC/MELODIC/NOETIC]可视化和调试工具学习,掌握其使用方法和编程方法。

  • 3D建模与仿真

  1.课程教学内容

自定义机器人3D模型,创建一个URDF文件、xacro文件、ROS1[KINETIC/MELODIC/NOETIC]仿真。

   2.课程重点、难点

机器人三维模型的构建。

   3.课程教学要求

   通过仿真模型搭建熟悉各模块连接方法和运行程序编写方法。

  • 导航功能

   1.课程教学内容

创建变换、发布传感器消息、里程数据信息、创建基础控制器、创建地图,机器人配置、全局和局部代价地图、rviz详细配置、自适应蒙特卡洛定位,避障,目标发送。

   2.课程重点、难点

正确运用相关导航功能包进行机器人控制。

   3.课程教学要求

   了解导航功能包的工作原理;通过软件编程,掌握机器人的控制方法和控制程序编写方法。

  • 使用MoveIt

  1.课程教学内容

机械臂、体系结构、简单运动规划、抓取放置任务。

   2.课程重点、难点

正确连接机械臂编写运行程序。

   3.课程教学要求

   了解机械臂的控制方法和控制程序编写方法。

  • ROS1[KINETIC/MELODIC/NOETIC]外设

  1.课程教学内容

使用游戏手柄、使用RGBD传感器,ROS1[KINETIC/MELODIC/NOETIC]摄像头驱动、ROS1[KINETIC/MELODIC/NOETIC]与OpenCV库、标定摄像头、视觉里程计,点云库、可视化点云、滤波和缩减采样、配准与匹配、点云分区。

   2.课程重点、难点

正确外设编写运行程序。

   3.课程教学要求

   了解ROS1[KINETIC/MELODIC/NOETIC]外设的控制方法和相关程序编写方法。

四、课程学时分配

ROS1[KINETIC/MELODIC/NOETIC]机器人程序设计根据教学计划规定的学时数,理论课20学时,实验12学时,具体学时分配如下表,供参考。


教学内容概要



学时



教学方式



对应

课程目标



讲课



实践



实验



1 ROS1[KINETIC/MELODIC/NOETIC]入门

机器人操作系统安装、虚拟机、Docker、嵌入式系统



4






2



讲授

实验






2 ROS1[KINETIC/MELODIC/NOETIC]架构及概念

机器人操作系统文件系统级、计算图级、社区级、创建功能包并实现功能等



4






2



讲授

实验






3 可视化和调试工具

调试ROS1[KINETIC/MELODIC/NOETIC]节点、日志消息、检测系统状态、设置动态参数、roswtf、可视化节点诊断、绘制标量数据图、图像可视化、3D可视化、保存与回放数据、插件



4






2



讲授

实验






4 3D建模与仿真

自定义机器人3D模型,创建一个URDF文件、xacro文件、ROS1[KINETIC/MELODIC/NOETIC]仿真



4






2



讲授

实验






5 导航功能

创建变换、发布传感器消息、里程数据信息、创建基础控制器、创建地图,机器人配置、全局和局部代价地图、rviz详细配置、自适应蒙特卡洛定位,避障,目标发送



6






4



讲授

实验






6 使用MoveIt!

机械臂、体系结构、简单运动规划、抓取放置任务



4






2



讲授

实验






7 ROS1[KINETIC/MELODIC/NOETIC]外设

使用游戏手柄、使用RGBD传感器,ROS1[KINETIC/MELODIC/NOETIC]摄像头驱动、ROS1[KINETIC/MELODIC/NOETIC]与OpenCV库、标定摄像头、视觉里程计,点云库、可视化点云、滤波和缩减采样、配准与匹配、点云分区。



6






2



讲授

实验






合    计



32






16








五、其他教学环节

1. 实验项目与内容

                        实验项目与内容一览表


序号



实验项目名称



内容提要



实验学时



每组人数



实验类型



实验类别



实验要求



1



实验一、ROS1[KINETIC/MELODIC/NOETIC]入门



机器人操作系统安装、虚拟机、Docker、嵌入式系统



2



2



验证性



专业基础



必修



2



实验二、ROS1[KINETIC/MELODIC/NOETIC]架构及概念



机器人操作系统文件系统级、计算图级、社区级、创建功能包并实现功能等



2



2



验证性



专业基础



必修



3



实验三、可视化和调试工具



调试ROS1[KINETIC/MELODIC/NOETIC]节点、日志消息、检测系统状态、设置动态参数、roswtf、可视化节点诊断、绘制标量数据图、图像可视化、3D可视化、保存与回放数据、插件



2



2



验证性



专业基础



必修



4



实验四、3D建模与仿真



自定义机器人3D模型,创建一个URDF文件、xacro文件、ROS1[KINETIC/MELODIC/NOETIC]仿真



2



2



验证性



专业基础



必修



5



实验五、导航功能



创建变换、发布传感器消息、里程数据信息、创建基础控制器、创建地图,机器人配置、全局和局部代价地图、rviz详细配置、自适应蒙特卡洛定位,避障,目标发送



4



2



验证型



专业



必修



6



实验六、使用MoveIt!



机械臂、体系结构、简单运动规划、抓取放置任务



2



2



验证型



专业



必修



7



实验七、ROS1[KINETIC/MELODIC/NOETIC]外设



使用游戏手柄、使用RGBD传感器,ROS1[KINETIC/MELODIC/NOETIC]摄像头驱动、ROS1[KINETIC/MELODIC/NOETIC]与OpenCV库、标定摄像头、视觉里程计,点云库、可视化点云、滤波和缩减采样、配准与匹配、点云分区



2



2



验证型



专业



必修


2.说明

本课程实验是理论教学的辅助内容,本课程实验具有较强的实验性,是加强课程教学的必要环节。本课程实验的目的是让学生认识机器人相关硬件模块的基本原理、性能指标、控制方法以及基于ROS1[KINETIC/MELODIC/NOETIC]如何编程实现对其控制;提高学生分析、设计和操作的能力;培养实事求是、严谨的科学作风和良好的实验习惯,为从事机器人系统的分析设计及集成开发奠定基础。实验基本要求为:

(1)通过实验加深对智能机器人系统的基本概念、分析设计和控制方法的理解和掌握,提高综合运用所学知识解决问题的能力。

(2)掌握ROS1[KINETIC/MELODIC/NOETIC]编程环境和编程方法,能够对机器人传感器模块、运动模块、无线模块进行控制。

(3)能够综合运用所学知识设计机器人系统的控制器,结合相关模块和设备设计有一定功能的机器人。

六、教学管理

1.《ROS机器人程序设计》课程以项目化教学方式开展,项目难度由简到繁,将理论教学与实践教学相融合,边讲边做,边做边学。

2. 在本课程前学生须先修完《信号与系统分析》、《单片机技术理论与实践》、《电力拖动与运动控制》、《电力电子技术》等课程,掌握C语言编程能力和硬件电路设计方法,为《ROS机器人程序设计》课程的开展奠定基础。《ROS机器人程序设计》课程是将课堂教学与模拟工程项目实践结合的综合性应用课程,通过本课程的学习使学生掌握ROS1[KINETIC/MELODIC/NOETIC]机器人控制器的基本技术技能和工程应用,为后续的《机器人综合创新课程》以及未来职业发展打下良好基础。

3. 建议使用蓝桥云课,课程结构合理,突出了基础性、先进性和易读性。内容叙述力求深入浅出、层次分明。

七、考核方法

课程名称:ROS机器人程序设计        课程号:16300182

考核方式:考查

考核形式:平时成绩10%、实验成绩30%、期中考试10%、期末考查50%

1、考核说明

本课程的学生成绩由平时成绩、实验成绩、期中考试、期末考查成绩四部分组成,其中平时成绩占总成绩的10%,实验成绩占总成绩的30%、期中10%、期末考查成绩占总成绩的50%。具体考核环节和考核比例见下表。


考核环节



平时+期中(20%)



实验成绩

(30%)



期末考核

(50%)



合计



平时测评



期中



考核比例



10%



10%



30%



50%



100%


实验项目(实际操作和实验报告)成绩考核标准


考核实验操作评分表



实验报告评分标准



操作表现



等级(分)



报告内容



得分



在规定时间的2/3时间内完成,独立完成操作,设备、工具和组件等ROS相关使用合理规范,环境整洁。



A(90-100)



1.报告主要内容(满分90分)





(1)实验目的和要求(10分):遗漏1个实验目的和要求扣5分。

(2)实验器材(5分):按撰写完备情况给分,若此项空缺按零分计算。

(3)实验原理和方法(25分):

①实验原理和方法描述完整,无错误与遗漏之处。(25分)

②实验原理和方法描述基本完整、正确,存在个别遗漏之处或错误的地方。(20-24分)

③实验原理和方法描述较为完整、正确,存在少数遗漏之处或错误的地方。(15-19分)

④实验原理和方法描述不完整、正确,存在较多遗漏之处或错误的地方。(<15分)

(4)实验数据和结果(50分)

①实验数据和结果介绍完整,分析到位,无错误与遗漏之处。(50分)

②实验数据和结果介绍基本完整、正确,分析较为到位,存在个别遗漏之处或错误的地方。(40-49分)

③实验数据和结果分析较为完整、正确,分析较为到位,存在少数遗漏之处或错误的地方。(25-39分)

④实验数据和结果分析不完整、正确,分析不到位,存在较多遗漏之处或错误的地方。(<25分)



在规定时间内完成,最多经一次个别指导完成操作,设备、工具和组件等ROS相关使用基本合理规范,环境整洁。



B(80-89)



2. 思考分析(满分10分)




①无思考分析题或实验心得体会,扣10分;

②主要内容分析不到位,扣5分;

③主要内容分析正确,但不全面,扣5分;

④字迹潦草扣5分;



在规定时间内完成,经多次个别指导完成操作,设备、工具和组件等ROS相关使用基本合理规范,环境整洁。



C(70-79)



实验报告合计得分



①报告主要内容项得分与思考分析项得分之和,为实验报告合计得分;

②无实验数据记录,或实验数据作假,实验报告合计得分为零分。



在规定时间内完成,经多次个别指导完成操作,设备、工具、元件和环境整理不到位。



D(60-69)



在规定时间内未完成操作。



E(<60)


考核说明:《课程考核方案一览表》表达的对应关系,能够证明学生通过本课程考核成绩合格,即可达到课程目标的要求。

2、课程目标考核方案一览表

考核说明:《课程目标考核方案一览表》表达的对应关系,能够证明学生通过本课程考核成绩合格,即可达到课程目标的要求。

课程目标考核方案一览表


课程支撑的毕业要求序号



课程目标序号



考核内容



考核形式



考核原始材料(说明:试卷、作业、实验报告、技术报告、过程记录、实习总结等,纸质或电子)



5.1



课程目标1



了解机器人操作系统编程设计的基本方法



课堂任务



作业



5.2



课程目标2



能够使用机器人操作系统各组件进行系统集成设计。



实验+试卷



实验报告+试卷



5.3



课程目标3



能够使用机器人操作系统进行相应项目开发和设计



实验+试卷



实验报告+试卷



10.3



课程目标4



了解机器人操作系统发展动态和最新进展



课堂讨论



作业