the robot operating system ros
play

The Robot Operating System (ROS) Introduction, Concepts and - PowerPoint PPT Presentation

Robotics Research Group Politecnico di Torino The Robot Operating System (ROS) Introduction, Concepts and Examples Stefano Rosa, 8/5/2015 Mobile robotics Robotics Service robotics Service robotics Industrial robotics Exploration robotics


  1. Robotics Research Group Politecnico di Torino The Robot Operating System (ROS) Introduction, Concepts and Examples Stefano Rosa, 8/5/2015

  2. Mobile robotics Robotics Service robotics Service robotics Industrial robotics Exploration robotics Professional Professional Personal Personal Mobile robotics

  3. Robot navigation Mobile robotics Autonomous navigation Human-robot interaction Localization … Mapping Path planning

  4. Robot navigation Mobile robotics Autonomous navigation Human-robot interaction Localization … Mapping Path planning

  5. Robot localization • is the problem of estimating the robot pose in a given map using odometry and sensors measurements • Different map representations • landmark-based maps • occupancy grid-maps • Different techniques • Markov localization • Monte Carlo Localization

  6. Robot localization • Wheel odometry affected by noise , error accumulates over time (drift) • So we estimate the pose of the robot based on past controls and measurements • Model the robot pose and the uncertainty with a Deterministic Probabilistic probability density (belief)

  7. Monte Carlo localization • The robot pose is estimated using particle filters • set of weighted samples to approximate the robot pose belief • Iteration of three steps • Prediction - Update - Resampling • Number of needed particles can vary over time (Adaptive resampling) n n ! " ( ) [ ] i ˆ [ ] i [ ] i 1 bel p p p ( ) ∑ ω δ ∑ ω = ≈ − # $ t t t t t % & i = 1 i 1 =

  8. Robot navigation Mobile robotics Autonomous navigation Human-robot interaction Localization … Mapping Path planning

  9. Simultaneous Localization and Mapping (SLAM) • the problem of estimating both robot pose and the map • in an unknown environment • Different map representations • landmark-based maps … • occupancy grid-maps • Different techniques • Rao-Blackwellized particle filters • Grap-based SLAM …

  10. SLAM vs Mapping Real map Mapping

  11. SLAM vs Mapping Real map SLAM

  12. Robot navigation Mobile robotics Autonomous navigation Human-robot interaction Localization … Mapping Path planning

  13. Path planning • Path planning for mobile robots usually defines the problem of finding and following a feasible trajectory • from the current pose • to a “goal” pose • in a given map • Different techniques • 2D • 3D • optimal vs heuristic…

  14. What is ROS? • R obot O perating S ystem • Framework for robot software development • which also has OS-like functionality: • Hardware abstraction / drivers • Message passing between processes • Package management • Huge community of developers: • Open source, lots of freely available packages!

  15. What is ROS? • It’s called a meta-operating system • Bindings for many languages: • C++ , Python , Java, Javascript, Matlab • Supported architectures: • Suggested: Ubuntu Linux • Partial support for: MacOSX, Windows

  16. ROS release history End-of-life Box Turtle (03-2010) Indigo (current) (05-2014) Jade (next) Current (05-2015)

  17. Robots Using ROS And lots more…

  18. ROS package management • Release : collection of stacks and packages • like a Linux distribution • Stack : a full application suite • Package : group of nodes that implements a service Big community of developers (universities, industries…)

  19. Overview of ROS components • Master : called “roscore”, it’s the centralized manager (name registration and lookup) • Node : an executable which implements a basic functionality (it’s the actual code). Nodes can communicate between each other via ROS messages • Message : data exchanged by the nodes • Topic : channel over which messages are sent • Service : similar to Remote Procedure Call (RPC) • Parameter service : server that stores parameters for the nodes (useful for tuning your algorithms)

  20. Starting the ROS master • roscore is the command used to start the ROS master • ROS master must be start before any other node • example: • roscore Example

  21. Bring up ROS nodes • rosrun runs a node within a package • usage: rosrun [package_name] [node_name] • example: • rosrun turtlesim turtlesim_node • rosrun turtlesim turtle_teleop_key Example

  22. Bring up ROS nodes (2) • Several nodes can be launched at the same time using roslaunch command • roslaunch package-name launcher.launch • roslaunch starts a set of nodes with custom parameters using an XML description: <launch> <group ns="turtlesim1"> <node pkg="turtlesim" name="sim" type="turtlesim_node"/> </group> <group ns="turtlesim2"> <node pkg="turtlesim" name="sim" type="turtlesim_node"/> </group> <node pkg="turtlesim" name="mimic" type="mimic"> <remap from="input" to="turtlesim1/turtle1"/> <remap from="output" to="turtlesim2/turtle1"/> </node> </launch>

  23. Topics • Represent communication channels over which data is sent. • Each node can listen or publish on a topic • Nodes send messages over a topic • A message can be anything and is defined in a file: # this is a very useful comment! float64 myDouble string myString float64[] myArrayOfDouble

  24. Messages • ROS is distributed and asynchronous ! • any node can publish messages at any time, and nodes can reside on different machines… • need synchronization for messages • each message is timestamped with the time at which it is created!

  25. Example • Two nodes • talker • listener • One topic • /chatter

  26. Using topics • rostopic is a command-line tool for printing information about ROS topics • it can also publish messages on topics or filter messages • example: • rostopic list • rostopic echo /turtle1/pose Example

  27. ROS services • Services are like remote procedure calls (RPCs) • Nodes can implement a service or call an existing service • Services can have input parameters and give back a result • example: • rosservice list • rosservice call /kill turtle1 • rosservice call /reset Example

  28. What is Tf? • A coordinate frame tracking system • for publishing roto- translations between frames of reference • tree of transformations • conversion functions,

  29. Tf is distributed • Two types of tf nodes: publishers and listeners • No central source of information, each node can publish transforms on tf

  30. ROS Tools • There is more to it… • Tools for analysis, debugging • And visualization • Live message view • Recording and playback • and more…

  31. ROS Tools • rqt is a plugin-based GUI with some tools: • introspection • logging • services • topics • visualization • rviz is the 3D visualization tool for ROS

  32. Build packages with catkin • catkin is the build system for ROS • makes it more efficient to build package(s) • makes your packages standard compliant, reusable by others! • catkin is based on CMake • catkin=cmake+ROS

  33. Build packages with catkin • catkin utilizes packaging conventions • find_package() for finding ROS dependencies • pkg-config for finding system dependencies • extends CMake with some "nice to have" features like • enables to use packages after building (without installation) • generates find_package() code for your package • generates pkg-config files for your package • handles build order of multiple packages • handles dependencies

  34. Overview of catkin packages • package.xml • contains meta-information about the package • name, description, version, maintainer, etc… • CMakeLists.txt • the CMake file for building the package • reads the package.xml • finds and include dependencies

  35. Overview of catkin packages • Directory layout of a package • Sources • include/ (include files) • src/ (C++ source files) • ROS folders • msg/ (messages definitions) • srv/ (services definitions) • launch/ (launch files) • scripts/ (Python scripts) • example: • catkin_create_pkg example roscpp Example

  36. Simulators in ROS • Robotic simulators are important • for fast prototyping • to test algorithm before actual deployment on real robots • Perfect simulator: • uses physics engine for realistic simulations • the code can be used on the real platforms without modifications

  37. Simulators in ROS • 2D simulator: • Stage simulator (from Player/Stage library) • 3D simulator: • Gazebo simulator • V-REP (not open source, ROS compatibility)

  38. �������� ����������� �����������

  39. ���������

  40. ������������ �������������� ������ �������� ������������ ������������ ���������� ���������� ������

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend