ROS机器人程序设计(原书第2版) 补充资料 教学大纲
针对该书稍后会补充教学大纲、教案、多媒体课件以及练习题等。
《ROS机器人程序设计》课程简介
课程编号:XXXXXX
课程名称:ROS机器人程序设计
学分/学时:3/48
开课学期:第 2学期
课程类型:专业选修
课程性质:选修
先修课程:Linux基础、单片机、C++、Python等
适用专业:自动化专业—机器人方向
课程性质:选修
考核方式:考查
考核形式:实验测试、平时成绩、专题研究报告
建议教材:ROS机器人程序设计(原书第2版),机械工业出版社,2016年11月
内容简介:(200字以内)
《ROS机器人程序设计》课程是自动化专业的一门主要专业选修课程,是自动化专业机器人方向一门重要的理论实践相结合的课程,为后续机器人方向课程的学习打好坚实的基础。课程内容包括:机器人系统主要构成;常见移动机器人设计方案;机器人操作系统(ROS);机器人系统编程语言;机器人系统控制算法C++与Python实现;传感器和执行器使用;机器人视觉理解和点云;机器人三维建模与仿真技术;机器人系统导航控制;机械臂运动控制等方面。通过该课程的学习可以让学生掌握并完成小型机器人系统的开发和编程工作,理解ROS的软件框架,同时在仿真环境中自动构建机器人相应的功能程序,编写机器人程序。
ROS机器人程序设计
课程编号:xxxxxx
学 分:3
学 时:48(其中:讲课学时:32 实验学时:16 上机学时:0)
开课学期:第 2 学期
课程类型:专业选修
课程性质:选修
先修课程:Linux基础、单片机、C++、Python等
适用专业:自动化专业—机器人方向
建议教材:ROS机器人程序设计(原书第2版),机械工业出版社,2016年11月
主要参考书:
(1)《嵌入式机器人学》,刘锦涛译,西安交通大学出版社,2012 年7月第1版。
(2) Learning ROS for Robotics Programming,Second Edition,PACKT Publishing,2015。
开课单位:电气与自动化工程学院
修订日期:2016年12月
《ROS机器人程序设计》课程是基于计算机(PC)和微控制器(MCU)技术,结合多种传感器和执行器,进行机器人系统设计、仿真和控制的理论实践相结合课程,是自动化专业机器人方向的一门重要专业选修课,是运用控制理论、人工智能、传感器技术等多种学科知识进行机器人系统设计的一门重要的课程(基于ROS框架),为进一步学习复杂机器人系统设计、控制和程序编写打好坚实的基础。
1. 掌握机器人系统主要构成和常用的设计方案;理解机器人设计的一般流程;掌握机器人操作系统(ROS)及相关编程方法;理解机器人系统控制算法实现过程,传感器和执行器工作方式,机器人三维仿真建模技术,机器人导航控制技术和机械臂控制技术;
2. 了解机器人方向重要资料来源及获取方法;
3. 针对一个模拟复杂工程问题(机器人系统),综合应用数学与自然科学等相关知识,对解决方案进行分析;(对应毕业要求1.5)
4. 针对一个模拟复杂工程问题(机器人系统),通过文献研究分析,以获得有效结论。(对应毕业要求2.3)
(一) 机器人系统基础
1.课程教学内容
(1) 机器人与控制器;
(2) 中央处理器;
(3) 传感器和执行器;
(4) 控制;
(5) 多任务处理;
(6) 通信。
2.课程的重点、难点
机器人系统主要构成,各子模块的功能作用及常用方法。
3.课程教学要求
掌握机器人系统基本概念,了解机器人系统发展现状及应用,掌握机器人系统各组成功能特点,了解主流的机器人产品。
(二) 移动机器人设计案例
1.课程教学内容
(1) 行驶机器人;
(2) 全向机器人;
(3) 平衡机器人;
(4) 步行机器人;
(5) 空中机器人;
(6) 水上和水下机器人;
(7) 机械手臂。
2.课程的重点、难点
掌握常见机器人设计的一般流程,了解多种不同类型结构机器人的设计方案,并能设计和改进简单的机器人。
3.课程教学要求:
掌握不同机器人设计的结构特点,功能模块,理解不同类型机器人的设计时需要考虑的因素,依据不同的需求和环境要求,能够掌握相应的设计流程。
(三) 机器人操作系统(ROS)基础
1.课程教学内容
(1) ROS简介;
(2) ROS安装和使用;
(3) ROS基本操作
(4) 调试以及数据可视化
2.课程的重点、难点
重点是ROS的基本操作;难点是ROS的调试。
3.课程教学要求
掌握Ubuntu和ROS的基本安装和使用,理解并熟练应用ROS的基本操作,熟悉ROS调试方法和数据可视化。
(四) 在ROS框架下进行机器人编程控制
1.课程教学内容
(1) 使用摇杆操作机器人
(2) 使用激光雷达
(3) 使用RGBD传感器构建3D环境
(4) 使用伺服电机
(5) 使用Arduino添加更多的传感器和执行机构
(6) GPS系统使用
(7) 视觉系统使用
(8) 点云
2.课程的重点、难点
重点是ROS中常用外设的使用方法,传感器数据采集处理,执行器的控制等。
3.课程教学要求
掌握常见的传感器和执行器的配置方法、理解传感器数据采集和处理,执行器控制的常用方法和步骤。
(五) 机器人系统三维仿真技术
1.课程教学内容
(1) 机器人3D模型建立;
(2) URDF文件;
(3) Xaxro建模;
(4) Gazebo仿真。
2.课程的重点、难点
重点是机器人3D模型的建立;难点是Gazebo仿真。
3.课程教学要求
掌握机器人3D模型的建立和Gazebo仿真。
(六) 移动机器人导航控制技术
1.课程教学内容
(1) ROS导航功能包集;
(2) 机器人坐标转换;
(3) 发布传感器信息和里程数据;
(4) 创建基础控制器;
(5) 使用ROS创建地图;
(6) 配置全局和局部代价地图
(7) 自适应蒙特卡罗定位
(8) 机器人避障
(9) 路径规划
2.课程的重点、难点
重点是移动机器人导航控制的原理及使用,难点是机器人坐标转换、地图创建、地图理解、蒙特卡洛定位、避障和路径规划等。
3.课程教学要求
掌握ROS系统机器人导航控制的使用,能够理解机器人坐标转换、地图创建、地图理解、蒙特卡洛定位、避障和路径规划等。
(七) 机械臂运动控制技术
1.课程教学内容
(1) 机械臂控制简介;
(2) MoveIt!体系结构;
(3) 在MoveIt!导入机械臂;
(4) 环境中运动规划;
(5) 抓取和放置任务。
2.课程的重点、难点
重点是Moveit!使用,难点是机械臂环境中运动规划和抓取放置任务。
3.课程教学要求
掌握MoveIt!的配置和使用方法,理解机械臂环境中运动规划和抓取放置任务。
机器人系统设计与控制技术根据教学计划规定的学时数,理论课32学时,实验16学时,具体学时分配如下表,供参考。
课程学时分配表
教学内容概要 |
学时 |
教学方式 |
对应 课程目标 |
||
讲课 |
实验 |
实践 |
|||
1 机器人系统基础 (1) 机器人与控制器; (2) 中央处理器; (3) 传感器和执行器; (4) 控制; (5) 多任务处理; (6) 通信。 |
4 |
|
|
讲授 |
|
2 移动机器人设计案例 (1) 行驶机器人; (2) 全向机器人; (3) 平衡机器人; (4) 步行机器人; (5) 空中机器人; (6) 水上和水下机器人; (7) 机械手臂。 |
4 |
|
|
讲授 |
|
3 机器人操作系统(ROS)基础 (1) ROS简介; (2) ROS安装和使用; (3) ROS基本操作 (4) 调试以及数据可视化 |
4 |
|
|
讲授 |
|
4 ROS安装使用和基本操作(1) (1) ROS安装和使用; (2) ROS基本操作 (3) 调试以及数据可视化 |
|
|
4 |
讲授 实践 |
|
5 在ROS框架下进行机器人编程控制 (1) 使用摇杆操作机器人 (2) 使用激光雷达 (3) 使用RGBD传感器构建3D环境 (4) 使用伺服电机 (5) 使用Arduino添加更多的传感器和执行机构 (6) GPS系统使用 (7) 视觉系统使用 (8) 点云 |
6 |
|
|
讲授、实验 |
|
6 ROS机器人编程实践(2) (1) 使用摇杆操作机器人 (2) 使用激光雷达 (3) 使用RGBD传感器构建3D环境 (4) 使用伺服电机 (5) 使用Arduino添加更多的传感器和执行机构 (6) GPS系统使用 (7) 视觉系统使用 (8) 点云 |
|
|
4 |
讲授实践 |
|
7 机器人系统三维仿真技术 (1) 机器人3D模型建立; (2) URDF文件; (3) Xaxro建模; (4) Gazebo仿真。 |
4 |
|
|
讲授 |
|
8 机器人系统三维仿真技术实践(3) (1) 机器人3D模型建立; (2) URDF文件; (3) Xaxro建模; (4) Gazebo仿真。 |
|
|
4 |
讲授 实践 |
|
9 移动机器人导航控制技术 (1) ROS导航功能包集; (2) 机器人坐标转换; (3) 发布传感器信息和里程数据; (4) 创建基础控制器; (5) 使用ROS创建地图; (6) 配置全局和局部代价地图 (7) 自适应蒙特卡罗定位 (8) 机器人避障 (9) 路径规划 |
6 |
|
|
讲授 |
|
10 移动机器人导航控制技术实践(4) (1) ROS导航功能包集; (2) 机器人坐标转换; (3) 发布传感器信息和里程数据; (4) 创建基础控制器; (5) 使用ROS创建地图; (6) 配置全局和局部代价地图 (7) 自适应蒙特卡罗定位 (8) 机器人避障 (9) 路径规划 |
|
|
4 |
讲授 实践 |
|
11 机械臂运动控制技术 (1) 机械臂控制简介; (2) MoveIt!体系结构; (3) 在MoveIt!导入机械臂; (4) 环境中运动规划; (5) 抓取和放置任务。 |
4 |
|
|
讲授 |
|
|
|
|
|
|
|
合计 |
32 |
|
16 |
|
|
1. 实践项目与内容
实践项目与内容一览表
序号 |
实验项目名称 |
内容提要 |
实践学时 |
每组人数 |
实验类型 |
实验类别 |
实验要求 |
1 |
ROS安装使用和基本操作 |
(1)ROS安装和使用; (2)ROS基本操作 (3)调试以及数据可视化 |
4 |
1 |
验证性 |
专业基础 |
必修 |
2 |
ROS机器人编程实践 |
(1)使用摇杆操作机器人 (2)使用激光雷达 (3)使用RGBD传感器构建3D环境 (4)使用伺服电机 (5)使用Arduino添加更多的传感器和执行机构 (6)GPS系统使用 (7)视觉系统使用 (8)点云 |
4 |
1 |
验证性 |
专业基础 |
必修 |
3 |
机器人系统三维仿真技术实践 |
(1) 机器人3D模型建立; (2) URDF文件; (3) Xaxro建模; (4) Gazebo仿真。 |
4 |
1 |
验证性 |
专业基础 |
必修 |
4 |
移动机器人导航控制技术实践 |
(1) ROS导航功能包集; (2) 机器人坐标转换; (3) 发布传感器信息和里程数据; (4) 创建基础控制器; (5) 使用ROS创建地图; (6) 配置全局和局部代价地图 (7) 自适应蒙特卡罗定位 (8) 机器人避障 (9) 路径规划 |
2 |
1 |
验证性 |
专业基础 |
必修 |
|
|
|
|
|
|
|
|
2. 实验考核方式
按照实践操作(60%)、实践报告(40%),以百分制计算每个实验项目成绩,单项实验成绩考核标准如下表所示,6个实验项目成绩的平均值作为本课程的实验成绩。
单项实验成绩考核标准
考核实验操作评分表 |
实验报告评分标准 |
||
操作表现 |
等级(分) |
报告内容 |
得分 |
在规定时间的2/3时间内完成,独立完成操作,设备、工具和元件整理到位,环境整洁。 |
A(90-100) |
1.报告主要内容(满分80分)
|
①图表遗漏1项,扣10分;表述有遗漏,扣10分; ②图表不规范,或字迹不清楚,扣10分; ③程序不简洁,扣5分; ④缺少程序清单,或缺少实验结果记录,经提示后补齐,扣10分; |
在规定时间内完成,最多经一次个别指导完成操作,设备、工具和元件整理到位,环境整洁 |
B(80-89) |
2. 思考分析(满分20分)
|
①无思考分析,扣20分; ②主要内容分析不到位,扣15分; ③主要内容分析正确,但不全面,扣10分; ④字迹潦草扣5分; |
在规定时间内完成,经多次个别指导完成操作,设备、工具和元件整理到位,环境整洁 |
C(70-79) |
实验报告合计得分 |
①报告主要内容项得分与思考分析项得分之和,为实验报告合计得分; ②无实验数据记录,或实验数据作假,实验报告合计得分为零分。 |
在规定时间内完成,经多次个别指导完成操作,设备、工具、元件和环境整理不到位 |
D(60-69) |
||
在规定时间内未完成操作 |
E(<60) |
1、本课程主要采用多媒体教学手段;
2、本课程采用大作业和实验考核形式,重点考查学生的运用知识的能力;
3、本课程使用的教材是机械工业出版社2016年出版,本书以机器人程序设计为主要内容,系统地介绍了机器人系统的结构原理、外设模块、示例程序和应用例程。
课程名称:ROS机器人程序设计 课程号:xxxxxx
考核方式:考查(大作业+实践测评)
本课程的学生成绩由平时成绩、实践成绩和大作业三部分组成,其中平时成绩占总成绩的30%,实验成绩占总成绩的40%,大作业占总成绩的30%。
平时成绩由平时作业和出勤综合评定,其中平时作业分别占平时成绩的80%,出勤占平时成绩的20%。
考核说明:《课程考核方案一览表》表达的对应关系,能够证明学生通过本课程考核成绩合格,即可达到课程目标的要求。
课程考核方案一览表
课程目标序号 |
考核内容 |
考核形式 |
考核原始材料 |
课程目标1 |
掌握机器人系统的硬件结构及工作原理,学会机器人系统软硬件分析和设计的基本方法,基本掌握机器人控制嵌入式开发技术 |
报告 |
大作业1 |
课程目标2 |
具有应用ROS进行系统设计技术分析和解决机器人工程设计、系统集成、制造开发等方面工程技术问题的基本能力 |
报告 |
大作业2 |
课程目标3 |
具备自主学习机器人系统的能力和终身学习的能力,具有不断探索、与时俱进、跟踪ROS技术的能力 |
报告 |
大作业3 |
课程目标4 |
通过小组完成实验项目,培养较好的组织管理能力、较强的交流沟通、人际交往能力和团队合作的能力 |
实验 |
实验报告 |
制定人: 审定人: 批准人: