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 Localization and Mapping ROS & PhaROS Developing in Pharo Conclusion Table of Contents Introduction to Localization and Mapping 1 ROS & PhaROS 2 3 Developing in Pharo Conclusion 4 Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 2/31
Introduction to Localization and Mapping ROS & PhaROS What is SLAM? Developing in Pharo Our robots Conclusion 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 What is SLAM? Developing in Pharo Our robots Conclusion 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 What is SLAM? Developing in Pharo Our robots Conclusion 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 What is SLAM? Developing in Pharo Our robots Conclusion Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 6/31
Introduction to Localization and Mapping ROS & PhaROS ROS Developing in Pharo PhaROS Conclusion ROS & PhaROS Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 7/31
Introduction to Localization and Mapping ROS & PhaROS ROS Developing in Pharo PhaROS Conclusion 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 organizes 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 ROS Developing in Pharo PhaROS Conclusion 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 ROS Developing in Pharo PhaROS Conclusion 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 ROS Developing in Pharo PhaROS Conclusion 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 ROS Developing in Pharo PhaROS Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion Bugs Developing in Pharo Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 13/31
Introduction to Localization and Mapping Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 of objects Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 17/31
Introduction to Localization and Mapping Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion Bugs Developing in Pharo Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 21/31
Introduction to Localization and Mapping Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion Bugs Rectangle bug Rectangle #center message Code example: rect := Rectangle o 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 outside of the rectangle. Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 24/31
Introduction to Localization and Mapping Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Working in robotics ROS & PhaROS Limitations Developing in Pharo Testing Conclusion 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 Conclusion Developing in Pharo Future work Conclusion Conclusion Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 28/31
Introduction to Localization and Mapping ROS & PhaROS Conclusion Developing in Pharo Future work Conclusion 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
Recommend
More recommend