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官網找到對應章節內容進行學習:topic、service、action。
感知篇:機器人要實現自動控制,感知是必不可少的重要內容。書中介紹在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 官方網站和源碼 ROS和Github
? ??
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不同發行版本。
軟件包
- 查找幾千個可用的軟件包。
核心庫
- 按編程語言和主題劃分的API。
常用工具
- 開發或調試ROS應用程序時的常用工具。
機器人/硬件:
-
機器人
- 支持ROS的機器人平臺。
傳感器
- 兼容ROS的傳感器驅動。
出版物,課程以及活動:
-
論文
- 帶開源代碼的ROS相關論文。
書籍
- 出版書籍,包括文檔,教程和開源代碼等。
課程
- 使用或教授ROS的課程。
活動
- 歷史活動和相關資料。
ROS中國:
-
中文社區
- 收集了ROS相關QQ群,論壇和博客專欄等各種社區資源。
-
國產機器人平臺
- 收集了支持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
?
?
?
?
--------
?
總結
以上是生活随笔為你收集整理的ROS(1和2)机器人操作系统相关书籍、资料和学习路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python核心编程第三版(一)学习笔记
- 下一篇: Windows11跳过联网激活方法