yarp a middle way for a robotic middleware
play

YARP: a middle way for a robotic middleware E. Ceseracciu, D. - PowerPoint PPT Presentation

YARP: a middle way for a robotic middleware E. Ceseracciu, D. Domenichelli, P. Fitzpatrick, G. Metta, L. Natale, A. Paikan iCub Facility Istituto Italiano di Tecnologia, Genova YARP Peer-to-peer, loosely coupled, communication


  1. YARP: a middle way for a robotic middleware E. Ceseracciu, D. Domenichelli, P. Fitzpatrick, G. Metta, L. Natale, A. Paikan iCub Facility Istituto Italiano di Tecnologia, Genova

  2. YARP • Peer-to-peer, loosely coupled, communication • Flexibility, fits well with other systems • Very stable code base >10 years old • Minimal dependencies • Easy install with binaries on many OSes/distributions (Ubuntu, Debian, Windows, MacOs) Several protocols: • Built-in: tcp/udp/mcast – – Plug-ins: ROS tcp, xml rpc, mjpg etc.. Hand Detection Hand Detection Hand Detection Hand Detection ... ... Reaching Reaching Reaching Reaching /camera ... /arm/encs ... ROBOT ROBOT ROBOT ROBOT /arm/trqs ... ... /hand/touch … Grasping Grasping Grasping Grasping /arm/cmd ... ... Object rec. Object rec. Object rec. Object rec. ... ...

  3. YARP + collaboration YARP is designed for easy interoperability with other systems • Built-in transport protocols: tcp, udp, ● mcast, shared memory Programs that cannot use YARP YARP Network “Standard” protocols: xml rpc, basic text, ● Programs use YARP client library http-speaking protocol, JSON formatted text mode protocol specific protocols protocol Programs that can talk YARP Special purpose protocols: Programs that don’t protocol but do not use ● YARP library want to use YARP A protocol for interoperability with ROS – A protocol for sending raw Bayer images – and decoding them receiver-side, which Switching protocol can be chained with other carriers A protocol for establishing priorities on – Tcp connection competing connections, which can be comes in PORT chained with other carriers Fingerprint file1dll/so/dylib Accept 8 bytes, check if they are recognized by any protocol #1 loaded protocol Fingerprint file2.dll/so/dylib protocol #2 If not, check fingerprint files for appropriate ... ... .dll/.so/.dylib to load using protocol fingeprint

  4. Example YARP to ROS-tcp #1: what kind of name Order of messages when a YARP port (/a) PORT PORT servers are available and /a /b starts up and talks to a peer port (/b) using a #4: hey port /b, how do I contact them? this is port /a, let's protocol (P) talk using protocol YARP port numbers by default are managed P #2: what port number rather than random, to keep them stable for should I run connections from external sources on? PORT /root #3: how do (a Yarp name FILE SYSTEM I contact server) YARP port /b? configuration file #5: talk to me about #1: what kind of Order of messages when a NODE topic /t, please name servers PORT /b YARP port (/a) starts up are available /a+#/t Subscribed and publishes on a ROS and how do I to /t contact them? topic (/t) #4: hey “node” /b, here's an update on publishers of topic /t [gives list including /a] Different protocols: XML/RPC to • #2: I'm “node” /a roscore, TCPROS with ROS listening on (random) port node, number 45123, is Connections end up initiated in • that cool with you? roscore FILE SYSTEM #3: can you ask opposite directions (the ROS YARP any subscribers name server) configuration file on topic /t to talk Different strategy for allocation • to me? of port numbers In the end there's a logical • stream of data between point A and point B

  5. Tools for rapid development YARP builder and manager: graphical tools to design, monitor and run applications • • IDL language to specify interfaces between modules and datatypes struct Polygon { 1: list<i32> vertices; } Polygon Polygon Consumer Provider service PolygonProvider { Polygon get(); setSides(int); }

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