ROS(1和2)机器人操作系统相关书籍、资料和学习路径

ROS机器人相关书籍与资料(更新日期2017年11月)

ROS发展10年了,已经逐渐成为通用的机器人操作系统标准。ROS 2相关资料链接:http://blog.csdn.net/zhangrelay/article/details/78778590

之前写过一篇博文总结过相关书籍(流行版本和相关书籍汇总),但是并没有具体介绍。

学习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官网找到对应章节内容进行学习:topicserviceaction

感知篇:机器人要实现自动控制,感知是必不可少的重要内容。书中介绍在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 is below.

Week7

Tuesday/ Thursday

Lab30: Introduction to point cloud processing

Lab31: Planar segmentation

Lab32: Euclidean clustering

Lab33: Fitting bounding boxes (optional)

Lab34: Object recognition

Week6

Tuesday

Lab27: Our first cpp package

Lab28: AR tags

Thursday

Lab29: Assignment 6 tips

Week5

Tuesday

Lab19: Cartesian space manipulation

Lab20: Checking for reachability

Lab21: Obstacle avoidance

Lab22: Path constraints

Thursday

Lab23: TF

Lab24: Transform arithmetic

Lab25: Fast IK with IKFast

Lab26: Advanced interactive markers, assignment 5 tips

Week4

Tuesday

Lab11: Visualizations in ROS with RViz

Lab12: Creating Custom Visualizations in RViz using Markers

Lab13: Creating Interactive Visualizations in RViz using InteractiveMarkers

Lab14: Odometry and rotations

Lab15: Driving with odometry

Thursday

Lab16: Mapping and navigation

Lab17: Sending navigation goals

Lab18: Map annotation with a hybrid web/RViz interface

Week3

Tuesday

Lab1: Starting ROS and the Fetch simulator and getting the starter code

Lab2: Controlling the base

Lab3: Controlling the gripper

Lab4: Running on the real robot

Lab5: Controlling the torso

Lab6: Controlling the head

Lab7: Controlling the arm

Lab8: Reading joint states

Thursday

Lab9: Robot web tools

Lab10: Robot frontends with raw JavaScript

Weeks1-2

Gettingset up

Whichtutorials should I use?

Productivitytips

Programingfor the Robot Operating System

CourseDescription

Highcomplexity of tasks that the modern mobile robots are facing calls for using aprogramming infrastructure which enables efficient integration of independentlydeveloped subsystems into a single system enabling autonomous robot operation.The Robot Operating System (ROS) offers an environment for developing modularcontrol software, a communication infrastructure to connect the softwarecomponents and an open source library of implemented algorithms. In the lastfive years ROS has become the standard for robot control in the academiccommunity and its influence is spreading also in the industry. In the scope ofthis course we shall cover the practical development of software modules in theROS environment and their integration into a completely functional system forautonomous robot control.

GeneralCompetencies

Basicknowledge on using the Linux operating system and programming in the Pythonprogramming language. Basic understanding o the architecture and implementationof the Robot Operating System (ROS). Capability to implement ROS nodes:applications that communicat through the ROS middleware. Basic knowledge aboutsolving the mobile robot autonomous navigation problem and configuring the ROSnavigation stack.

LearningOutcomes

Usebasic Linux commands.

UseLinux tools to install additional software.

Solvesimple problems using the Python programming language.

Explainthe role of the Robot Operating System in autonomous robot control.

Producea ROS node: an application capable of exchanging data over the ROS middleware.

Applythe ROS navigation stack to enable autonomous mobile robot navigation.

Formsof Teaching

Lectures

Interactivelectures with examples and practical assignments.

LaboratoryWork

Assignmentsintegrated into lectures.

ProgrammingExercises

Projectassignment on the robot.

GradingMethod

ContinuousAssessment       Exam

Type   Threshold Percentof Grade  Threshold Percent of Grade

Homeworks         50 %   100%       0 %     0 %

Weekby Week Schedule

Linuxoperating system basics.

Pythonprogramming language basics.

Introductionto the Robot Operating System (ROS). Programming ROS nodes in Python (part 1).

ProgrammingROS nodes in Python (part 2).

Datalogging and processing using rosbag.

Robotmap building and navigation in ROS

C++programming in Linux.

ProgrammingROS nodes in C++.

AdvancedROS programming topics. Final project: controllling an autonomous robot in ROS.

RobotProgramming

Sectionof Elective in Artificial Intelligence (Complementi di IntelligenzaArtificiale)

MasterArtificial Intelligence and Robotics (Laurea Magistrale in IntelligenzaArtificiale e Robotica)

A.A.2014/2015, 3 Credits, Semester I

Prof.Daniele Nardi

Programme:

Robotprogramming requires a deep knowledge of the programming techniques and theprogramming language chosen for software development. In addition, the softwarefor robotic applications is often built by means of specialized developmenttools. The goal of the course is to discuss a case study, in order to provide asystematic approach to robot programming. Specifically, robot programming isaddressed using C++ as basic programming language, ROS and NAO SDK asdevelopment frameworks. The target robotic platforms are a simple wheeled robot, that will be built during the class and the NAO humanoid robot. The courseaddresses examples of programming tasks in Perception, Localization andNavigation and Mapping, Actions and Plan execution, Human Robot Interaction.

Thecourse will rely on the technical support of the members of the RoCoCo lab. Ifyou wish to get started earlier you can start looking at the RoCoCo wiki andstart playing with the software tools.

Classesare Tuesday 15:45-19:00, starting September 30th, Room A5

Noticethe Room Change!!!

Planof the Lectures

September30th, Introduction: Robotics Software, Robot Operating System (ROS); Git;

October7th, Programming NAO-Robots: RoboCup, Nao: The B-Human Framework,

October14th, Using ROS on robots: Hardware: robot base and sensors, Robot set up withROS, bag for the homework, smaller bag for the homework;

October16th, The robot MARRtino;

October21st, Autonomous localization mapping and navigation: ROS Navigation;

October28th, Image processing with OpenCV: Image Processing: openCV;

November4th, Perception with RGBD sensor: 3D data processing, Using pcl, codice;

November11th, Actions and plans, Basic actions in ROS, Petri Net Plans, PNP in ROS,software, PNP ,

November18th, Human Robot Interaction, Human Robot Interaction in Natural Language,Code -->

Homeworks(see class notes)

Exam

Theexam requirements are the homeworks OR a project. The student can choose to dothe exams either with NAO, B-Human framework OR with the robot MARRtino and theROS framework.

Introductionto Robotics

Fall2016

TA: Mr. Roi Yehoshua

Email:roiyeho@gmail.com

Courseweb site

Coursefrom semester Fall 2015

Notifications

13/4/17- The grades of ex.3 have been published.

9/3/17- The submission of ex.3 has been extended to 19/3/17. I have also updated thelaunch file of the exercise to include the amcl node for localization.

3/2/17- The grades of ex.2 have been published

1/2/17- Assignment no.3 has been published.

26/1/17- The submission of ex.2 has been extended to 29/1/17.

28/12/16- The grades of ex.1 have been published

25/12/16- The second assignment has been published.

20/12/16- The submission of ex.1 has been extended to 25/12/16.

7/12/16- The first assignment has been published. Good luck!

6/11/16- Welcome to the ROS tirgul website. Good luck in the semester!

Lectures

Slides  Topics Codedemos

Lecture1 

Introductionto ROS

ROScore concepts: nodes, topics, services and messages

ROSinstallation

ROSbasic commands

Lecture2 

catkinbuild system

IntegratingEclipse with ROS

Writingyour first node

Runningand debugging the node

hello.cpp

Lecture3 

ROStopics

Publishersand subscribers

Sendingvelocity commands to the robot

roslaunch

Creatingcustom messages

my_turtle.zip

Lecture4 

Gazebosimulator

Readingsensor data

Wander-bot

stopper.zip

Lecture5 

Mappingin ROS

ROSvisualization tool (rviz)

ROSServices

Loadingmap into memory

mapping.zip

Lecture6 

ROStransformation system (tf)

Getrobot's location on map

tf_demo.zip

Lecture7 

ROSnavigation stack

Navigationplanners

Costmaps

Sendinggoal commands

Lecture8 

ROSactions

Sendinggoals from code

Makingnavigation plans

send_goals.zip

Lecture9 

Createa 3D model of the robot

URDFand Xacro files

SDFmodel files

Lecture10

IntegratingOpenCV with ROS

Robotvision

Follow-bot

follow_bot.zip

Lecture11

Behavior-basedrobotics

Whereto go next?

Assignments

Assignment    Out     Due     Notes  Grades

Assignment1 7/12/16     25/12/16   Worth 10% of your final grade  Grades

Assignment2 25/12/16   29/1/17     Worth 15% of your final grade  Grades

Assignment3 1/2/17 19/3/17     Worth 15% of your final grade  Grades

Notes

ROSWiki

ROScheat sheet - Most used instructions

附录官方资料:

----ROS 2----

ROS 2

机器人操作系统(ROS)是一套软件库和工具,可帮助您构建机器人应用程序。从驱动程序到最先进的算法,以及功能强大的开发人员工具,ROS都可以为您的下一个机器人项目提供所需的内容。这都是开源的。

在这里,您将找到关于如何安装和使用ROS 2的软件的文档,ROS 2正在大力开发之中。请参阅下面有关ROS 2的更多信息。

如果您正在寻找有关ROS 1的信息(即,ROS已经存在10多年,现在可能会用到),请查看ROS网站文档wiki

在继续阅读之前,请阅读功能页面以了解当前ROS 2版本的内容。

安装

参阅请安装页面

教程和功能

ROS 2正在大力发展。您可以检查出的教程页面看到一系列的什么系统可以在当前状态下做的,如果它适合你的工程实例今天取决于具体的要求。有关当前功能的详细信息,请参阅功能

计划

ROS 2目前计划每六个月发布一个新版本(这是ROS 1的两倍),以便社区成员有机会提供有关不断发展的系统的早期反馈。有关即将推出的ROS 2功能的详细信息,请参阅路线图

约定

有关如何为ROS 2开发做出贡献的详细信息,请参阅贡献页面开发人员指南

报告或提出问题

查看联系页面

关于ROS 2

自2007年启动ROS以来,机器人和ROS社区发生了很大变化。ROS 2项目的目标是适应这些变化,充分利用ROS 1的优点,改进不是什么。有一个关于ROS 2的动机完整的文章在这里

在哪里可以找到更多信息

design.ros2.org上有关ROS 2设计的各种文章,例如:为什么要使用ROS 2.0?DDS上的ROS,以及ROS 1和ROS 2之间的变化

ROS 2的代码是开源的,分解成各种版本库。您可以在ros2 github组织中找到大多数存储库的代码。

docs.ros2.org包含有关ROS 2内部设计和组织的最新详细信息。

awesome-ros2是ROS 2软件包和资源的“备忘单”风格快速参考,它将获得(希望)在精选列表的列表中,以帮助GitHub用户了解ROS 2。

以下是关于ROS 2的ROSCon讲座,并提供了有关ROS 2和各种演示工作的信息:

标题

类型

链接

ROS 2推动机器人发展未来的愿景

ROSCon 2017演示文稿

幻灯片  /  视频

ROS 2更新 - alpha发布摘要,架构概述

ROSCon 2016演示文稿

幻灯片  /  视频

评估ROS2通信层的弹性

ROSCon 2016演示文稿

幻灯片  /  视频

ROS 2的状态 - 演示和背后的技术

ROSCon 2015演示文稿

幻灯片  /  视频

ROS 2在“小型”嵌入式系统上

ROSCon 2015演示文稿

幻灯片  /  视频

ROS和ROS 2.0中的实时控制

ROSCon 2015演示文稿

幻灯片  /  视频

你为什么要使用ROS 2

ROSCon 2014演示文稿

幻灯片  /  视频

下一代ROS:建立在DDS上

ROSCon 2014演示文稿

幻灯片  /  视频

-ROS 1-

ROS(Robot Operating System,机器人操作系统)提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象,设备驱动,函数库,可视化工具,消息传递和软件包管理等等功能.ROS遵循BSD开源许可协议。

ROS:

  • 安装
    • 在你的机器上安装ROS。

    入门

    • 学习ROS的相关概念,客户端函数库以及技术梗概等。

    教程

    • ROS手把手教程,提供每一步详细操作命令。

    贡献

    • 如何加入ROS社区,比如分享你的代码。

    支持

    • 遇到问题可以从这里寻求支持和帮助。

软件:

机器人/硬件:

出版物,课程以及活动:

  • 论文
    • 带开源代码的ROS相关论文。

    书籍

    • 出版书籍,包括文档,教程和开源代码等。

    课程

    • 使用或教授ROS的课程。

    活动

    • 历史活动和相关资料。

ROS中国:

世界各地维基它的镜像就是站点。

----

--------

十大机器人操作系统(ROS)书籍

作者: YUHONG LIN / 2017年9月4日,星期一 /  发表在 ROS

这篇文章展示了全世界现有的ROS书籍,包括最新版本和不同的语言版本:

(点击图片了解更多信息并购买图书)

  • 使用ROS进行机器人编程
  • ROS简要介绍
  • 学习机器人编程(ROS)- 第二版
  • 在5天掌握ROS
  • ROS Robotics By Example
  • ROS机器人工程项目实践
  • 掌握机器人编程(ROS)- 第二版
  • 机器人高效编程(ROS) - 第三版
  • 机器人操作系统(ROS):完整的参考
  • 使用ROS学习机器人编程的系统方法

ROS其他语言的资源:

  • 机器人操作系统测试技术(中文版)
  • ROS机器人编程 - 第二版(韩文版):ROS로봇프로그</s>
  • ROS机器人编程(日文版):免费PDF下载
  • ROS的机器人编程(日文版)ROSではじめるロボットプログランング
  • ROS机器人编程(韩文版)ROS编程编程
  • ROSBook KR(韩文)
  • ROS的简介(中文版)机器人操作系统(ROS)浅析
  • 基于ROS的机器人理论和应用
  • ROS机器人程序设计
  • 机器人操作系统ROS原理与应用
  • 开源机器人操作系统 - ROS

--------

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券