SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
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
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
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
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
of 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 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
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
outside 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

Mais conteúdo relacionado

Semelhante a Robotic Exploration and Mapping with Pharo

PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and FutureESUG
 
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...South Tyrol Free Software Conference
 
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...South Tyrol Free Software Conference
 
BLE_Indoor_Report
BLE_Indoor_ReportBLE_Indoor_Report
BLE_Indoor_ReportTianhao Li
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & KubernetesGlobant
 

Semelhante a Robotic Exploration and Mapping with Pharo (6)

PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and Future
 
NAO_Poster
NAO_PosterNAO_Poster
NAO_Poster
 
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...
SFScon19 - Camilla Follini - Rapid Robotic Application Prototyping with the R...
 
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...
SFScon 2020 - Davide Ricci - FOSS management and license compliance must come...
 
BLE_Indoor_Report
BLE_Indoor_ReportBLE_Indoor_Report
BLE_Indoor_Report
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & Kubernetes
 

Mais de Pharo

Yesplan: 10 Years later
Yesplan: 10 Years laterYesplan: 10 Years later
Yesplan: 10 Years laterPharo
 
Object-Centric Debugging: a preview
Object-Centric Debugging: a previewObject-Centric Debugging: a preview
Object-Centric Debugging: a previewPharo
 
The future of testing in Pharo
The future of testing in PharoThe future of testing in Pharo
The future of testing in PharoPharo
 
Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI Pharo
 
UI Testing with Spec
 UI Testing with Spec UI Testing with Spec
UI Testing with SpecPharo
 
Pharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo
 
PHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPharo
 
Easy REST with OpenAPI
Easy REST with OpenAPIEasy REST with OpenAPI
Easy REST with OpenAPIPharo
 
Comment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowlComment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowlPharo
 
apart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorksapart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorksPharo
 
Welcome: PharoDays 2017
Welcome: PharoDays 2017Welcome: PharoDays 2017
Welcome: PharoDays 2017Pharo
 
Pharo VM Performance
Pharo VM PerformancePharo VM Performance
Pharo VM PerformancePharo
 
Git with Style
Git with StyleGit with Style
Git with StylePharo
 
Pharo JS
Pharo JSPharo JS
Pharo JSPharo
 
Seaside & ReactJS
Seaside & ReactJSSeaside & ReactJS
Seaside & ReactJSPharo
 
Material Design and Seaside
Material Design and SeasideMaterial Design and Seaside
Material Design and SeasidePharo
 
Calypso Browser
Calypso BrowserCalypso Browser
Calypso BrowserPharo
 
Pharo 7: The key challenges
Pharo 7: The key challengesPharo 7: The key challenges
Pharo 7: The key challengesPharo
 
An introduction to the CARGO package manager
An introduction to the CARGO package managerAn introduction to the CARGO package manager
An introduction to the CARGO package managerPharo
 
gt4gemstone
gt4gemstonegt4gemstone
gt4gemstonePharo
 

Mais de Pharo (20)

Yesplan: 10 Years later
Yesplan: 10 Years laterYesplan: 10 Years later
Yesplan: 10 Years later
 
Object-Centric Debugging: a preview
Object-Centric Debugging: a previewObject-Centric Debugging: a preview
Object-Centric Debugging: a preview
 
The future of testing in Pharo
The future of testing in PharoThe future of testing in Pharo
The future of testing in Pharo
 
Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI
 
UI Testing with Spec
 UI Testing with Spec UI Testing with Spec
UI Testing with Spec
 
Pharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alpha
 
PHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous Integration
 
Easy REST with OpenAPI
Easy REST with OpenAPIEasy REST with OpenAPI
Easy REST with OpenAPI
 
Comment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowlComment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowl
 
apart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorksapart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorks
 
Welcome: PharoDays 2017
Welcome: PharoDays 2017Welcome: PharoDays 2017
Welcome: PharoDays 2017
 
Pharo VM Performance
Pharo VM PerformancePharo VM Performance
Pharo VM Performance
 
Git with Style
Git with StyleGit with Style
Git with Style
 
Pharo JS
Pharo JSPharo JS
Pharo JS
 
Seaside & ReactJS
Seaside & ReactJSSeaside & ReactJS
Seaside & ReactJS
 
Material Design and Seaside
Material Design and SeasideMaterial Design and Seaside
Material Design and Seaside
 
Calypso Browser
Calypso BrowserCalypso Browser
Calypso Browser
 
Pharo 7: The key challenges
Pharo 7: The key challengesPharo 7: The key challenges
Pharo 7: The key challenges
 
An introduction to the CARGO package manager
An introduction to the CARGO package managerAn introduction to the CARGO package manager
An introduction to the CARGO package manager
 
gt4gemstone
gt4gemstonegt4gemstone
gt4gemstone
 

Último

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Último (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

Robotic Exploration and Mapping with Pharo

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 organizes data flow via topics supports distribute systems Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 8/31
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 of objects Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 17/31
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 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
  • 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 outside of the rectangle. Johann Dichtl, Luc Fabresse, and Noury Bouraqadi Robotic Exploration and Mapping with Pharo 24/31
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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