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

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

课堂讨论

作业

ROS机器人程序设计部分大纲-适用于蓝桥云课及ROS1 KINETIC/MELODIC/NOETIC相关推荐

  1. 《ROS机器人程序设计》大纲节选和实验提示(ROS2)

    相关课程开设4轮以上,由ROS1KMN过渡到ROS2DFG. ROS机器人程序设计 ROS robot programming 课程编号 16300021 学分 3 开课学期 7 学时 讲课:32学时 ...

  2. ROS1/2 机器人编程实践汇总 kinetic/melodic/noetic foxy/galactic/humble

    适用于ROS2 foxy/galactic/humble: ROS2机器人实验报告提示01➡入梦⬅ ROS2机器人实验报告提示02➡沼泽⬅ ROS2机器人实验报告提示03➡迷雾⬅ ROS2机器人实验报 ...

  3. 蓝桥云课ROS机器人发布5年啦(原实验楼ROS机器人在线云实践课程)

    在2017年春开发了这款课程,到2022年春已经5年了,并在近期逐步在博客公开了课程的扩展功能.当然这些工作都在2019年之前完成测试工作,后续全力转入ROS2课程及其相关应用型课程中. 感谢易科机器 ...

  4. ROS机器人程序设计归档材料、大纲、基础turtlesim轨迹和导航测评题目

    ROS实践测试分为: 基础编程测评轨迹类-主要测评编程语言等掌握情况. 案例如: 导航类测评-主要考察导航功能包应用情况. 案例如: ROS1云课-导航实践测评_zhangrelay的博客-CSDN博 ...

  5. 如何利用蓝桥云课提升学习ROS机器人的效率

    合适再深入学习,不合适一个网页简单使用也能了解其中大部分功能,免除繁琐配置的时间成本. 如果学习和试用一下ROS机器人(ROS1为例)最方便的办法就是打开如下网页: 课程编号854,已经学习人数超过1 ...

  6. ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL

    ROS机器人程序设计(原书第2版)补充资料 (陆) 第六章 点云 PCL 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. RGBD深度摄像头 ...

  7. ROS机器人程序设计(原书第2版).

    机器人设计与制作系列 ROS机器人程序设计 (原书第2版) Learning ROS for Robotics Programming,Second Edition 恩里克·费尔南德斯(Enrique ...

  8. ROS机器人程序设计-课程形成性评价表-2021-2022-2

    电气与自动化工程学院 课程形成性评价表 课程名称 ROS机器人程序设计 专业 开课学期 2021-2022-2 班级 任课教师 评价日期 学生数 剩余教学周 大纲规定的考核方式开展情况(哪些已经开展, ...

  9. ROS机器人程序设计(原书第2版)补充资料 (零) 源代码、资料和印刷错误修订等 2017年02月22日更新

    ROS机器人程序设计(原书第2版)补充资料 (零) 源代码等 ROS官网 |易科 |虞坤林 |古月居 |ROSClub |创客智造 ROS机器人操作系统在线练习课程正在逐步完善中,目前以ROS官网中文 ...

最新文章

  1. PAT 1052. Linked List Sorting
  2. Prima Cartoonizer中文版
  3. 高手都不用dw_雅诗兰黛DW粉底液好用吗?雅诗兰黛DW粉底液如何辨别真假?
  4. 猜想:企业SaaS热火之后……
  5. Cisco C2960 升级IOS
  6. iOS--数据存储NSUserDefaults
  7. 用Zend Encoder加密PHP文件和PHP 优化配置
  8. Linux系统查看开放的端口、开启指定端口、关闭指定端口和查看及删除定时任务
  9. php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
  10. Ethernet帧结构
  11. [LeetCode]题解(python):062-Unique Paths
  12. greenplum 替代mysql_转:MySQL到Greenplum迁移分析
  13. 基于modelsim的十个Verilog入门试验程序(2)(JK触发器+环形计数器)—程序+测试代码+波形+结果分析
  14. SpringBoot中修改MySQL数据库建表方言
  15. 正则学习之一:在js中使用正则表达式
  16. Workbench网格分块分区划分 扫面、节点控制网格数的应用
  17. 七阶拉丁方阵_关于拉丁方阵教学的思考
  18. 手机突然黑屏是什么原因
  19. eclipse的启动失败提示“发生了错误,请参阅日志文件“
  20. 全球高分辨率(10m和30m)土地覆盖数据分享

热门文章

  1. 【数据结构之排序】-详解希尔排序
  2. 窗口变透明 背景变透明
  3. 零基础的人应该怎么自学java
  4. MACH SYSTEMS
  5. 告别程序员生涯,一点感慨与诸君共勉
  6. 小程序表格组件库wechat-table
  7. 【学习体会】泛函 欧拉-拉格朗日方程 两点之间直线最短
  8. android powermock,Android 单元测试 PowerMock框架的使用总结
  9. 项目实战---国税协同办公平台---day01
  10. 从老男孩们演的励志大片到如何写方案