日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

大学机器人类公选课(ROS机器人高效编程)申请表、大纲、部分教案、进度表等材料分享

發布時間:2023/12/10 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大学机器人类公选课(ROS机器人高效编程)申请表、大纲、部分教案、进度表等材料分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.







課程采用理論講授和云端實踐相結合的方式進行,具體如下:

網頁版系統演示(課程網址:https://www.shiyanlou.com/courses/854):


手機端直接觀看:



----申請表----

xxxxxx新開公共選修課申請表

教學單位

(填負責審核的單位)

xxxx學院

課程名稱

? ? ? ? ? ?ROS機器人高效

編程

總學時

30

學分

2學分

課程編號

?

課程類型

□人文社科類?? □藝術類?? √科學技術類?? □經濟管理類??? □創新創業類

選課對象

全校本科生

先修課程要求

教材或參考書

《ROS機器人高效編程》(原書第3版) 機械工業出版社 2017

課程簡介(不少于300字):

?

本課程包含實際動手操作的示例,幫助學生快速入門開發機器人程序,并提供使用開源ROS庫和工具的完整解決方案。本課程還介紹如何使用虛擬機和Docker容器來簡化Ubuntu和ROS框架的安裝,可以在隔離和可控的環境中開始工作,而無須更改常規的計算機設置。

本課程首先介紹ROS的安裝和基本概念,然后講述ROS支持的更復雜的模塊,如傳感器和執行器集成模塊(驅動程序)、導航和地圖構建模塊(創建自主移動機器人)、操作模塊、計算機視覺模塊、3D感知模塊等。完成本課程后,將能夠使用ROS Kinetic的全部功能來設計和開發一個滿足個性需求的功能齊全的機器人。

課程內容包括:

1.?? ROS的概念、命令行工具、可視化GUI以及如何調試ROS

2.?? 如何將機器人傳感器和執行器連接到ROS

3.?? 如何從攝像頭和3D傳感器獲取數據并分析數據

4.?? 如何在機器人/傳感器和環境仿真中使用Gazebo

5.?? 如何設計機器人和如何使其構建環境地圖、自主導航,以及在環境中使用MoveIt!操作物體

6.?? 如何使用OpenCV 3.0為機器人添加視覺功能

7.?? 如何使用最新版本的PCL向機器人添加3D感知功能

?

課程團隊教師基本情況(可增加行)

任課

教師1

姓名


專業技術職務


學歷/學位


高校教齡

14

是否具有教師資格證

系統獨立講授過的課程名稱

電路、模擬電子技術、現代檢測技術、電氣與電子CAD,機器人概論

任課

教師2

姓名


專業技術職務


學歷/學位


高校教齡

10

是否具有教師資格證

系統獨立講授過的課程名稱

電子電子學

電路分析基礎

控制器編程基礎

任課

教師3

姓名


專業技術職務


學歷/學位


高校教齡

2

是否具有教師資格證

系統獨立講授過的課程名稱

機器人系統設計與控制技術、單片機技術理論與實踐、現代控制理論、計算機控制技術、專業工具軟件及應用

任課

教師4

姓名


專業技術職務


學歷/學位


高校教齡

2

是否具有教師資格證

系統獨立講授過的課程名稱

數字電子技術

單片機原理及應用

DSP原理及應用

數字信號處理

微機原理及接口技術

課程團隊教師教學簡要情況:

?

課程團隊成員多年從事機器人方向教學與研究工作,于2016年獲批《機器人與人工智能》優質公選課建設項目,包含《機器人概論》、《機器人創新實踐與競賽》、《智能科學發展史》、《ROS機器人編程基礎與實踐》、《人機交互技術賞踐》、《圖像處理與機器視覺技術賞踐》等課程,目前畢博網絡課程已經初步建設并開始使用。

?

?

?

申請人所在單位推薦意見

推薦意見:

??????????

?

?

?????????????????????????

?

(單位蓋章)??????????? 負責人簽字:????????????? 年??? 月??? 日

?

課程學科所在單位審核意見

審核意見:

??????????

?

?

?

?????????????????????????

?

(單位蓋章)? ??????????負責人簽字:????????????? 年??? 月??? 日

?

注:

1.選課對象:請明確描述選課學生類型,比如全校本科生、除xx專業學生。

2.新開課程除提交本表外,還需另附課程教學大綱、教案(部分章節)、教學進度表及參考資料目錄。

3.若申請人所在單位與課程學科所在單位一致,只需在“課程學科所在單位審核情況”欄下填寫審核意見。

4.如申請課程為開放性實驗,請在課程名稱后備注。例:**課程(開放性實驗)。

5.創新創業類公共選修課需到經濟與管理學院審核。

6.此表分別在申請人所在單位和課程學科所在單位留存1份,存檔備查。


----公共選修課教學大綱----

?

《ROS機器人高效編程》

課程編號:

學??? 分:2

學??? 時:30(其中:講課學時:30????? 實驗學時:0?????? 上機學時:0??? )

選課對象:全校本科生

先修課程要求:無

建議教材:《ROS機器人高效編程》(原書第3版) 機械工業出版社 2017

開課單位:電氣與自動化工程學院

?

一、課程的教學目的

?

本課程包含實際動手操作的示例,幫助學生快速入門開發機器人程序,并提供使用開源ROS庫和工具的完整解決方案。本課程還介紹如何使用虛擬機和Docker容器來簡化Ubuntu和ROS框架的安裝,可以在隔離和可控的環境中開始工作,而無須更改常規的計算機設置。

本課程首先介紹ROS的安裝和基本概念,然后講述ROS支持的更復雜的模塊,如傳感器和執行器集成模塊(驅動程序)、導航和地圖構建模塊(創建自主移動機器人)、操作模塊、計算機視覺模塊、3D感知模塊等。完成本課程后,將能夠使用ROS Kinetic的全部功能來設計和開發一個滿足個性需求的功能齊全的機器人。

課程內容包括:

1.??? ROS的概念、命令行工具、可視化GUI以及如何調試ROS

2.??? 如何將機器人傳感器和執行器連接到ROS

3.??? 如何從攝像頭和3D傳感器獲取數據并分析數據

4.??? 如何在機器人/傳感器和環境仿真中使用Gazebo

5.??? 如何設計機器人和如何使其構建環境地圖、自主導航,以及在環境中使用MoveIt!操作物體

6.??? 如何使用OpenCV 3.0為機器人添加視覺功能

7.??? 如何使用最新版本的PCL向機器人添加3D感知功能

?

二、課程的主要內容及學時分配

?

章節名稱

主要內容

學時

第1章 ROS入門

機器人操作系統安裝、虛擬機、Docker、嵌入式系統

2

第2章 ROS架構及概念

機器人操作系統文件系統級、計算圖級、社區級、創建功能包并實現功能等

4

第3章 可視化和調試工具

調試ROS節點、日志消息、檢測系統狀態、設置動態參數、roswtf、可視化節點診斷、繪制標量數據圖、圖像可視化、3D可視化、保存與回放數據、插件

4

第4章 3D建模與仿真

自定義機器人3D模型,創建一個URDF文件、xacro文件、ROS仿真

4

第5章 導航功能包入門

創建變換、發布傳感器消息、里程數據信息、創建基礎控制器、創建地圖

4

第6章 導航功能包進階

機器人配置、全局和局部代價地圖、rviz詳細配置、自適應蒙特卡洛定位,避障,目標發送

4

第7章 使用MoveIt!

機械臂、體系結構、簡單運動規劃、抓取放置任務

2

第8章 在ROS下使用傳感器

使用游戲手柄、使用RGBD傳感器

4

第9章 計算機視覺

ROS攝像頭驅動、ROS與OpenCV庫、標定攝像頭、視覺里程計

2

第10章 點云

點云庫、可視化點云、濾波和縮減采樣、配準與匹配、點云分區

2

?

三、教學方法及手段

1、本課程主要采用多媒體教學手段與虛擬實驗室實踐結合;

2、本課程采用大作業和實踐考核形式,重點考查學生機器人相關知識的運用能力;

3、本課程使用的教材是機械工業出版社2017年出版,本書以機器人控制為主要內容,系統地介紹了機器人系統的結構原理、外設模塊、示例程序和應用例程,同時配套有非常詳細的網絡資源和在線云系統實驗平臺。

?

四、課程考核辦法

考核方式:考查(大作業+實踐測評)

本課程的學生成績由平時成績實踐成績大作業三部分組成,其中平時成績占總成績的20%,實踐成績占總成績的40%,大作業占總成績的40%。

平時成績由平時作業和出勤綜合評定,其中平時作業分別占平時成績的80%,出勤占平時成績的20%。

?

?

?

五、參考書目

1 張建偉, 張立偉, 胡穎,等. 開源機器人操作系統----ROS[M]. 科學出版社, 2012.

2 馬丁內斯, 費爾南德斯劉品杰. ROS機器人程序設計: Learning ROS forrobotics programming[M]. 機械工業出版社, 2014.

3Quigley M, Conley K, Gerkey B P, et al. ROS: an open-source Robot OperatingSystem[C]// ICRA Workshop on Open Source Software. 2009.

4 王之元, 周云, 易曉東,等. 機器人操作系統研究型課程建設[J]. 計算機教育, 2016,No.253(1):77-80.

5 肖軍浩, 盧惠民, 薛小波,等. 將機器人操作系統(ROS)引入本科實踐教學[J]. 科技創新導報,2016(22):157-158.

6 R.帕特里克?戈貝爾, 戈貝爾, 羅哈斯. ROS入門實例[M]. 中山大學出版社, 2016.

7 R.帕特里克?戈貝爾, 戈貝爾, 羅哈斯. ROS進階實例[M]. 中山大學出版社, 2017.

8 李振偉. ROS入門與實戰[M]. 中國礦業大學出版社, 2016.

9 恩里克·費爾南德斯等著,張瑞雷、劉錦濤譯 ROS機器人程序設計(原書第2版)[M] 機械工業出版社 2016

10 杰森 M. 奧凱恩著 ; 肖軍浩譯 機器人操作系統淺析[M] 國防工業出版社 2016

11周興社機器人操作系統ROS原理與應用[M] 機械工業出版社 2017

12郎坦·約瑟夫(Lentin Joseph)機器人系統設計與制作:Python語言實現[M] 機械工業出版社 2017

13何炳蔚,張立偉,張建偉 基于ROS的機器人理論與應用[M] 科學出版社 2017

14陳金寶 ROS開源機器人控制基礎[M] 上海交通大學出版社 2016

15 盧惠民,肖軍浩,鄭志強 ROS與中型組足球機器人[M] 國防工業出版社 2016

16Wyatt Newman A Systematic Approach to Learning Robot Programming with ROS[M]Chapman and Hall/CRC 2017

17Lentin Joseph ROS Robotics Projects[M] Packt Publishing 2017

18 AnilMahtani, Aaron Martinez, Enrique Fernandez Perdomo, Luis Sánchez EffectiveRobotics Programming with ROS - Third Edition[M] Packt Publishing 2016

19Fairchild, Carol and Harman, Dr. Thomas ROS Robotics By Example[M] PacktPublishing 2016

20Quigley, Morgan and Gerkey, Brian and Smart, William D. Programming Robots withROS[M] O'Reilly Media 2015

21Lentin Joseph Learning Robotics using Python[M] Packt Publishing 2015

22Koubaa A. Robot Operating System (ROS) The Complete Reference (Volume 1) [M].Springer International Publishing, 2016.

23Koubaa A. Robot Operating System (ROS) The Complete Reference (Volume 2) [M].Springer International Publishing, 2017.

?

?

制定人: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?制定日期: ?2017年10月

?


----公共選修課教案----

?

ROS機器人高效編程課程教案

基本介紹

學??? 分:2

學??? 時:30(其中:講課學時:30????? 實驗學時:0?????? 上機學時:0??? )

選課對象:全校本科生

先修課程要求:無

建議教材:《ROS機器人高效編程》(原書第3版) 張瑞雷、劉錦濤 機械工業出版社 2017

?

?

課程的教學目的

本課程包含實際動手操作的示例,幫助學生快速入門開發機器人程序,并提供使用開源ROS庫和工具的完整解決方案。本課程還介紹如何使用虛擬機和Docker容器來簡化Ubuntu和ROS框架的安裝,可以在隔離和可控的環境中開始工作,而無須更改常規的計算機設置。

本課程首先介紹ROS的安裝和基本概念,然后講述ROS支持的更復雜的模塊,如傳感器和執行器集成模塊(驅動程序)、導航和地圖構建模塊(創建自主移動機器人)、操作模塊、計算機視覺模塊、3D感知模塊等。完成本課程后,將能夠使用ROS Kinetic的全部功能來設計和開發一個滿足個性需求的功能齊全的機器人。

課程內容包括:

1.??? ROS的概念、命令行工具、可視化GUI以及如何調試ROS

2.??? 如何將機器人傳感器和執行器連接到ROS

3.??? 如何從攝像頭和3D傳感器獲取數據并分析數據

4.??? 如何在機器人/傳感器和環境仿真中使用Gazebo

5.??? 如何設計機器人和如何使其構建環境地圖、自主導航,以及在環境中使用MoveIt!操作物體

6.??? 如何使用OpenCV 3.0為機器人添加視覺功能

7.??? 如何使用最新版本的PCL向機器人添加3D感知功能

?

?

?

課程的主要內容及學時分配

章節名稱

主要內容

學時

第1章 ROS入門

機器人操作系統安裝、虛擬機、Docker、嵌入式系統

2

第2章 ROS架構及概念

機器人操作系統文件系統級、計算圖級、社區級、創建功能包并實現功能等

4

第3章 可視化和調試工具

調試ROS節點、日志消息、檢測系統狀態、設置動態參數、roswtf、可視化節點診斷、繪制標量數據圖、圖像可視化、3D可視化、保存與回放數據、插件

4

第4章 3D建模與仿真

自定義機器人3D模型,創建一個URDF文件、xacro文件、ROS仿真

4

第5章 導航功能包入門

創建變換、發布傳感器消息、里程數據信息、創建基礎控制器、創建地圖

4

第6章 導航功能包進階

機器人配置、全局和局部代價地圖、rviz詳細配置、自適應蒙特卡洛定位,避障,目標發送

4

第7章 使用MoveIt!

機械臂、體系結構、簡單運動規劃、抓取放置任務

2

第8章 在ROS下使用傳感器

使用游戲手柄、使用RGBD傳感器

4

第9章 計算機視覺

ROS攝像頭驅動、ROS與OpenCV庫、標定攝像頭、視覺里程計

2

第10章 點云

點云庫、可視化點云、濾波和縮減采樣、配準與匹配、點云分區

2

?

教學方法及手段

1、本課程主要采用多媒體教學手段與虛擬實驗室實踐結合;

2、本課程采用大作業和實踐考核形式,重點考查學生機器人相關知識的運用能力;

3、本課程使用的教材是機械工業出版社2017年出版,本書以機器人控制為主要內容,系統地介紹了機器人系統的結構原理、外設模塊、示例程序和應用例程,同時配套有非常詳細的網絡資源和在線云系統實驗平臺。

?

?

課程考核辦法

考核方式:考查(大作業+實踐測評)

本課程的學生成績由平時成績實踐成績大作業三部分組成,其中平時成績占總成績的20%,實踐成績占總成績的40%,大作業占總成績的40%。

平時成績由平時作業和出勤綜合評定,其中平時作業分別占平時成績的80%,出勤占平時成績的20%。

?


第一講

章節名稱

ROS入門

課程內容

機器人操作系統安裝、虛擬機、Docker、嵌入式系統

授課學時

2

教學目標與要求

掌握ROS在操作系統上的安裝與配置

難點與重點

機器人操作系統安裝與環境配置

教學手段

1 課堂多媒體,啟發式教學

2 云端實驗室環境

課時分配

機器人操作系統安裝 50分鐘、虛擬機15分鐘、Docker 15分鐘、嵌入式系統20分鐘

教學內容

安裝并配置ROS環境

簡介: 本教程詳細描述了ROS的安裝與環境配置。

1 安裝ROS

在開始學習這些教程之前請先按照ROS安裝說明完成安裝,在線環境中實驗樓已安裝了ROS。

如需本地安裝,請參考安裝文檔。

注意: 如果你是使用類似apt這樣的軟件管理器來安裝ROS的,那么安裝后這些軟件包將不具備寫入權限,當前系統用戶比如你自己也無法對這些軟件包進行修改編輯。當你的開發涉及到ROS軟件包源碼層面的操作或者在創建一個新的ROS軟件包時,你應該是在一個具備讀寫權限的目錄下工作,就像在你當前系統用戶的home目錄下一樣。

2 管理環境

在安裝ROS期間,你會看到提示說需要 source 多個 setup.*sh 文件中的某一個,或者甚至提示添加這條source命令到你的啟動腳本里面。這些操作是必須的,因為ROS是依賴于某種組合空間的概念,而這種概念就是通過配置腳本環境來實現的。這可以讓針對不同版本或者不同軟件包集的開發更加容易。

如需深入了解,請參考環境變量。

如果你在查找和使用ROS軟件包方面遇到了問題,請確保你已經正確配置了腳本環境。一個檢查的好方法是確保你已經設置了像ROS_ROOT和ROS_PACKAGE_PATH這樣的環境變量,可以通過以下命令查看:

$ export | grep ROS

或者

$ printenv | grep ROS

如果發現沒有配置,那這個時候你就需要source某些setup.*sh文件了。

ROS會幫你自動生成這些setup.*sh文件,通過以下方式生成并保存在不同地方。

通過類似apt的軟件包管理器安裝ROS軟件包時會生成setup.*sh文件。

在rosbuild workspaces中通過類似rosws的工具生成。

在編譯 或 安裝 catkin 軟件包時自動生成。

注意: 在所有教程中你將會經常看到分別針對rosbuild 和 catkin的不同操作說明,這是因為目前有兩種不同的方法可以用來組織和編譯ROS應用程序。一般而言,rosbuild比較簡單也易于使用,而catkin使用了更加標準的CMake規則,所以比較復雜,但是也更加靈活,特別是對于那些想整合外部現有代碼或者想發布自己代碼的人。關于這些如果你想了解得更全面請參閱catkin或者rosbuild。

如果你是通過 ubuntu 上的 apt 工具來安裝 ROS 的,那么你將會在/opt/ros/<distro>/目錄中看到setup.*sh文件,然后你可以執行下面的source命令:

$ source /opt/ros/<distro>/setup.zsh

請使用具體的ROS發行版名稱代替<distro>。

比如你安裝的是ROS Indigo,則上述命令改為:

$ source /opt/ros/indigo/setup.zsh

在每次打開終端時你都需要先運行上面這條命令后才能運行ros相關的命令,為了避免這一繁瑣過程,你可以事先在.bashrc文件(初學者請注意:該文件是在當前系統用戶的home目錄下。)中添加這條命令,這樣當你每次登錄后系統已經幫你執行這些命令配置好環境。這樣做也可以方便你在同一臺計算機上安裝并隨時切換到不同版本的ROS(比如fuerte和groovy)。

此外,你也可以在其它系統平臺上相應的ROS安裝目錄下找到這些setup.*sh文件。

3 創建ROS工作空間

catkin

這些操作方法只適用于ROS Groovy及后期版本,對于ROS Fuerte及早期版本請選擇rosbuild。

下面我們開始創建一個catkin 工作空間:

$ mkdir -p ~/catkin_ws/src

$ cd ~/catkin_ws/src

即使這個工作空間是空的(在'src'目錄中沒有任何軟件包,只有一個CMakeLists.txt鏈接文件),你依然可以編譯它:

$ cd ~/catkin_ws/

$ catkin_make

catkin_make命令在catkin工作空間中是一個非常方便的工具。如果你查看一下當前目錄應該能看到'build'和'devel'這兩個文件夾。在'devel'文件夾里面你可以看到幾個setup.*sh文件。source這些文件中的任何一個都可以將當前工作空間設置在ROS工作環境的最頂層,想了解更多請參考catkin文檔。接下來首先source一下新生成的setup.*sh文件:

$ source devel/setup.zsh

要想保證工作空間已配置正確需確保ROS_PACKAGE_PATH環境變量包含你的工作空間目錄,采用以下命令查看:

$ echo $ROS_PACKAGE_PATH

/home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

到此你的工作環境已經搭建完成,接下來可以繼續學習 ROS文件系統教程。

4 探索

在home文件夾下已經有ros_ws工作區,可以看看其中的文件和上面創建的有哪些不同和相同之處。

?

作業

在云端系統完成報告

教學小結

教學過程可以更加生動并突出趣味性

?

第四講

章節名稱

可視化和調試工具

課程內容

調試ROS節點、日志消息、檢測系統狀態、設置動態參數、roswtf、可視化節點診斷、繪制標量數據圖、圖像可視化、3D可視化、保存與回放數據、插件

授課學時

4

教學目標與要求

掌握ROS基本使用

難點與重點

機器人操作系統基本調試與工具使用

教學手段

1 課堂多媒體,啟發式教學

2 云端實驗室環境

教學內容

錄制與回放數據

簡介: 本教程將教你如何將ROS系統運行過程中的數據錄制到一個.bag文件中,然后通過回放數據來重現相似的運行過程。

關鍵: data, rosbag, record, play, info, bag

相關資料:錄制與回放數據

1 錄制數據(通過創建一個bag文件)

本小節將教你如何記錄ROS系統運行時的話題數據,記錄的話題數據將會累積保存到bag文件中。

首先,執行以下命令:

$ roscore

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

以上操作將會啟動兩個節點——一個turtlesim可視化節點和一個turtlesim鍵盤控制節點。在運行turtlesim鍵盤控制節點的終端窗口中你應該會看到如下類似信息:

Reading from keyboard

---------------------------

Use arrow keys to move the turtle.

這時按下鍵盤上的方向鍵應該會讓turtle運動起來。需要注意的是要想控制turtle運動你必須先選中啟動turtlesim鍵盤控制節點時所在的終端窗口而不是顯示虛擬turtle所在的窗口。

1.1 錄制所有發布的話題

首先讓我們來檢查看當前系統中發布的所有話題。要完成此操作請打開一個新終端并執行:

$ rostopic list -v

這應該會生成以下輸出:

Published topics:

?* /turtle1/color_sensor [turtlesim/Color] 1 publisher

?* /turtle1/command_velocity [turtlesim/Velocity] 1 publisher

?* /rosout [roslib/Log] 2 publishers

?* /rosout_agg [roslib/Log] 1 publisher

?* /turtle1/pose [turtlesim/Pose] 1 publisher

Subscribed topics:

?* /turtle1/command_velocity [turtlesim/Velocity] 1 subscriber

?* /rosout [roslib/Log] 1 subscriber

上面所發布話題部分列出的話題消息是唯一可以被錄制保存到文件中的的話題消息,因為只有消息已經發布了才可以被錄制。/turtle1/command_velocity話題是 teleop_turtle 節點所發布的命令消息并作為 turtlesim 節點的輸入。而/turtle1/color_sensor和/turtle1/pose是 turtlesim 節點發布出來的話題消息。

現在我們開始錄制。打開一個新的終端窗口,在終端中執行以下命令:

$ mkdir ~/bagfiles

$ cd ~/bagfiles

$ rosbag record -a

在這里我們先建立一個用于錄制的臨時目錄,然后在該目錄下運行 rosbag record 命令,并附加 -a 選項,該選項表示將當前發布的所有話題數據都錄制保存到一個bag文件中。

然后回到 turtle_teleop 節點所在的終端窗口并控制 turtle 隨處移動10秒鐘左右。

在運行 rosbag record 命令的窗口中按 Ctrl-C 退出該命令。現在檢查看 ~/bagfiles 目錄中的內容,你應該會看到一個以年份、日期和時間命名并以 .bag 作為后綴的文件。這個就是 bag 文件,它包含 rosbag record 運行期間所有節點發布的話題。

2 檢查并回放 bag 文件

現在我們已經使用 rosbag record 命令錄制了一個 bag 文件,接下來我們可以使用 rosbag info 檢查看它的內容,使用 rosbag play 命令回放出來。接下來我們首先會看到在 bag 文件中都錄制了哪些東西。我們可以使用 info 命令,該命令可以檢查看 bag 文件中的內容而無需回放出來。在 bag 文件所在的目錄下執行以下命令:

$ rosbag info <your bagfile>

你應該會看到如下類似信息:

bag: 2009-12-04-15-02-56.bag

version: 1.2

start_time: 1259967777871383000

end_time: 1259967797238692999

length: 19367309999

topics:

? - name: /rosout

??? count: 2

??? datatype: roslib/Log

??? md5sum: acffd30cd6b6de30f120938c17c593fb

? - name: /turtle1/color_sensor

??? count: 1122

??? datatype: turtlesim/Color

??? md5sum: 353891e354491c51aabe32df673fb446

? - name: /turtle1/command_velocity

??? count: 23

??? datatype: turtlesim/Velocity

??? md5sum: 9d5c2dcd348ac8f76ce2a4307bd63a13

? - name: /turtle1/pose

??? count: 1121

??? datatype: turtlesim/Pose

??? md5sum: 863b248d5016ca62ea2e895ae5265cf9

這些信息告訴你 bag 文件中所包含話題的名稱、類型和消息數量。我們可以看到,在之前使用 rostopic 命令查看到的五個已公告的話題中,其實只有其中的四個在我們錄制過程中發布了消息。因為我們帶 -a 參數選項運行 rosbag record 命令時系統會錄制下所有節點發布的所有消息。

下一步是回放 bag 文件以再現系統運行過程。首先在 turtle_teleop_key 節點運行時所在的終端窗口中按 Ctrl+C 退出該節點。讓 turtlesim 節點繼續運行。在終端中 bag 文件所在目錄下運行以下命令:

$ rosbag play <your bagfile>

在這個窗口中你應該會立即看到如下類似信息:

Hit space to pause.

[ INFO] 1260210510.566003000: Sleeping 0.200 seconds after advertising /rosout...

[ INFO] 1260210510.766582000: Done sleeping.

[ INFO] 1260210510.872197000: Sleeping 0.200 seconds after advertising /turtle1/pose...

[ INFO] 1260210511.072384000: Done sleeping.

[ INFO] 1260210511.277391000: Sleeping 0.200 seconds after advertising /turtle1/color_sensor...

[ INFO] 1260210511.477525000: Done sleeping.

默認模式下,rosbag play 命令在公告每條消息后會等待一小段時間(0.2秒)后才真正開始發布bag文件中的內容。等待一段時間的過程可以通知消息訂閱器消息已經公告了消息數據可能會馬上到來。如果 rosbag play 在公告消息后立即發布,訂閱器可能會接收不到幾條最先發布的消息。等待時間可以通過 -d 選項來指定。

最終/turtle1/command_velocity話題將會被發布,同時在turtuelsim虛擬畫面中turtle應該會像之前你通過turtle_teleop_key節點控制它一樣開始移動。從運行rosbag play到turtle開始移動時所經歷時間應該近似等于之前在本教程開始部分運行rosbag record后到開始按下鍵盤發出控制命令時所經歷時間。你可以通過-s參數選項讓rosbag play命令等待一段時間跳過bag文件初始部分后再真正開始回放。最后一個可能比較有趣的參數選項是-r選項,它允許你通過設定一個參數來改變消息發布速率。如果你執行:

$ rosbag play -r 2 <your bagfile>

你應該會看到turtle的運動軌跡有點不同了,這時的軌跡應該是相當于當你以兩倍的速度通過按鍵發布控制命令時產生的軌跡。

3 錄制數據子集

當運行一個復雜的系統時,比如PR2軟件系統,會有幾百個話題被發布,有些話題會發布大量數據(比如包含攝像頭圖像流的話題)。在這種系統中,要想把所有話題都錄制保存到硬盤上的單個bag文件中是不切實際的。rosbag record命令支持只錄制某些特別指定的話題到單個bag文件中,這樣就允許用戶只錄制他們感興趣的話題。

如果還有turtlesim節點在運行,先退出他們,然后重新啟動(relaunch)鍵盤控制節點相關的啟動文件(launch file):

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

在bag文件所在目錄下執行以下命令:

$ rosbag record -O subset /turtle1/cmd_vel /turtle1/pose

上述命令中的-O參數告訴rosbag record將數據記錄保存到名為subset.bag的文件中,同時后面的話題參數告訴rosbag record只能錄制這兩個指定的話題。然后通過鍵盤控制turtle隨處移動幾秒鐘,最后按Ctrl+C退出rosbag record命令。

現在檢查看bag文件中的內容(rosbag info subset.bag)。你應該會看到如下類似信息,里面只包含錄制時指定的話題:

bag: subset.bag

version: 1.2

start_time: 3196900000000

end_time: 3215400000000

length: 18500000000

topics:

? - name: /turtle1/command_velocity

??? count: 8

??? datatype: turtlesim/Velocity

??? md5sum: 9d5c2dcd348ac8f76ce2a4307bd63a13

? - name: /turtle1/pose

??? count: 1068

??? datatype: turtlesim/Pose

??? md5sum: 863b248d5016ca62ea2e895ae5265cf9

4 rosbag record/play 命令的局限性

在前述部分中你可能已經注意到了turtle的路徑可能并沒有完全地映射到原先通過鍵盤控制時產生的路徑上——整體形狀應該是差不多的,但沒有完全一樣。造成該問題的原因是turtlesim的移動路徑對系統定時精度的變化非常敏感。rosbag受制于其本身的性能無法完全復制錄制時的系統運行行為,rosplay也一樣。對于像turtlesim這樣的節點,當處理消息的過程中系統定時發生極小變化時也會使其行為發生微妙變化,用戶不應該期望能夠完美的模仿系統行為。

現在你已經學會了如何錄制和回放數據,接下來我們開始學習如何使用 roswtf來檢查系統故障。

作業

在云端系統完成報告

教學小結

教學過程可以更加生動并突出趣味性

?

?

?


----教學進度表----

每周???? ????2????? 學時

學分???????? 2 ?????學分

講課???????? 30??? 學時

實驗???????????????? 學時

機動???????????????? 學時

總共????????? 30?? 學時

考核形式 ?

?

教 學 進 度 表

?

2017??????? ~2018????????? 學年度第????? 二??? 學期

課程名稱:ROS機器人高效編程

任課教師:

授課班級:全校公共選修課?????????????????

教學院長(簽名)??????????????????

?

周次

起止日期

講課內容分章和分節的名稱

課時數

習題、實驗、設計、實踐或科學實驗名稱

課時數

1

3月5日

-3月9日

第1章 ROS入門

2

機器人操作系統安裝、虛擬機、Docker、嵌入式系統

?

2

3月12日

-3月16日

第2章 ROS架構及概念

2

機器人操作系統文件系統級、計算圖級、社區級、創建功能包并實現功能等

?

3

3月19日

-3月23日

第2章 ROS架構及概念

2

機器人操作系統文件系統級、計算圖級、社區級、創建功能包并實現功能等

?

4

3月26日

-3月30日

第3章 可視化和調試工具

2

調試ROS節點、日志消息、檢測系統狀態、設置動態參數、roswtf、可視化節點診斷、繪制標量數據圖、圖像可視化、3D可視化、保存與回放數據、插件

?

5

4月2日

-4月6日

第3章 可視化和調試工具

2

調試ROS節點、日志消息、檢測系統狀態、設置動態參數、roswtf、可視化節點診斷、繪制標量數據圖、圖像可視化、3D可視化、保存與回放數據、插件

?

6

4月9日

-4月13日

第4章 3D建模與仿真

2

自定義機器人3D模型,創建一個URDF文件、xacro文件、ROS仿真

?

7

4月16日

-4月20日

第4章 3D建模與仿真

2

自定義機器人3D模型,創建一個URDF文件、xacro文件、ROS仿真

?

8

4月23日

-4月27日

第5章 導航功能包入門

2

創建變換、發布傳感器消息、里程數據信息、創建基礎控制器、創建地圖

?

9

4月30日

-5月5日

第5章 導航功能包入門

2

創建變換、發布傳感器消息、里程數據信息、創建基礎控制器、創建地圖

?

10

5月7日

-5月11日

第6章 導航功能包進階

2

機器人配置、全局和局部代價地圖、rviz詳細配置、自適應蒙特卡洛定位,避障,目標發送

?

11

5月14日

-5月18日

第6章 導航功能包進階

2

機器人配置、全局和局部代價地圖、rviz詳細配置、自適應蒙特卡洛定位,避障,目標發送

?

12

5月21日

-5月25日

第7章 使用MoveIt!

2

機械臂、體系結構、簡單運動規劃、抓取放置任務

?

13

5月28日

-6月1日

第8章 在ROS下使用傳感器

2

使用游戲手柄、使用RGBD傳感器

?

14

6月4日

-6月8日

第9章 計算機視覺

2

ROS攝像頭驅動、ROS與OpenCV庫、標定攝像頭、視覺里程計

?

15

6月11日

-6月15日

第10章 點云

2

點云庫、可視化點云、濾波和縮減采樣、配準與匹配、點云分區

?

?

?

?

?

?

?

?

?

?

?

?

?

2017年10月


----公選課參考資料----

參考資料目錄:

1 張建偉, 張立偉, 胡穎,等. 開源機器人操作系統----ROS[M]. 科學出版社, 2012.

2 馬丁內斯, 費爾南德斯劉品杰.ROS機器人程序設計:Learning ROS for robotics programming[M]. 機械工業出版社, 2014.

3 Quigley M, Conley K, Gerkey B P, et al.ROS: an open-source Robot Operating System[C]// ICRA Workshop on Open SourceSoftware. 2009.

4 王之元, 周云,易曉東,等.機器人操作系統研究型課程建設[J].計算機教育,2016, No.253(1):77-80.

5 肖軍浩, 盧惠民,薛小波,等.將機器人操作系統(ROS)引入本科實踐教學[J].科技創新導報,2016(22):157-158.

6 R.帕特里克?戈貝爾,戈貝爾,羅哈斯.ROS入門實例[M].中山大學出版社,2016.

7 R.帕特里克?戈貝爾,戈貝爾,羅哈斯.ROS進階實例[M].中山大學出版社,2017.

8 李振偉. ROS入門與實戰[M].中國礦業大學出版社,2016.

9 恩里克·費爾南德斯等著,張瑞雷、劉錦濤譯ROS機器人程序設計(原書第2版)[M]機械工業出版社2016

10 杰森 M. 奧凱恩著; 肖軍浩譯 機器人操作系統淺析[M]國防工業出版社2016

11周興社機器人操作系統ROS原理與應用[M]機械工業出版社2017

12郎坦·約瑟夫(LentinJoseph)機器人系統設計與制作:Python語言實現[M]機械工業出版社2017

13何炳蔚,張立偉,張建偉 基于ROS的機器人理論與應用[M]科學出版社2017

14陳金寶 ROS開源機器人控制基礎[M]上海交通大學出版社2016

15 盧惠民,肖軍浩,鄭志強 ROS與中型組足球機器人[M]國防工業出版社2016

16 Wyatt Newman A Systematic Approach toLearning Robot Programming with ROS[M]Chapman and Hall/CRC 2017

17 Lentin Joseph ROS Robotics Projects[M] Packt Publishing 2017

18 Anil Mahtani, Aaron Martinez, EnriqueFernandez Perdomo, Luis Sánchez Effective Robotics Programming with ROS - ThirdEdition[M] PacktPublishing 2016

19 Fairchild, Carol and Harman, Dr. ThomasROS Robotics By Example[M]Packt Publishing 2016

20 Quigley, Morgan and Gerkey, Brian andSmart, William D. Programming Robots with ROS[M] O'Reilly Media 2015

21 Lentin Joseph Learning Robotics usingPython[M] PacktPublishing 2015

22 Koubaa A. Robot Operating System (ROS)The Complete Reference (Volume 1) [M]. Springer International Publishing, 2016.

23 Koubaa A. Robot Operating System (ROS)The Complete Reference (Volume 2) [M]. Springer International Publishing, 2017.


----


總結

以上是生活随笔為你收集整理的大学机器人类公选课(ROS机器人高效编程)申请表、大纲、部分教案、进度表等材料分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。