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相关使用合理规范,环境整洁。

A90-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相关使用基本合理规范,环境整洁。

B80-89

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

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

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

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

④字迹潦草扣5分;

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

C70-79

实验报告合计得分

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

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

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

D60-69

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

E(<60

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

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

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

课程目标考核方案一览表

课程支撑的毕业要求序号

课程目标序号

考核内容

考核形式

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

5.1

课程目标1

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

课堂任务

作业

5.2

课程目标2

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

实验+试卷

实验报告+试卷

5.3

课程目标3

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

实验+试卷

实验报告+试卷

10.3

课程目标4

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

课堂讨论

作业

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐