1. 程式人生 > >ROS(1和2)機器人作業系統相關書籍、資料和學習路徑

ROS(1和2)機器人作業系統相關書籍、資料和學習路徑

ROS機器人相關書籍與資料(更新日期2017年11月

之前寫過一篇博文總結過相關書籍(流行版本和相關書籍彙總),但是並沒有具體介紹

學習ROS基礎知識以官網和書籍為主,如果需要了解ROS最新成果和進展,以論文和會議資料為主。使用ROS進行機器人設計與開發,那就需要在掌握機器人相關基本理論和知識的基礎上,大量閱讀原始碼,學習引數優化、演算法改進等。

ROS learning curve is a little steep and to become proficient is pretty hard for a complete beginner. 掌握ROS並非易事。

需要掌握一定的Linux基礎、C++和Python之後,具備機器人結構、電子、運動學等知識之後再學習ROS工具進行功能包開發。

查閱了幾乎全部已有的ROS資料,發現最主流的ROS課程還是以基礎內容+專題形式展開介紹:


同時也會輔助一些有趣的競賽:


下面介紹一下學習ROS的英文書籍和資料。

1 ROS in 5 days

這個系列由四本書構成,分別為基礎、感知、導航、操作。


基礎篇:介紹ROS特點,模組化和複用性以及基本的工具、概念等。主要內容包括控制機器人,讀取感測器資料,並行任務處理,複雜資料和視覺資訊的視覺化等,課程分為兩個部分,第一部分,學習ROS並練習,執行程式碼並使用不同的機器人完成模擬;第二部分,開發一個專案,應用之前學過知識,完成一個控制機器人的專案。

具體目錄:0,簡介;1,基本概念;2,主題-釋出;3,主題-訂閱;4,服務-呼叫;5,服務-提供;6,行為-呼叫;7,行為-提供;8,除錯工具;9,課程專案。當然也可以在ROS官網找到對應章節內容進行學習:topic

serviceaction

感知篇:機器人要實現自動控制,感知是必不可少的重要內容。書中介紹在ROS中實現機器人的感知。

導航篇:書中介紹了關於導航的基礎知識,地圖建立、定位、路徑規劃、視覺化導航過程資料、使用RViz除錯、配置不同的導航點等。

操作篇:ROS操作主要是在環境中通過機器人對物體進行操作的術語,通過基本工具瞭解ROS如何操作物體並實現。

比較全面,移動機器人蔘考導航,工業機械手參考操作,功能全面服務機器人需要融合導航和操作。

2 A Systematic Approach to Learning Robot Programming with ROS

使用ROS學習機器人程式設計的系統方法通過對簡單程式碼示例以及相應操作理論的詳細解釋,全面介紹了ROS的基本元件。本書探討了ROS的組織,如何理解ROS軟體包,如何使用ROS工具,如何將現有的ROS軟體包納入新的應用程式,以及如何開發新的機器人和自動化軟體包。它還通過準備讀者更好地瞭解現有的線上文件來促進繼續教育。


這本書分為六部分。
1. 首先介紹ROS基礎,包括編寫ROS節點和ROS工具。訊息,類和伺服器也被覆蓋。
2. 本書的第二部分是ROS的模擬和視覺化,包括座標變換。
3. 本書的這一部分討論了ROS中的感知處理。它包括在ROS中使用攝像頭,深度成像和點雲以及點雲處理。
4. 本書第四部分介紹了ROS中的移動機器人控制和導航。
5. 本書的第五部分包含機器人手臂在ROS中的使用。本節探討機器人手臂運動學,手臂運動規劃,使用Baxter Simulator進行手臂控制以及物體抓取包。
6. 本書的最後一部分重點介紹系統整合和更高級別的控制,包括基於感知和移動操作。

3 更多書籍

http://wiki.ros.org/Books

     

    

    

    

    

 

4 論文集 Robot Operating System (ROS) 

    

5 重要會議 ROSCon 2012-2017


6 官方網站和原始碼 ROSGithub

    

7 視訊資料


學習路徑:ROS官網初級教程+中級教程+座標變換(TF)+機器人模型(URDF)+視覺化(RViz)+行為庫(actionlib)+外掛庫(pluginlib)+nodelets+導航(navigation)+工業機器人(ROS-I)+ROS(1、2)等;

然後,結合所需要使用的場景,選擇1-3本書籍進行系統練習與複習。



參考資料目錄:

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

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

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

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

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

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

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

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

09 恩裡克·費爾南德斯等著,劉錦濤、張瑞雷譯 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. Thomas ROS 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 using Python[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.


-End-

附錄課程大綱彙總:

ROS BASICS IN 5DAYS

Learnthe main concepts required to create and understand ROS programs

Abrief summary

ROSIn 5 Days is the ideal course if you are new to ROS. Here you will learn ROSfast!!!

Theobjective of this course is to give you the basic tools and knowledge to beable to understand and create any basic ROS related project. You will be ableto move robots, read their sensor data, make the robots perform intelligenttasks, see visual representations of complex data such as Point Clouds anddebug errors in the programs.

Whatyou will learn

Atthe end of this course, we will feel comfortable about the following subjects:

1.       ROSBasic Structure

2.       ROS Topics

3.       ROSServices

4.       ROSActions

5.       ROSDebugging Tools

Unit 0: CoursePreview

1.       Interactingwith a simulated robot

2.       Whatyou will need to learn to program a robot with ROS

Unit 1: Guide forROS in a Single Week

1.       It ispossible to learn ROS fast if you have the proper method

2.       Robotswe are going to use along the course

3.       MainObjective of this course

4.       LearningROS: attack in two ways

5.       Applywhat you learnt to a Robot Project

6.       How toproceed with the whole course

Unit 2: ROS Basics

1.       BasicConcepts

2.       Move aRobot with ROS

3.       What'sa ROS Package

4.       What isa launch file

5.       Createa ROS Package

6.       Yourfirst ROS program

7.       ROSNodes

8.       Compilinga ROS Package

9.       ParameterServer

10.  ROSCore

11.  EnvironmentVariables

Unit 3: ROS Topics- part 1

1.       TopicPublisher

2.       ROSMessages

3.       Exercises

Unit 4: ROS Topics- part 2

1.       TopicSubscriber

2.       CustomTopic Message Compilation

3.       ROSTopics Mini Project

Unit 5: ROSServices - part 1

1.       Topics- Services - Actions

2.       ServicesIntroduction

3.       How tocall a ROS Service

4.       Exercises

Unit 6: ROSServices - part 2

1.       How togive a Service

2.       How tocreate your own service message

3.       CustomService Compilation

Unit 7: ROSActions - part 1

1.       Playingwith the Quadrotor simulation

2.       Whatare ROS Actions

3.       Callingan Action Server

4.       Performingother tasks while the Action is in progress

5.       Theaxclient

Unit 8: ROSActions - part 2

1.       Writingan Action Server

2.       Creatingyour own Action Server Message

3.       CustomAction Messages compilation

Unit 9: DebuggingTools

1.       ROSWhat The F*ck

2.       ROSDebugging Messages and RQT-Console

3.       Plottopic data and RQT Plot

4.       NodeConnections and RQT graph

5.       Recordexperimental data and ROSBags

6.       VisualizeComplex data and RViz

Unit 11: CourseProject

1.       Win theSphero Race

2.       WhatSphero provides to program It

3.       Ideasto start working on

4.       Stepsyou should cover

Unit 12: TurtlebotProject

1.       Win theTurtleBot Race!

2.       WhatTurtlebot provides to program It

3.       Ideasto start working on

4.       Stepsyou should cover

Unit 13: What todo after the Course?

1.       KeepLearning

ROS NAVIGATION IN5 DAYS

Learnhow to make your wheeled robot navigate using ROS

Abrief summary

Theobjective of this course is to give you the basic tools and knowledge to beable to understand and create any basic ROS Navigation related project.

Youwill be able to create maps of environments, localize the robot in theenvironment, make the robots perform path planning, visualize data of thedifferent Navigation processes, debug errors using RViz and configure thedifferent Navigation nodes.

Whatyou will learn

Atthe end of the course you will be comfortable with the following subjects:

1.       The ROSNavigation Stack

2.       What isneeded to work with the Navigation Stack

3.       What isthe move_base node and why it is so important

4.       Whichparts take place in the move_base node

Unit 0: BasicConcepts

1.       What isneeded to perform robot navigation with ROS

2.       How toconfigure your Robot

3.       TheNavigation Stack

4.       HardwareRequirements

5.       Themove_base node

Unit 1: Guide forROS Navigation in 5 Days

1.       It ispossible to learn ROS fast if you have the proper method

2.       Robotswe are going to use along the course

3.       MainObjective of this course

4.       LearningROS Navigation: attack in two ways

5.       Applywhat you learnt to a Robot Project

6.       How toproceed with the whole course

Unit 2: Mapping

1.       VisualizeMapping in RViz

2.       SimultaneousLocalization and Mapping (SLAM)

3.       HardwareRequirements

4.       Transforms

5.       Creatinga launch file for the slam_gmapping node

6.       Build aMap Using Logged Data

Unit 3:Localization

1.       VisualizeLocalization in RViz

2.       MonteCarlo Localization (MCL)

3.       TheAMCL Package

4.       HardwareRequirements

5.       Creatinga launch file for the AMCL node

6.       AMCLthrough Services

Unit 4: PathPlanning 1

1.       VisualizingPath Planning in RViz

2.       Themove_base package

3.       TheGlobal Planner

4.       GlobalCostmap

Unit 5: PathPlanning 2

1.       TheLocal Planner

2.       LocalCostmap

3.       RecoveryBehaviors

4.       ClearCostmap

5.       OscillationSuppression

6.       DynamicReconfigure

Unit 6: NavigationProject

1.       Navigatethe Summit Robot

2.       Whatthe Summit provide for programming it

3.       Stepsyou should cover

ROS PERCEPTION IN5 DAYS

LearnOpenCV, FaceRecognition, Person tracking and object recognition.

Abrief summary

Perceptionis probably one of the most important things when we talk about autonomy.

Inthis course you will learn how perception is performed by robots using the ROSFramework.

Whatyou will learn

Atthe end of this course you will fell comfortable about making robots do thefollowing things:

1.       Trackobjects by its color blobs

2.       Navigatefollowing floor lines with only RGB camera

3.       Detecthuman faces and track them

4.       Recognizedifferent faces

5.       Track aperson through a 3D environment

6.       Recognizeflat surfaces like tables where object might be placed

7.       Recognizeobjects and track them in 3D space with PointCloudSensors

Unit 1: Perceptionwith ROS Intro

1.       WorkingExample: Mira Robot Follows the Ball

2.       Overview

Unit 2: VisionBasics Blob Tracking

1.       Roll ,Pitch and Yaw

2.       Blobtracking with OpenCV and python part 1: color encoding

3.       Blobtracking with OpenCV and python part 2: start blob tracking with cmvision

4.       Exercises

Unit 3: VisionBasics Follow Line

1.       GetImages from a ROS topic and show them with OpenCV

2.       ApplyFilters To the Image

3.       Movethe TurtleBot based on the position of the Centroid

4.       AdditionalStep: Follow Multiple Centroids

5.       PIDcontroller with perception

Unit 4: Surfaceand Object Recognition

1.       TableTop Detector

2.       2D and3D Object Finder

3.       Moveand spawn objects

4.       3DObject Detection

Unit 5: FaceDetection and tracking

1.       FaceDetector in ROS

2.       FaceDetector Client

3.       Visualizethe Face Detections

Unit 6: FaceRecognition

1.       Startingthe Face Recognition package

2.       MultipleFace Detection at the same time

Unit 7: PeopleTracking

1.       ROSpackage for tracking people

2.       LegDetector

3.       DetectUpperBody

4.       Pedestriandetector

5.       Combiningall together

Unit 8: AiboPerception Project

1.       YourOwn Simplified Aibo ERS7

2.       RGB,Depth and Point Cloud

3.       TheCamera-Optic frame problem

4.       Elementsof the Simulated World

5.       Projectexercises

Unit 10: What todo next

1.       KeepLearning

ROS MANIPULATION IN 5 DAYS

Learnhow to make your manipulator interact with the environment using ROS

Abrief summary

ROSManipulation is the term used to refer to any robot that manipulates somethingin its environment.

Themain goal of this Course is to teach you the basic tools you need to know inorder to be able to understand how ROS Manipulation works, and teach you how toimplement it for any manipulator robot.

Whatyou will learn

Atthe end of this Course you will feel comfortable about the following subjects:

1.       Basicsof ROS Manipulation

2.       How tocreate and configure a MoveIt! package for a manipulator robot

3.       How toperform Motion Planning.

4.       How toperform Grasping.

Unit 1:Introduction to the Course

1.       What isROS Manipulation

2.       Do youwant to have a taste?

3.       Whatyou will learn with this Course

4.       How youwill learn it

5.       Minimumrequirements for the course

6.       SpecialThanks

Unit 2: BasicConcepts

1.       Whatyou need to perform ROS Manipulation

2.       Structureof a Manipulator Robot

3.       BasicTerminology

Unit 3: Creating aMoveIt package

1.       What isMoveIt!

2.       GeneratingMoveIt! configuration package using Setup Assistant tool

3.       Themove_group node

4.       BasicMotion Planning

5.       MoveIt!planning scene

6.       MoveIt!kinematics handling

7.       MoveIt!collision checking

8.       Movingthe real robot

Unit 4: PerformMotion Planning programmatically

1.       Exercise

2.       Planninga trajectory

3.       Planningto a joint space goal

4.       Gettingsome useful data

5.       Executinga trajectory

Unit 5: AddingPerception

1.       Exercise

2.       AddingPerception to MoveIt!

Unit 6: Grasping

1.       What isGrasping

2.       Graspingusing MoveIt!

3.       Creatinga pick and place task

4.       Graspingin the Real Robot

Unit 7: Project

1.       Buildthe MoveIt! package

2.       Connectthe MoveIt! package with the simulation

3.       PythonScript

4.       AddPerception to the MoveIt! package

5.       Grasping

Unit 8: FinalRecommendations

1.       KeepLearning

ROS AUTONOMOUSVEHICLES 101

Introductionto Autonomous Vehicles in the ROS ecosystem

Abrief summary

Thegoal of this course is to show you the basic knowledge you need to master inorder to program autonomous cars for a Level 3 of autonomy.

Thismeans, it is expected that all task should be performed autonomously, but atthe same time it is expected to intervene a human driver whenever required.This level is called conditional automation.

Whatyou will learn

Inthis course you are going to learn the essentials for doing autonomous carscontrol using ROS.

Youare going to learn:

1.       Whatare the sensors required for an autonomous car and how to access them using ROS

2.       How todo autonomous navigation using a GPS

3.       How tocreate an obstacle avoider for an autonomous car

4.       How tointerface ROS with a car that follows the DBW interface

Unit 1: Unit 0:Introduction

1.       Introduction

2.       Sensors

3.       Autonomousnavigation

4.       The DBWinterface for autonomous cars and CAN-Bus

5.       Minimumrequirements for this course

6.       Specialthanks

Unit 2: Unit 1:Sensors

1.       BasicSensors List

Unit 3: Unit 2:GPS Navigation

1.       Introduction

2.       Creatinga GPS Subscriber

3.       Move ToWayPoint GPS ACTION Server

4.       Move ToWayPoint GPS ACTION Client

Unit 4: Unit 3:Obstacles and Security

1.       Controlethe Car movement Data Flow

2.       SystemFailure Mesures and DeadMansSwitch

3.       ObstacleDetection

Unit 5: Unit 4:CAN-Bus

1.       HowCan-Bus messages look like

2.       How weuse CAN-Bus in the simulation

3.       Exercises

Unit 6: Unit 5:Microproject

1.       Instructionsand the Project itself

Unit 7: Finalrecommentations

1.       KeepLearning

OPENAI GYM FORROBOTICS 101

Learnwhat is needed to be able to use OpenAI-Gym in your next project

Abrief summary

Theobjective of this course is to teach how to use OpenAI-Gym through environmentsdefined for Gazebo Simulator.

Thismeans that although the examples in this course will be exclusively in GazeboSimulator, the knowledge acquired will be applicable to any system. You will beable to define environments for Gazebo, but also for other simulators or evenother systems.

Whatyou will learn

Atthe end of the course , the following topics will have been addressed:

1.       Basicsof openai-gym API

2.       Definitionof environment files for openai-gym, centered in gazebo-ROS simulations.

3.       Importingof environments and communication with Gazebo Simulations through ROS.

4.       Registeringof learning results and data plot

5.       Createyour own environment through a hands on example with a drone in Gazebo.

Unit 1:introduction openai-gym

1.       What isOpenAI-Gym

2.       What'sin this OpenAI Gazebo-Gym Course

3.       How youwill learn all that

4.       Minimumrequirements for this course

5.       SpecialThanks

Unit 2: Running anenvironment

1.       Makethe robot learn how to move

2.       Selectthe environment

3.       Startup the monitoring

Unit 3:Environment file configuration

1.       Whereto find the environment files

2.       Exercises

Unit 4: Plotresults

1.       PlotResults from Monitor

2.       Exercises

3.       UploadResults from Monitor

Unit 5: MicroProject

1.       Knowyour environment

2.       Whatyou have to edit and create

3.       Use theEnvironment just created to learn

Unit 6: FinalObservations

1.       KeepLearning

RTAB-MAP IN ROS 101

Learnhow to use the rtabmap_ros package for performing RGB-D SLAM

Abrief summary

RTAB-Map(Real-Time Appearance-Based Mapping) is a RGB-D SLAM approach based on a loopclosure detector.

Theloop closure detector uses a bag-of-words approach in order to determinate if anew image detected by an RGB-D sensor it is from a new location or from alocation that it has been already visited.

Ofcourse, this is a very summarized explanation, you will get more details on howthis loop closure detector works inside this Course.

Whatyou will learn

Duringthis Course you will address the following topics:

1.       Basicsof RTAB-Map.

2.       How touse the rtabmap_ros package.

3.       Howdoes loop closure detection work internally.

4.       How tocreate a 3D Map of an environment.

5.       AutonomousNavigation using RGB-D SLAM.

Unit 1:Introduction to the Course

1.       What isRTAB-Map

2.       Demo

3.       Whatyou will learn with this Course

4.       Minimumrequirements for the Course

5.       SpecialThanks

Unit 2: BasicConcepts

1.       SystemRequirements

2.       DataVisualization - RViz

3.       LaunchingRTAB-Map

4.       SubscribedTopics

5.       Arguments

Unit 3: AutonomousNavigation with rtabmap_ros

1.       Brief Introduction

2.       MappingMode

3.       LocalizationMode

4.       AutonomousNavigation

Unit 4: FinalRecommendations

1.       KeepLearning

TF ROS 101

Tofinally understand TF and Robot State Publisher in ROS

Abrief summary

Anyphysical system, specially robotics systems, have many coordinate frames thatchange over time.

Arobotic arm, for example, has many different physical parts, each one with itsown coordinate frame, that can move at the same time.

WithTF, you will know how a hand "knows" the position of an object basedon the position of the camera, for example.

Whatyou will learn

Thiscourse will centre on hands on experience, making you able to:

1.       Publishand Subscribe to TF data topics

2.       Use thetools necessary to visualize TF data

3.       Publishfixed TF transforms

4.       UseRobotStatePublisher to generate TF data for robots to complex to publish itmanually

5.       Understandthe use of JointStatePublisher and how it relates to RobotMovement Controllers

Unit 1: Intro toTF

1.       What'sin the ROS TF Course

2.       How youwill learn all that

3.       Minimumrequirements for this course

Unit 2: TF Basics

1.       Whatyou will be able to do after this Unit

2.       Whatthis have to do with TF anyway

3.       Get anidea of what is happening

Unit 3: TF Publishand Subscribe

1.       TFPublisher

2.       TFSubscriber

3.       Addingmore frames

Unit 4:RobotStatePublisher

1.       Knowhow Pi-Robot works

2.       Createyour own robot_state_publisher launch

3.       JointState Publisher

Unit 5: StaticTransforms

1.       Introduction

2.       Howit's done in launch files and command line

3.       PracticalApplication

Unit 6:MicroProject

1.       Spawn aURDF model

2.       Removea model from Gazebo

3.       Guidelinesand the project itself

Unit 7: What to donext

1.       KeepLearning

ROS-INDUSTRIAL 101

Introductionof some basic ROS tools to control industrial robots with ROS

Abrief summary

ROS-Industrialis a project which main goal is to bring ROS closer to the robotics industrialworld. It is a HUGE project, composed of many packages and tools.

ThisCourse is not meant to make you learn all the things you can achieve withROS-Industrial, but just to introduce you to some basic concepts you need toknow if you want to begin exploring all the ROS-Industrial capabilities.

Whatyou will learn

Duringthis Course you will address the following topics:

1.       Overviewof how to create an URDF file for an industrial robot.

2.       How tocreate a MoveIt! package for your industrial robot.

3.       How toperform motion planning using Python.

Unit 1:Introduction to the Course

1.       What isROS-Industrial

2.       Whatyou will learn with this Course

3.       How youwill learn it

4.       Minimumrequirements for the Course

5.       SpecialThanks

Unit 2: Creatingthe URDF

1.       Buildingthe URDF

2.       Buildingthe Xacro

Unit 3: Building aMoveIt package

1.       Buildinga MoveIt! package

2.       BasicMotion Planning

3.       Movingthe robot in the simulation

Unit 4: MotionPlanning through code (Python)

1.       Planninga trajectory

2.       Planningto a joint space goal

3.       Gettingsome useful data

4.       Executinga trajectory

Unit 5: FinalProject

1.       Buildthe URDF

2.       Buildthe MoveIt! package

3.       Connectthe MoveIt! package with the simulation

4.       PythonScript

Unit 6: FinalRecommendations

1.       KeepLearning

ROS CONTROL 101

Learnhow to ROSify the control of your robot

Abrief summary

ROSControl are a set of packages and tools that allow you to send commands andcommunicate with the joints of your robot in order to be able to control them.

Themain goal of this Course is to teach you how to integrate this ros_controlutility within a simulated environment, so you can apply the same concepts touse this tool to control the joints of your real robot.

Whatyou will learn

Duringthis Course you will address the following topics:

1.       Basicsof ROS Control.

2.       How toconfigure ROS Control to work with your robot simulation.

3.       How tocreate a custom controller.

Unit 1:Introduction to the Course

1.       What isROS Control

2.       Whatyou will learn with this Course

3.       How youwill learn it

4.       Minimumrequirements for the Course

5.       SpecialThanks

Unit 2: BasicConcepts

1.       Theros_control packages

Unit 3:Configuring the controllers

1.       Configuringthe URDF - Transmissions

2.       Configuringthe URDF - Plugin

3.       Interactingwith the joints in a graphical way

Unit 4: Create acontroller

1.       Creatingthe package

2.       Creatingthe source code

3.       Updatingthe package.xml file

4.       Updatingthe CMakeLists.txt file

5.       Buildthe controller

6.       Writethe configuration file

7.       Createa launch file

Unit 5: CourseProject

1.       Examinethe simulation

2.       Buildthe control package

3.       Testyour package

4.       Createa controller

Unit 6: FinalRecommendations

1.       KeepLearning

ROBOT CREATIONWITH URDF

Learnhow to create the URDF files to control your robot with ROS

Abrief summary

Inthis course you will learn how to go from a physical robot or even a robotdrawing to a full fledged simulation with physics, actuators and sensors.

Whatyou will learn

Duringthis course you will learn:

1.       How tocreate a URDF file that defines your robot in the Gazebo-ROS ecosystem.

2.       Definitionof weights, inertias, joints, links, sensor plugins and all that is needed tosimulate a robot.

3.       XACROfiles.

Unit 1: URDF Intro

1.       Introductionwith demo

2.       Why youneed to simulate robots

3.       How youwill learn about URDF files

4.       Requirements

5.       SpecialThanks

Unit 2: Creatingthe Visual Robot Model with URDF

1.       Introduction

2.       Learnhow to use the URDF creation tools and the creation procedure

3.       Linksand Joints

4.       See theURDF

5.       Learnabout the morphology of your robot

6.       Learnhow to import your 3D CAD models to Gazebo

Unit 3: Adapt URDFfor Gazebo Simulator

1.       AddCollisions

2.       Spawn arobot in Gazebo Through URDF Files

3.       AddInertias

4.       Addcontrollers

5.       AddingSensors

Unit 4: GurdyRobot

1.       Createthe Gurdy Robot

Unit 5: XACROfiles

1.       Basicson using XACRO

2.       Createyour own XACRO

Unit 6: MicroProject: Create your own Jibo

1.       Instructionsand the Project itself

Unit 7: What to donext

1.       KeepLearning

ROS RVIZ ADVANCEDMARKERS

Learnhow to use RViz Advanced Markers for debugging and visualization

Abrief summary

Visualizingdata in the correct way is vital to extract meaningful conclusions. This isspecially true in Robotics.

Oneof the problems you always tend to have in robotics is to know what the robotis actually seeing, what is the virtual representation of the world in hismind. Its also very important to represent visually complex data in one placeonly.

That'swhy RViz and all its markers and plugins have made robotics much user friendlyand powerful than ever before!

Whatyou will learn

1.       How touse Basic RViz Markers.

2.       How toCreate BoundingBoxes Arrays that change dynamically.

3.       How toadd Overlay text, graphs and menus in RViz.

4.       DrawTFTRajectories, RobotFootsteps and occupancy grids that change based on realrobot data.

5.       Drawpictograms from FontAwsome to represent detections and real object in the world

6.       RepresentTwistStamped commands issued to the robot

7.       CreateInteractive displays in RViz that allow to execute programs from RViz withcustom icons.

8.       Recordvideos of Rviz

Unit 1:RvizMarkers Unit 0: Presentation in ROS

1.       Intro

2.       Let'sPlay

3.       Whatyou will learn with this Course

4.       How youwill learn all this

5.       Requirements

6.       SpecialThanks

Unit 2:RvizMarkers Unit 1: Basic Markers

1.       Firstget the feeling of the simulation

2.       Createyour first basic Marker

3.       Createa Custom Mesh Marker

Unit 3:RvizMarkers Unit 2: BoundingBoxes, RobotFootsteps, PolygonArray ,Ocupancygrids, Pictograms

1.       Whereto find all this elements in RViz

2.       BoundingBoxes

3.       RobotFootsteps

4.       PolygonArray

5.       OccupancyGrids

6.       Pictograms

Unit 4:RvizMarkers Unit3: Add Overlays

1.       Addingplots, piecharts and menus

2.       Plotsand PieCharts

3.       Menusand Text Overlay

4.       Completedemo

Unit 5:RvizMarkers Unit 4: Add Custom Panels to RVIZ and Extras

1.       Add aYES or NO interactive panel

2.       Add acustom GUI

3.       Drawtrajectories and TwistStaped in RViz

4.       RecordRViz Sessions

Unit 6:RvizMarkers What to do Next

1.       KeepLearning

MASTERING WITHROS: SUMMIT XL

Masterthe robot SUMMIT XL from Robotnik. Learn all the basics to work with the realrobot.

Abrief summary

Whatyou will learn

1.       How toset up the navigation stack to make it navigate in an indoor environment,generating maps by its own.

2.       How tocreate a program to navigate in outdoors environments through GPS data.

3.       How todetect persons with the Hokuyo laser sensor.

4.       How todetect person with its PTZ RGB camera.

5.       How torecognise person with its PTZ RGB camera and tell if it has permission to bethere or not.

6.       How toSet WayPoints in a map to make it follow that path to patrole.

7.       Createa reactive programs based on all previously mentioned and create a patrolingprogram that reacts to person detections.

Unit 0: Unit 0:Robotniks Summit XL platform

Unit0: Summit XL Intro

Unit 1: Unit 1:Set Indoor Navigation Stack

Unit1: Set Indoor Navigation Stack

Unit 2: Unit 2:Set Outdoors Navigation

Unit2: Set Outdoors Navigation

Unit 3: Unit 3: Detectand localise person

Unit3: Detect and localise person

Unit 4: Patrolewith Summit XL Micro Project

Patrolewith Summit XL Micro Project

Unit 5: I havefinished, now what?

Ihave finished, now what?

MASTERING WITHROS: JACKAL

Learnhow to create real world applications for a real robot. In this case Jackalrobot from ClearPathRobotics.

Abrief summary

Learnhow to create real world applications for a real robot. In this case Jackalrobot from ClearPathRobotics.

Whatyou will learn

1.       How toset up the navigation stack to make it navigate in an indoor environment,generating maps by its own.

2.       How tocreate a program to navigate in outdoors environments through GPS data.

3.       How todetect persons with the laser sensor.

4.       How todetect person with its RGB stereo camera.

5.       How togenerate waypoints and make jackal patrole.

6.       Use theStereoCam to generate PointCloud Data

7.       Createa reactive programs based on all previously mentioned and create a patrolingprogram that reacts to person detections.

Unit 0: Unit 0:Introducing ClearPath Jackal Robot

IntroducingClearPath Jackal Robot

Unit 1: Unit 1:Navitaion Indoor

NavigationIndoor

Unit 2: Unit 2:Set Outdoors Navigation

SetOutdoors Navigation

Unit 3: Unit 3:Detect and localise a person

Detectand localise a person

Unit 4: Patrolwith Jackal Micro Project

Patrolwith Jackal Micro Project

Unit 5: I havefinished, now what?

Ihave finished, now what?

MASTERING WITHROS: SMART GRASPING SYSTEM

Learnhow to work with a robotic hand from Shadow Robot, including their SmartGrasping System.

Abrief summary

Withinthis Course, you are going to learn how you can start working with one of therobotic hands developed by the Shadow Robot Company, as well as how to usetheir Smart Grasping System.

Whatyou will learn

1.       BasicUsage and control of a Shadow Hand.

2.       How toattach a robotic hand to a manipulated arm.

3.       How tocreate a MoveIt package for a manipulated robot.

4.       How tointeract with the Smart Grasping System

5.       How tointegrate Perception with the Smart Grasping System

Unit 1:Introduction to the Course

Introductionto the Course

Unit 2: BasicUsage

BasicUsage

Unit 3: Attach thehand to a robotic arm

Attachthe hand to a robotic arm

Unit 4: MotionPlanning with MoveIt

MotionPlanning with MoveIt

Unit 5: SmartGrasping System

SmartGrasping System

Unit 6: Perceptionand Object Recognition

Perceptionand Object Recognition

Unit 7: Project

Project

Unit 8: FinalRecommendations

FinalRecommendations

MASTERING WITHROS: TURTLEBOT3

Learnhow to work with a Turtlebot3 robot.

Abrief summary

Withinthis Course, you are going to learn how you can start working with a Turtlebot3robot using its both versions, Burger and Waffle.

Whatyou will learn

1.       BasicUsage and control of the Turtlebot3 robot.

2.       How toperform Navigation with Turtlebot3.

3.       Followa line with Turtlebot3.

4.       ObjectRecognition with Turtlebot3

5.       MotionPlanning in Moveit with Turtlebot3

Unit 1:Introduction to the Course

Abrief introduction to the Course, including a demo.

Unit 2: BasicUsage

BasicConcepts and Usage of the Turtlebot3 robot

Unit 3: Navigationwith Burger

Howto make Turtlebot3 robot navigate

Unit 4: Follow aline

Howto create a script in order to make Turtlebot3 follow a line in the floor

Unit 5: BlobTracking

Blobtracking with RGBD camera

Unit 6: ObjectRecognition

Detectobjects with RGBD camera

Unit 7: MotionPlanning with MoveIt

Howto perform Motion Planning with MoveIt and the Open Simulator arm

Unit 8: ProjectPart 1

1stpart of the Project, involving Navigation

Unit 9: ProjectPart 2

2ndpart of the project, involving Motion Planning

Unit 10: FinalRecommendations

Whatto do after finishing the course

MASTERING WITHROS: TIAGO

Learnhow to work with a TIAGo robot from PAL Robotics.

Abrief summary

Withinthis Course, you are going to learn how you can start working with a TIAGorobot from PAL Robotics.

Whatyou will learn

1.       Controlof TIAGos joints.

2.       Navigationwith TIAGo.

3.       MotionPlanning with MoveIt!

4.       Perceptionwith OpenCV

5.       Perceptionwith PCL

Unit 1:Introduction to the Course

Abrief introduction to the Course, including a demo.

Unit 2: Control

Howto control the different joints of TIAGo robot

Unit 3: Navigation

Howto Navigate in indoor environments with TIAGo robot

Unit 4: MotionPlanning with MoveIt: Part 1

MotionPlanning with MoveIt and TIAGo

Unit 5: MotionPlanning with MoveIt: Part 2

MotionPlanning with Octomap

Unit 6: MotionPlanning with MoveIt: Part 3

Executea Pick and Place task with TIAGo

Unit 7: Perceptionwith OpenCV

Howto perform Perception with TIAGo using the OpenCV library

Unit 8: Perceptionwith PCL

Howto perform Perception with TIAGo using the PCL library

Unit 9: MicroProject

AMicro Project to apply the knowledge acquired during the course

Unit 10: FinalRecommendations

Whatto do after finishing the Course

ROS PROJECTS:TURTLEBOT3

Thisis a ROS Project where you will have to apply different ROS knowledge in orderto solve all the exercises.

Abrief summary

Thisis a full ROS Project where you will have to apply different ROS concepts inorder to solve all the exercises that are presented. This project is based onthe Turtlebot3 robot.

Whatyou will need for the project

1.       BasicROS knowledge

2.       BasicPython knowledge

3.       ROSNavigation knowledge

4.       ROSPerception basic knowledge (Object Recognition)

5.       ROSManipulation knowledge (MoveIt and Python API)

Unit 2: Part 1:Navigation

Makethe Turtlebot3 robot navigate applying ROS Navigation concepts

Unit 3: Part 2:Perception

Makethe Turtlebot3 robot be able to detect objects applying some ROS Perceptionconcepts

Unit 4: Part 3:Motion Planning

Makethe Open Manipulator arm perform motions applying some ROS ManipulationConcepts

PROGRAMMING DRONESWITH ROS

Inthis Course, you are going to learn all the basics you need in order to startprogramming autnomous drones.

Abrief summary

Inthis Course, you are going to learn all the basics you need in order to startprogramming autnomous drones. You are going to use a Parrot AR Drone.

1.       Whatyou will learn

2.       BasicControl of a drone.

3.       Droneexploration

4.       DroneNavigation

5.       SimulationIn The Loop

Unit 1:Introduction to the Course

Abrief introduction to the Course, including a demo.

Unit 2: BasicControl of a drone

Our6th ROS Summer School took place at the Aachen UAS from 14th August - 25thAugust, 2017.

The ROS Summer Schoolcovered common topics regarding mobile robotics:

1.       Introductionto Mobile Robotics

2.       ROSFile System

3.       ROSCommunication

4.       Hardwareand Sensors

5.       ROSSerialand Teleoperation

6.       ImageProcessing with OpenCV & ROS

7.       LandmarkDetection

8.       Localizationand Navigation

9.       Mapping

10.  Introductionto SLAM Algorithms

11.  Participationat Urban Challenge Competition

Visitto Paris, France

Weused the Middleware ROS (Robot Operating System) as standard Operating Systemfor Robots. After having learnt the theory all topics were experienced on realhardware using our mobile robots developed at the Aachen UAS. In the end we hada competition where participants had to use their skills to program the robotto drive around a course.

Agendaof the 6. ROS Summer School, 14th-25th August, 2017:

Monday,August 14th: ROS-Demo / Show, welcome BBQ

Tuesday,August 15th: ROS Basics: Navigating in Linux and ROS file system

Wednesday,August 16th: ROS Basics: ROS internal communication

Thursday,August 17th: Hardware interfaces, Transforms in ROS

Friday,August 18th: Introduction to GAZEBO simulator, AR tag recognition

Saturday,August 19th: Day trip to Paris (France)

Sunday,August 20th: Day at leisure

Monday,August 21st: Localization & Mapping

Tuesday,August 22nd: ROS control, Path planning

Wednesday,August 23rd: Industrial exhibition

Thursday,August 24th: Exam, free hacking

Friday,August 25th: Free hacking, competition, farewell BBQ

Additionally,we offer excursions during the week to explore Aachen and other nearby cities(e.g. Cologne, Maastricht or Bonn).

Option:UAV Workshop on August 26-27th, 2017

Saturday,August 26th: Basic principles of UAV design, components and functions, examplesetup of a multicopter, first flight setup guide

Sunday,August 27th: Flight modes, GPS based behaviours, Interfacing with ROS, AR_tagsand UAVs, autonomous flying

Programming forRobotics - ROS

Maincontent

Abstract:This course gives an introduction to the Robot Operating System (ROS) includingmany of the available tools that are commonly used in robotics. With the helpof different examples, the course should provide a good starting point forstudents to work with robots. They learn how to create software includingsimulation, to interface sensors and actuators, and to integrate controlalgorithms.

Objective:

1.       ROSarchitecture: Master, nodes, topics, messages, services, parameters and actions

2.       Consolecommands: Navigating and analyzing the ROS system and the catkin workspace

3.       CreatingROS packages: Structure, launch-files, and best practices

4.       ROS C++client library (roscpp): Creating your own ROS C++ programs

5.       Simulatingwith ROS: Gazebo simulator, robot models (URDF) and simulation environments(SDF)

6.       Workingwith visualizations (RViz) and user interface tools (rqt)

7.       InsideROS: TF transformation system, time, bags

Content:This course consists of a guided tutorial and exercises with increasing levelof difficulty when working with an autonomous robot. You learn how to setupsuch a system from scratch using ROS, how to interface the individual sensorsand actuators, and finally how to implement first closed loop control systems.

Coursedates

Location:HG G1

Time:08.15-12.00

Dates:20.2.2017, 23.2.2017, 24.2.2017, 27.2.2017, 2.3.2017

Preparationbefore the course

Becausethe course will start already on the first day using ROS and Ubuntu, we expectyou to prepare your Laptop with a working environment before the course. Duringthe course, we will work with Ubuntu 14.04 and ROS Indigo Igloo. We highlyrecommend you to use a virtual machine and the provided image that alreadycontains a preinstalled environment with the following software:

Ubuntu14.04

ROSIndigo Igloo

EclipseNeon

Catkincommandline tools

Terminator

Git

Installvirtual machine

Torun the provided image you need the VMware Workstation 12 Pro (Windows, Linux)or VMware Fusion 8 (Mac OS X). This software can be ordered on the ETH Zurich’sIT Shop: https://idesnx.ethz.ch/

Pleasefollow the given instructions to download and install the software from VMware.

Downloadimage

Downloadthe complete folder “Ubuntu ROS-Course” from polybox:https://polybox.ethz.ch/index.php/s/kPQFsNrpDinWQJL

Werecommend you to have at least 20GB of available memory on your computer to runthe virtual machine.

Startup virtual machine

OpenVMware Workstation

Openfile Ubuntu ROS-Course.vmx in the downloaded folder Ubuntu ROS-Course

Startvirtual machine with “Power on this virtual machine”

Tologin under Ubuntu use the provided account ROS Course:

User:student

Password:Ros.2017

Coursematerial

VideoRecording of the Lectures

     Topics Material

ROSarchitecture & philosophy

ROSmaster, nodes, and topics

Consolecommands

Catkinworkspace and build system

Launch-files

Gazebosimulator   

Videorecording

Lecture1 (PDF, 3.2 MB)

Updated22.02.2017

Exercise1 (PDF, 290 KB)

Updated22.02.2017

ROSpackage structure

Integrationand programming with Eclipse

ROSC++ client library (roscpp)

ROSsubscribers and publishers

ROSparameter server

RVizvisualization

Videorecording

Lecture2 (PDF, 4.1 MB)

Updated24.02.2017

Exercise2 (PDF, 210 KB)

Updated22.02.2017

HuskyHighlevel Controller Template (ZIP, 3 KB)

Updated22.02.2017

TFTransformation System

rqtUser Interface

Robotmodels (URDF)

Simulationdescriptions (SDF)

Videorecording

Lecture3 (PDF, 5.5 MB)

Updated24.02.2017

Exercise3 (PDF, 218 KB)

Updated01.03.2017

ROSWorlds (ZIP, 1 KB)

Updated13.02.2017

ROSservices

ROSactions (actionlib)

ROStime

ROSbags

Debuggingstrategies

Videorecording

Lecture4 (PDF, 966 KB)

Updated26.02.2017

Exercise4 (PDF, 477 KB)

Updated02.03.2017

ROSBag (BAG, 158.9 MB)

Updated13.02.2017

Casestudy: Using ROS in complex real-world applications

Casestudy video recording

Casestudy slides (click on download)

Exercise5 (PDF, 145 KB)

Updated01.03.2017

Settingup a developer's PC (after the course)

Ifyou will later work on a project involving programming with ROS under Linux, werecommend a native installation (not recommended for this course). You caninstall the same installation as you found on the virtual machine with theseinstructions (PDF, 77 KB).

JustinHuang edited this page on 20 May · 18 revisions

Tutorials

C++crash course

ROSweb interfaces with Polymer

Touchscreeninterfaces

USBscale

ROSarchitectural tips

Simulatingpoint cloud locations

Controllingnavigation speed

Clonethis wiki locally

https://github.com/cse481sp17/cse481c.wiki.git

 Clone in Desktop

Welcometo CSE 481C, Spring 2017! A list of labs for the class i