Requirements for Interoperability and Seamless Integration of - - PowerPoint PPT Presentation

requirements for interoperability and seamless
SMART_READER_LITE
LIVE PREVIEW

Requirements for Interoperability and Seamless Integration of - - PowerPoint PPT Presentation

Interoperability F INROC F INROC and R OS Experiments Appendix Requirements for Interoperability and Seamless Integration of Different Robotic Frameworks Michael Arndt, Max Reichardt Robotics Research Lab Department of Computer Science


slide-1
SLIDE 1

Interoperability FINROC FINROC and ROS Experiments Appendix

Requirements for Interoperability and Seamless Integration of Different Robotic Frameworks

Michael Arndt, Max Reichardt

Robotics Research Lab Department of Computer Science University of Kaiserslautern

May 6, 2013

  • M. Arndt, M. Reichardt
slide-2
SLIDE 2

Interoperability FINROC FINROC and ROS Experiments Appendix

These slides were presented at the SDIR VIII workshop 2013. Additional details can be found on http://www.finroc.org/ and in the original publication: Requirements for Interoperability and Seamless Integration of Different Robotic Frameworks Michael Arndt, Max Reichardt, Jochen Hirth and Karsten Berns in Proceedings of the eighth full-day Workshop on Software Development and Integration in Robotics (SDIR VIII), in conjunction with the IEEE International Conference on Robotics and Automation (ICRA), May 2013, Karlsruhe, Germany

  • M. Arndt, M. Reichardt
slide-3
SLIDE 3

Interoperability FINROC FINROC and ROS Experiments Appendix

Motivation: The “Framework Barrier”

FINROC Compo- nents ROS Com- ponents URBI Com- ponents Matlab Compo- nents

?

tPort<T> Publisher/ Subscriber

  • M. Arndt, M. Reichardt
slide-4
SLIDE 4

Interoperability FINROC FINROC and ROS Experiments Appendix

Design to ease Interoperability

Good practices in framework design to achieve (efficient) interoperability?

  • Data Types in Component Interfaces
  • Any C++ type possible (e.g. from PCL)

⇒ avoids data conversion

  • Non-intrusive serialization (operator overloading, traits)
  • Component Interfaces
  • Support for data flow (often sufficient)
  • Support for control flow
  • Building and Linking
  • Simplest: Framework is available as shared library
  • No specific build system required
  • No mandatory main() function
  • M. Arndt, M. Reichardt
slide-5
SLIDE 5

Interoperability FINROC FINROC and ROS Experiments Appendix

Component Structure of FINROC

util (899 SLOC) design_patterns (790 SLOC) time (692 SLOC) xml (670 SLOC) logging (1.4 kSLOC) serialization (3.1 kSLOC) rtti (1.9 kSLOC) concurrent_containers (2.1 kSLOC) buffer_pools (576 SLOC)

core

(3.8 kSLOC) data_ports (5.8 kSLOC) parameters (1.8 kSLOC) scheduling (567 SLOC) runtime_construction (2.1 kSLOC) structure (820 SLOC) blackboard (1.8 kSLOC) tcp

(4.1kSLOC)

urbiscript

(1.0 kSLOC)

RRLIBs

Core Plugins

ib2c (1.3 kSLOC) thread (1.5 kSLOC) rpc_ports (1.7 kSLOC) ros (1.3 kSLOC)

  • M. Arndt, M. Reichardt
slide-6
SLIDE 6

Interoperability FINROC FINROC and ROS Experiments Appendix

FINROC Design Approach & Features

  • Framework has fundamental impact on software quality
  • Systematic design approach
  • What can be done in a framework in order to support or

even guarantee relevant quality attributes?

  • Focus in initial design: Features that are hard to add later

Prominent Features

  • Efficient (zero-copy), lock-free, real-time implementation
  • Scales up to thousands of components
  • Intra-process runtime construction
  • Slim and highly modular framework core
  • Separate, native C++11 and Java implementations
  • M. Arndt, M. Reichardt
slide-7
SLIDE 7

Interoperability FINROC FINROC and ROS Experiments Appendix

Projects based on FINROC

THOR VIONA Forklift Robots ARTOS Agricultural projects

  • M. Arndt, M. Reichardt
slide-8
SLIDE 8

Interoperability FINROC FINROC and ROS Experiments Appendix

The FINROC ↔ ROS Bridge

FINROC ROS Data Flow Control Flow Converter <T finroc1> → <T ros1> tInputPort <T finroc1> ros::Publisher <T ros1> Converter <T finroc2> ← <T ros2> tOutputPort <T finroc2> ros::Subscriber <T ros2> tInputPort <T ros3> ros::Publisher <T ros3> FINROC seri- alization traits added to na- tive ROS type tOutputPort <T ros4> ros::Subscriber <T ros4> tInputPort <T finroc5> ros::Publisher <T finroc5> ROS traits added to na- tive FINROC type tOutputPort <T finroc6> ros::Subscriber <T finroc6> Service Caller tROSRPCPort <T ros7> ros::Service Client <T ros7>

  • M. Arndt, M. Reichardt
slide-9
SLIDE 9

Interoperability FINROC FINROC and ROS Experiments Appendix

Example: Calling a ROS Service from FINROC

// the object holding the request roscpp::GetLoggers::Request r; try { RRLIB_LOG_PRINT(DEBUG, "Executing RPC ..."); // execute the call roscpp::GetLoggers::Response result = rpc_client.Execute(r); RRLIB_LOG_PRINT(DEBUG, "RPC executed, result is:"); for (auto it = result.loggers.begin(); it != result.loggers.end(); ++it) { RRLIB_LOG_PRINT(DEBUG, " - ", it->name); } } catch (std::exception &e) { RRLIB_LOG_PRINT(ERROR, "Caught exception :("); }

  • M. Arndt, M. Reichardt
slide-10
SLIDE 10

Interoperability FINROC FINROC and ROS Experiments Appendix

Interacting from FINROC with a Pioneer Robot I

  • Real-world scenario: research cooperation between two

institutes

  • Use native FINROC data types in ROS

+

People tracking us- ing AmICA nodes Influence path plan- ning on Pioneer robot

  • M. Arndt, M. Reichardt
slide-11
SLIDE 11

Interoperability FINROC FINROC and ROS Experiments Appendix

Interacting from FINROC with a Pioneer Robot II

FINROC ROS p2os

  • penni

move base prob data processing AmICA Hardware People Tracking Bridge tProb- abilis- ticData tProb- abilis- ticData

  • M. Arndt, M. Reichardt
slide-12
SLIDE 12

Interoperability FINROC FINROC and ROS Experiments Appendix

Interacting from FINROC with a Pioneer Robot III

S G ? ?

  • M. Arndt, M. Reichardt
slide-13
SLIDE 13

Interoperability FINROC FINROC and ROS Experiments Appendix

Controlling FINROC Robot VIONA using ROS I

  • Commercially available robot
  • High-level control can be realized in FINROC or ROS

Figure: Mobile outdoor robot VIONA by Robotmakers GmbH

  • M. Arndt, M. Reichardt
slide-14
SLIDE 14

Interoperability FINROC FINROC and ROS Experiments Appendix

Controlling FINROC Robot VIONA using ROS II

ROS FINROC FINROC High Level Control High Level Control Hardware Interface Basic Control User Interface Bridge

Figure: Control system of VIONA with high-level control implemented either in FINROC or in ROS

  • M. Arndt, M. Reichardt
slide-15
SLIDE 15

Interoperability FINROC FINROC and ROS Experiments Appendix

Using ROS’ slam gmapping in FINROC I

  • Show how native ROS messages can be used in FINROC
  • Use existing slam gmapping in FINROC

FINROC ROS slam gmapping Hardware Interface ARTOS Bridge sensor - msgs::- Laser- Scan, tf::tf- Message nav - msgs::- Occupancy- Grid

  • M. Arndt, M. Reichardt
slide-16
SLIDE 16

Interoperability FINROC FINROC and ROS Experiments Appendix

FINROC- Application Structure

  • Basic application building blocks:

Modules

  • connector-style interfaces
  • network-transparent

connections

  • Support for data and control

flow

  • Structural elements: Groups
  • Robotic application:
  • Set of connected modules
  • Finstruct
  • visualization as data flow graph
  • M. Arndt, M. Reichardt
slide-17
SLIDE 17

Interoperability FINROC FINROC and ROS Experiments Appendix

Tools: Finstruct

  • M. Arndt, M. Reichardt
slide-18
SLIDE 18

Interoperability FINROC FINROC and ROS Experiments Appendix

Tools: Fingui

  • M. Arndt, M. Reichardt