SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Rock - The Robot Construction Kit
http://rock-robotics.org
Sylvain Joyeux
DFKI Bremen - Forschungruppe Robotik
& Universit¨at Bremen
Director: Prof. Dr. Frank Kirchner
www.dfki.de/robotics
robotics@dfki.de
Who am I ?
Senior Researcher @DFKI Robotics Innovation Center in
Bremen
DFKI is a German public/private partnership for AI research
Focussing on architectures for long-term autonomy
⇒ quit the “demo robotics” state of mind
PhD: plan manager for multi-robot systems
DFKI
Intelligent Mobility: autonomous navigation in unknown,
unstructured, environments
Sauc-E, HROV: autonomous mission execution on AUVs.
Resp. student project and on an oceanographic AUV
Virgo4: long-term autonomy integrating learning methods
Now leader of the “Autonomy Team”
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 2/35
Rock: The Robot Construction Kit
Vizkit: Data Visualization
OpenSceneGraph, Qt, vtk
Data Logging And Replay
Very efficient logging
Long-term analysis and replay
Script-based system deployment
Distributed process management
Coordination
Script-based
Component Development
Component Development
oroGen workflow
all algorithms should be developed first in a
framework-independent library
rock-create-lib path/to/library
language of choice (currently): C++
you then integrate the library’s functionality into
component(s)
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 5/35
Component Development
Framework-independent libraries
Critical !
no one can predict the future of frameworks
⇒ the “hot” framework is ROS nowadays, was player three
years ago, what will it be in three years ?
industry / other partners will probably not want to use your
framework of choice
frameworks evolve
Fortunately
It is finally becoming the standard: OpenCV, OpenNI, PCL,
OpenRave, OMPL, Reflexxes, Gazebo, . . .
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 6/35
Component Development
Component interface
messages
message_driver/Message
message_producer::Task
message_driver::MessageDriver
config
message_driver/Config
messages
message_driver/Message
message_consumer::Task
message_driver::MessageDriver
connections: "route" data
between the component ports
Connected ports need to have
the same type
input ports: allow a
component to get data
produced by other
components
output port: used to
send data to other
components
properties store configuration
values for the task
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 7/35
Component Development
Component description
task context ’BaseTask’ do
output port(’solution’, ’/gps/Solution’).
doc "the GPS solution as reported by the hardware"
output port(’position_samples’, ’/base/samples/RigidBodyState’).
doc "computed position in m"
error states :IO ERROR, :IO TIMEOUT
property("utm_zone", "int", 32).
doc "UTM zone for conversion of WGS84 to UTM"
end
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 8/35
Component Development
Type description
a subset of C++
helps integrating oroGen-free libraries
⇒ no convertions / bindings necessary
namespace tutorials {
struct Msg {
std::string value;
};
}
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 9/35
Component Development
What is so special about it ?
separation between description and code
⇒ easy to discover other people’s components
hard-realtime compatible
RTT core is “only” a component model and supporting
infrastructure. Independent of any communication layer
“main” communication layer is CORBA. Full support for
data flow on ROS and POSIX message queues. Some
support for YARP.
can talk to multiple communication layers at the same time
Stopped Running
FatalError
RuntimeError
PreOperational
Output
ports
Input
ports
Properties
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 10/35
Component Development
Highlights
What you get for free is
dynamic reconfiguration
run what you need when you need it
component monitoring
error recovery
coordination
deployment-time choices
⇒ components can be deployed in the same thread, same
process or in different processes depending on your
application
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 11/35
Basic Services
Data Logging And Replay
Very efficient logging
Long-term analysis and replay
Basic Services
Logging
Low-overhead: 5% CPU for a whole system, from 1kHz
control loop ( 5 components) to high-level stereo
processing
Self-contained: a log file is all you need to read the data
⇒ guarantee to re-read years-old data
Future-proof: rock-convert “upgrades” old log files for
which data types changed
⇒ can reuse old datasets to test new / visualize new code
Interoperable: convertion tool to HDF5 for e.g. Matlab
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 13/35
Basic Services
vizkit: Log Replay / Data Visualization
visualization of log files
“replay” log data into components
⇒ test components
⇒ regression testing
Video
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 14/35
Basic Services
GUI Design
can open standalone widgets / 3D views from task browser
/ log browser
⇒ ideal for one-shot data analysis sessions
all widgets are standard Qt widgets
⇒ can be used to design complete GUIs, e.g. using Qt
Designer
design GUIs, bind it using vizkit
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 15/35
Data Processing Helpers
Data Processing Helpers
stream aligner: the problem
0 10 20 30 40
t(ms)
Sensor Acquisition - when the sensor reads a value originating from the real world
Lidar, period=25ms
Cameras, period=17ms (60fps)
Motion Tracker
1 2 3 4 5
1 2
1 2
1 2
Servo, period=10ms
1 2 3
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 17/35
Data Processing Helpers
stream aligner: the problem
0 10 500 510
t(ms)
Sensor Processing - when samples arrive, are processed, and leave components
1
1
1
1
Laser
Filter
1
1
1
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 18/35
Data Processing Helpers
stream aligner: latency
realigning adds latency
⇒ you have to wait to know which samples can be safely
processed
concept of lookahead
⇒ add more information to improve the latency situation
0 10
1
1
Laser
Filter
0 10
1
1
Laser
Filter
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 19/35
Data Processing Helpers
transformer
extension to the stream aligner concept
computes arbitrary geometric transformations between
frames
aligns (in time) the computed transformations with other
data streams
optionally interpolates
distributed: one component only gets what it needs
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 20/35
Scripting-based execution
Scripting-based execution
Ruby-based scripting
gives access to all components
gives access to processes
⇒ can detect when a process crashes
gives access to ROS nodes / log files
⇒ integrate ROS / Rock and log files seamlessly
Ideal for small-scale testing
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 22/35
Scripting-based execution
Example
require ’orocos’
Orocos.initialize
Orocos.run ’message_consumer::Task’ => ’message_consumer’,
’message_producer::Task’ => ’message_producer’ do
producer = Orocos.name service.get ’message_producer’
consumer = Orocos.name service.get ’message_consumer’
producer.messages.connect to consumer.messages
producer.configure
producer.start
consumer.configure
consumer.start
Orocos.watch(producer, consumer)
end
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 23/35
System Integration
System Integration
Real-World Systems
are always more complex than we originally think
how to safely reuse (parts of) component networks ?
how to simply combine different subsystems ?
⇒ since they often share some subparts
how to do systematic error monitoring and error recovery
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 25/35
System Integration
The Concept: System Design
Subsystem Composition
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 26/35
System Integration
The Concept: System Monitoring
Hierarchy
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 27/35
System Integration
Highlights
offline system design
⇒ can design integrated systems without writing a single
component
can manage multi-host systems transparently
high-level runtime coordination
⇒ can arbitrarily and safely switch between behaviours
extensive logging and display
⇒ logs the whole system view
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 28/35
System Integration
The Means
syskit can be used as soon as oroGen is used
no need to “think syskit” from the very beginning
. . . but it remains available when the complexity grows
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 29/35
System Integration
Results: An Overview
In the end
bachelor students are able to use syskit
⇒ it is complex, but not that much
promotes separation of roles: many algorithm developers,
one or two system integrators
proved incredibly useful on real-world systems
Sauc-E 2011 Intelligent Mobility Final
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 30/35
Conclusion
Conclusion
Scalability
At the level of computing power required
⇒ multi-host, multi-process deployments down to
single-threaded, no-overhead deployments
⇒ run only what is needed at a certain point in time
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 32/35
Conclusion
Scalability
At the level of system complexity
use either command-line tools or (very simple) ruby scripts
for small systems
use model-based deployments when the complexity grows
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 33/35
Conclusion
Framework-independent Workflow
the “code libraries first, integrate later” workflow is an
integral part of Rock
can very easily integrate external libraries without any
modifications
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 34/35
Conclusion
A Proven Framework
we don’t reinvent the wheel(s)
⇒ reuse as much as we can when it makes sense
based on Orocos/RTT, which is a component
implementation used in a variety of systems including in
industry
Rock - The Robot Construction Kit http://rock-robotics.org
May 3, 2013 35/35

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (11)

Robo arm final 2 (2)
Robo arm final  2 (2)Robo arm final  2 (2)
Robo arm final 2 (2)
 
Agricultural Robotics
Agricultural RoboticsAgricultural Robotics
Agricultural Robotics
 
Servo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project ReportServo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project Report
 
FARM PLAN MODELS Of INTEGRATED FARMING SYSTEM For Small and Marginal Farmers
FARM PLAN MODELS  Of INTEGRATED FARMING SYSTEM For Small and Marginal FarmersFARM PLAN MODELS  Of INTEGRATED FARMING SYSTEM For Small and Marginal Farmers
FARM PLAN MODELS Of INTEGRATED FARMING SYSTEM For Small and Marginal Farmers
 
pick-and-place-robot
pick-and-place-robotpick-and-place-robot
pick-and-place-robot
 
Farming system
Farming systemFarming system
Farming system
 
Wireless robot ppt
Wireless robot pptWireless robot ppt
Wireless robot ppt
 
State of Robotics 2015
State of Robotics 2015State of Robotics 2015
State of Robotics 2015
 
Why Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your ShellWhy Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your Shell
 
Basics of Robotics
Basics of RoboticsBasics of Robotics
Basics of Robotics
 
Agricultural robot
Agricultural robotAgricultural robot
Agricultural robot
 

Ähnlich wie Rock Overview

I want to be a Data DJ!
I want to be a Data DJ!I want to be a Data DJ!
I want to be a Data DJ!Paul Groth
 
Apache Flink London Meetup - Let's Talk ML on Flink
Apache Flink London Meetup - Let's Talk ML on FlinkApache Flink London Meetup - Let's Talk ML on Flink
Apache Flink London Meetup - Let's Talk ML on FlinkStavros Kontopoulos
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody Garnett
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?ArangoDB Database
 
Open Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationOpen Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationIntel Corporation
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE
 
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...Modeling and Simulation of Parallel and Distributed Computing Systems with Si...
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...Rafael Ferreira da Silva
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...GetInData
 
Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Aysylu Greenberg
 
ROS-Industrial Community Forum 12-5-13
ROS-Industrial Community Forum 12-5-13ROS-Industrial Community Forum 12-5-13
ROS-Industrial Community Forum 12-5-13Clay Flannigan
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataGetInData
 
It's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowIt's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowKen Mugrage
 
PDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansPDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansThomas Paviot
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Chris Grundemann
 
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...TelecomValley
 

Ähnlich wie Rock Overview (20)

I want to be a Data DJ!
I want to be a Data DJ!I want to be a Data DJ!
I want to be a Data DJ!
 
Apache Flink London Meetup - Let's Talk ML on Flink
Apache Flink London Meetup - Let's Talk ML on FlinkApache Flink London Meetup - Let's Talk ML on Flink
Apache Flink London Meetup - Let's Talk ML on Flink
 
resume
resumeresume
resume
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
A knowledge-based solution for automatic mapping in component based automat...
A knowledge-based solution for  automatic mapping in component  based automat...A knowledge-based solution for  automatic mapping in component  based automat...
A knowledge-based solution for automatic mapping in component based automat...
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
Open Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationOpen Cloud Computing Interface Presentation
Open Cloud Computing Interface Presentation
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...Modeling and Simulation of Parallel and Distributed Computing Systems with Si...
Modeling and Simulation of Parallel and Distributed Computing Systems with Si...
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
First Bucharest GTUG event 02 Mar 2010
First Bucharest GTUG event 02 Mar 2010First Bucharest GTUG event 02 Mar 2010
First Bucharest GTUG event 02 Mar 2010
 
Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)
 
ROS-Industrial Community Forum 12-5-13
ROS-Industrial Community Forum 12-5-13ROS-Industrial Community Forum 12-5-13
ROS-Industrial Community Forum 12-5-13
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
It's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowIt's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right Now
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
PDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansPDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plans
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
Distributed fun with etcd
Distributed fun with etcdDistributed fun with etcd
Distributed fun with etcd
 
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
 

Kürzlich hochgeladen

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Rock Overview

  • 1. Rock - The Robot Construction Kit http://rock-robotics.org Sylvain Joyeux DFKI Bremen - Forschungruppe Robotik & Universit¨at Bremen Director: Prof. Dr. Frank Kirchner www.dfki.de/robotics robotics@dfki.de
  • 2. Who am I ? Senior Researcher @DFKI Robotics Innovation Center in Bremen DFKI is a German public/private partnership for AI research Focussing on architectures for long-term autonomy ⇒ quit the “demo robotics” state of mind PhD: plan manager for multi-robot systems DFKI Intelligent Mobility: autonomous navigation in unknown, unstructured, environments Sauc-E, HROV: autonomous mission execution on AUVs. Resp. student project and on an oceanographic AUV Virgo4: long-term autonomy integrating learning methods Now leader of the “Autonomy Team” Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 2/35
  • 3. Rock: The Robot Construction Kit Vizkit: Data Visualization OpenSceneGraph, Qt, vtk Data Logging And Replay Very efficient logging Long-term analysis and replay Script-based system deployment Distributed process management Coordination Script-based
  • 5. Component Development oroGen workflow all algorithms should be developed first in a framework-independent library rock-create-lib path/to/library language of choice (currently): C++ you then integrate the library’s functionality into component(s) Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 5/35
  • 6. Component Development Framework-independent libraries Critical ! no one can predict the future of frameworks ⇒ the “hot” framework is ROS nowadays, was player three years ago, what will it be in three years ? industry / other partners will probably not want to use your framework of choice frameworks evolve Fortunately It is finally becoming the standard: OpenCV, OpenNI, PCL, OpenRave, OMPL, Reflexxes, Gazebo, . . . Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 6/35
  • 7. Component Development Component interface messages message_driver/Message message_producer::Task message_driver::MessageDriver config message_driver/Config messages message_driver/Message message_consumer::Task message_driver::MessageDriver connections: "route" data between the component ports Connected ports need to have the same type input ports: allow a component to get data produced by other components output port: used to send data to other components properties store configuration values for the task Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 7/35
  • 8. Component Development Component description task context ’BaseTask’ do output port(’solution’, ’/gps/Solution’). doc "the GPS solution as reported by the hardware" output port(’position_samples’, ’/base/samples/RigidBodyState’). doc "computed position in m" error states :IO ERROR, :IO TIMEOUT property("utm_zone", "int", 32). doc "UTM zone for conversion of WGS84 to UTM" end Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 8/35
  • 9. Component Development Type description a subset of C++ helps integrating oroGen-free libraries ⇒ no convertions / bindings necessary namespace tutorials { struct Msg { std::string value; }; } Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 9/35
  • 10. Component Development What is so special about it ? separation between description and code ⇒ easy to discover other people’s components hard-realtime compatible RTT core is “only” a component model and supporting infrastructure. Independent of any communication layer “main” communication layer is CORBA. Full support for data flow on ROS and POSIX message queues. Some support for YARP. can talk to multiple communication layers at the same time Stopped Running FatalError RuntimeError PreOperational Output ports Input ports Properties Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 10/35
  • 11. Component Development Highlights What you get for free is dynamic reconfiguration run what you need when you need it component monitoring error recovery coordination deployment-time choices ⇒ components can be deployed in the same thread, same process or in different processes depending on your application Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 11/35
  • 12. Basic Services Data Logging And Replay Very efficient logging Long-term analysis and replay
  • 13. Basic Services Logging Low-overhead: 5% CPU for a whole system, from 1kHz control loop ( 5 components) to high-level stereo processing Self-contained: a log file is all you need to read the data ⇒ guarantee to re-read years-old data Future-proof: rock-convert “upgrades” old log files for which data types changed ⇒ can reuse old datasets to test new / visualize new code Interoperable: convertion tool to HDF5 for e.g. Matlab Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 13/35
  • 14. Basic Services vizkit: Log Replay / Data Visualization visualization of log files “replay” log data into components ⇒ test components ⇒ regression testing Video Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 14/35
  • 15. Basic Services GUI Design can open standalone widgets / 3D views from task browser / log browser ⇒ ideal for one-shot data analysis sessions all widgets are standard Qt widgets ⇒ can be used to design complete GUIs, e.g. using Qt Designer design GUIs, bind it using vizkit Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 15/35
  • 17. Data Processing Helpers stream aligner: the problem 0 10 20 30 40 t(ms) Sensor Acquisition - when the sensor reads a value originating from the real world Lidar, period=25ms Cameras, period=17ms (60fps) Motion Tracker 1 2 3 4 5 1 2 1 2 1 2 Servo, period=10ms 1 2 3 Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 17/35
  • 18. Data Processing Helpers stream aligner: the problem 0 10 500 510 t(ms) Sensor Processing - when samples arrive, are processed, and leave components 1 1 1 1 Laser Filter 1 1 1 Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 18/35
  • 19. Data Processing Helpers stream aligner: latency realigning adds latency ⇒ you have to wait to know which samples can be safely processed concept of lookahead ⇒ add more information to improve the latency situation 0 10 1 1 Laser Filter 0 10 1 1 Laser Filter Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 19/35
  • 20. Data Processing Helpers transformer extension to the stream aligner concept computes arbitrary geometric transformations between frames aligns (in time) the computed transformations with other data streams optionally interpolates distributed: one component only gets what it needs Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 20/35
  • 22. Scripting-based execution Ruby-based scripting gives access to all components gives access to processes ⇒ can detect when a process crashes gives access to ROS nodes / log files ⇒ integrate ROS / Rock and log files seamlessly Ideal for small-scale testing Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 22/35
  • 23. Scripting-based execution Example require ’orocos’ Orocos.initialize Orocos.run ’message_consumer::Task’ => ’message_consumer’, ’message_producer::Task’ => ’message_producer’ do producer = Orocos.name service.get ’message_producer’ consumer = Orocos.name service.get ’message_consumer’ producer.messages.connect to consumer.messages producer.configure producer.start consumer.configure consumer.start Orocos.watch(producer, consumer) end Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 23/35
  • 25. System Integration Real-World Systems are always more complex than we originally think how to safely reuse (parts of) component networks ? how to simply combine different subsystems ? ⇒ since they often share some subparts how to do systematic error monitoring and error recovery Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 25/35
  • 26. System Integration The Concept: System Design Subsystem Composition Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 26/35
  • 27. System Integration The Concept: System Monitoring Hierarchy Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 27/35
  • 28. System Integration Highlights offline system design ⇒ can design integrated systems without writing a single component can manage multi-host systems transparently high-level runtime coordination ⇒ can arbitrarily and safely switch between behaviours extensive logging and display ⇒ logs the whole system view Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 28/35
  • 29. System Integration The Means syskit can be used as soon as oroGen is used no need to “think syskit” from the very beginning . . . but it remains available when the complexity grows Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 29/35
  • 30. System Integration Results: An Overview In the end bachelor students are able to use syskit ⇒ it is complex, but not that much promotes separation of roles: many algorithm developers, one or two system integrators proved incredibly useful on real-world systems Sauc-E 2011 Intelligent Mobility Final Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 30/35
  • 32. Conclusion Scalability At the level of computing power required ⇒ multi-host, multi-process deployments down to single-threaded, no-overhead deployments ⇒ run only what is needed at a certain point in time Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 32/35
  • 33. Conclusion Scalability At the level of system complexity use either command-line tools or (very simple) ruby scripts for small systems use model-based deployments when the complexity grows Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 33/35
  • 34. Conclusion Framework-independent Workflow the “code libraries first, integrate later” workflow is an integral part of Rock can very easily integrate external libraries without any modifications Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 34/35
  • 35. Conclusion A Proven Framework we don’t reinvent the wheel(s) ⇒ reuse as much as we can when it makes sense based on Orocos/RTT, which is a component implementation used in a variety of systems including in industry Rock - The Robot Construction Kit http://rock-robotics.org May 3, 2013 35/35