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. ������������ �������������� ������ �������� ������������ ������������ ���������� ���������� ������

Recommend


More recommend