requirements for interoperability and seamless
play

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


  1. 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 University of Kaiserslautern May 6, 2013 M. Arndt, M. Reichardt

  2. Interoperability F INROC F INROC and R OS 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

  3. Interoperability F INROC F INROC and R OS Experiments Appendix Motivation: The “Framework Barrier” F INROC R OS Com- Compo- ponents nents tPort<T> ? Publisher/ Subscriber U RBI Com- ponents Matlab Compo- nents M. Arndt, M. Reichardt

  4. Interoperability F INROC F INROC and R OS 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

  5. Interoperability F INROC F INROC and R OS Experiments Appendix Component Structure of F INROC ros ib2c blackboard (1.3 kSLOC) (1.3 kSLOC) (1.8 kSLOC) structure (820 SLOC) runtime_construction (2.1 kSLOC) urbiscript tcp (1.0 kSLOC) (4.1kSLOC) scheduling (567 SLOC) parameters (1.8 kSLOC) rpc_ports Plugins (1.7 kSLOC) data_ports (5.8 kSLOC) core Core (3.8 kSLOC) buffer_pools (576 SLOC) RRLIB s concurrent_containers (2.1 kSLOC) rtti (1.9 kSLOC) thread (1.5 kSLOC) serialization (3.1 kSLOC) logging (1.4 kSLOC) time (692 SLOC) xml (670 SLOC) design_patterns (790 SLOC) util (899 SLOC) M. Arndt, M. Reichardt

  6. Interoperability F INROC F INROC and R OS Experiments Appendix F INROC 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

  7. Interoperability F INROC F INROC and R OS Experiments Appendix Projects based on F INROC V IONA T HOR Forklift Robots Agricultural projects A RTOS M. Arndt, M. Reichardt

  8. Interoperability F INROC F INROC and R OS Experiments Appendix The F INROC ↔ R OS Bridge F INROC R OS Converter tInputPort ros::Publisher <T finroc 1 > <T finroc 1 > <T ros 1 > → <T ros 1 > Converter tOutputPort ros::Subscriber <T finroc 2 > <T finroc 2 > <T ros 2 > Data Flow ← <T ros 2 > F INROC seri- alization traits tInputPort ros::Publisher added to na- <T ros 3 > <T ros 3 > tive R OS type tOutputPort ros::Subscriber <T ros 4 > <T ros 4 > R OS traits tInputPort added to na- ros::Publisher <T finroc 5 > tive F INROC <T finroc 5 > type tOutputPort ros::Subscriber <T finroc 6 > <T finroc 6 > Control Flow Service Caller ros::Service tROSRPCPort Client <T ros 7 > <T ros 7 > M. Arndt, M. Reichardt

  9. Interoperability F INROC F INROC and R OS Experiments Appendix Example: Calling a R OS Service from F INROC // 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

  10. Interoperability F INROC F INROC and R OS Experiments Appendix Interacting from F INROC with a Pioneer Robot I • Real-world scenario: research cooperation between two institutes • Use native F INROC data types in R OS + People tracking us- Influence path plan- ing AmICA nodes ning on Pioneer robot M. Arndt, M. Reichardt

  11. Interoperability F INROC F INROC and R OS Experiments Appendix Interacting from F INROC with a Pioneer Robot II F INROC R OS tProb- tProb- Bridge abilis- abilis- ticData ticData prob data processing People Tracking move base AmICA Hardware p2os openni M. Arndt, M. Reichardt

  12. Interoperability F INROC F INROC and R OS Experiments Appendix Interacting from F INROC with a Pioneer Robot III ? ? G S M. Arndt, M. Reichardt

  13. Interoperability F INROC F INROC and R OS Experiments Appendix Controlling F INROC Robot V IONA using R OS I • Commercially available robot • High-level control can be realized in F INROC or R OS Figure: Mobile outdoor robot V IONA by Robotmakers GmbH M. Arndt, M. Reichardt

  14. Interoperability F INROC F INROC and R OS Experiments Appendix Controlling F INROC Robot V IONA using R OS II F INROC R OS High Level Control High Level Control Bridge F INROC User Interface Basic Control Hardware Interface Figure: Control system of V IONA with high-level control implemented either in F INROC or in R OS M. Arndt, M. Reichardt

  15. Interoperability F INROC F INROC and R OS Experiments Appendix Using R OS ’ slam gmapping in F INROC I • Show how native R OS messages can be used in F INROC • Use existing slam gmapping in F INROC nav - R OS F INROC msgs::- Bridge sensor - Occupancy- msgs::- Grid Laser- A RTOS Scan, slam gmapping tf::tf- Message Hardware Interface M. Arndt, M. Reichardt

  16. Interoperability F INROC F INROC and R OS Experiments Appendix F INROC - 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

  17. Interoperability F INROC F INROC and R OS Experiments Appendix Tools: Finstruct M. Arndt, M. Reichardt

  18. Interoperability F INROC F INROC and R OS Experiments Appendix Tools: Fingui M. Arndt, M. Reichardt

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend