Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion
Robotic Exploration and Mapping with Pharo Johann Dichtl, Luc - - PowerPoint PPT Presentation
Robotic Exploration and Mapping with Pharo Johann Dichtl, Luc - - PowerPoint PPT Presentation
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Robotic Exploration and Mapping with Pharo Johann Dichtl, Luc Fabresse, and Noury Bouraqadi IMT Lille Douai, France Mai 18, 2017 Introduction to
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion
Table of Contents
1
Introduction to Localization and Mapping
2
ROS & PhaROS
3
Developing in Pharo
4
Conclusion
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 2/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion What is SLAM? Our robots
Introduction to Localization and Mapping
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 3/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion What is SLAM? Our robots
What is SLAM?
Simultaneous Localization And Mapping (SLAM) A chicken–and–egg problem: to locate ourself, we need a map to create/update a map, we need to know our location
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 4/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion What is SLAM? Our robots
Robots in our lab:
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 5/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion What is SLAM? Our robots Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 6/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 7/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
What is the Robot Operation System (ROS)? ROS is: the de-facto standard middleware used in robotics written in C++ and Python provides an architecture with a central control structure has a modular design, build on nodes
- rganizes data flow via topics
supports distribute systems
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 8/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
Example architecture of a ROS system
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 9/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
Inter–node communication
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 10/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
Two systems with one common master
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 11/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion ROS PhaROS
ROS & PhaROS
PhaROS allows us to use Pharo within the ROS framework to: create nodes (written in Pharo) use topics to transmit and receive data
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 12/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 13/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Our setup: Pharo 5 (+latest PhaROS) Linux (Ubuntu 16.04 LTS) ROS kinetic
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 14/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
What is different when working in robotics? working with hardware (robots) and simulations heterogenous systems distributed systems
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 15/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Limitations in Pharo and how to deal with them multithreading support linear algebra / matrices no 32bit floats
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 16/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Multithreading support Pharo supports multiple threads, but only uses a single CPU core. split the node into multiple smaller nodes, running each node in its own image communication between nodes requires (de-)serialization
- f objects
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 17/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Linear algebra & matrices Only basic support for linear algebra. DhbMatrix as basis extensions by us, for example to compute eigen vectors & values Geometry utility classes in PhaROS
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 18/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Testing visual debugging also test on real robots
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 19/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Visual debugging
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 20/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Developing in Pharo
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 21/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Bugs
Bugs in Pharo Athens: random freezes Rectangle #center message
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 22/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Rectangle bug
Rectangle #center message Code example: rect := Rectangle
- r i g i n :
0.2@0.2 corner : 0.8@0. 8 . center := rect center . rect containsPoint : center . ” false ”
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 23/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Rectangle bug
What happened? #center answers with the coordinates floored to the next
- integer. In our example the result is 0@0, which is indeed
- utside of the rectangle.
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 24/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Rectangle bug
How to fix it? First try: fix the #center message.
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 25/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Rectangle bug
Result: broke some GUI code with the bugfix
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 26/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Working in robotics Limitations Testing Bugs
Rectangle bug
Second try: derive new class from Rectangle and fix there Result: works, but requires some refactoring in our code Tracker link: https://pharo.fogbugz.com/f/cases/20015
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 27/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Conclusion Future work
Conclusion
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 28/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Conclusion Future work
Conclusion
robotics with Pharo is quite doable performance can be limiting in pharo
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 29/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Conclusion Future work
Future work
automated tests with the full setup working with multiple robots at once
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 30/31
Introduction to Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Conclusion Future work
Thanks for listening! Any questions?
Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 31/31