Robotic Exploration and Mapping with Pharo Johann Dichtl, Luc - - PowerPoint PPT Presentation

robotic exploration and mapping with pharo
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29

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

slide-30
SLIDE 30

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

slide-31
SLIDE 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