Planned Changes

From Wiki for iCub and Friends
Revision as of 09:34, 12 February 2011 by Paulfitz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This is the beginnings of a YARP RoadMap.

Updated by Lorenzo 9 March 2010. At the moment only cleanup clearly old stuff.


  • CMake 2.6, both YARP and iCub
    • iCub: a new build system that uses CMake 2.6 exists, supports install and out-of-source. See Better Repository.
    • YARP: suggesting to have a look at the solution implemented in iCub (Better Repository). The CMake 2.6 export() command works very well.
    • yarpmod: should definitely use export
    • we could also get rid of the LINK_LIBRARIES command in YARPConfig.cmake, and allow more flexible use of the lib from external libraries (basically the install/export commands that appears to be the "new" cmake way)
      • [CHANGE] In the yarp2-remake-cmake branch, automatic linking is disabled by default. There's a cmake flag that can be turned on to get old behavior (to ease transition)
    • consider using namespaces for libraries/targets.
  • From time to time we feel we need more flexible configuration files. Consequently xml pops up. Should this go into YARP or in RobotCub? Should we use tinyxml?
  • IDL compiler. Implementing yarp interfaces is time consuming and error prone. Can we think to add an idl compiler to yarp?
    • Possible issue: manually implementing interfaces allowed to use streaming or rpc ports; can we think to specify this into the idl language?
  • Mach support?


  • Periodic messages in MCAST are not as realible as in TCP and UDP. It could be a network related issue or a YARP problem. Need investigation.
    • [QUESTION] Is this still an issue?
  • Stress-testing closing problem (experimented on iCubInterface) but also replicated in simpler scenarios with UDP carrier
    • [QUESTION] Is this still an issue?


  • Documenting the "guts" of YARP, not just the user-facing classes.
    • More in depth documentation of YARP classes (serious!)

Old things

  • Implement a look-up table kind of mechanism for nodes

Random suggestions

  • Increase interoperability with player/stage/gazebo. The main stumbling block here is the intertwined nature of devices and communication in player. A simple yarp image port "device" exists in player, and an experimental view of stage as a controlboard exists also. However, nothing very systematic yet.
    • Life has moved on; increase ROS interoperability now.
  • Compatibility with "cmake -E" command mode. For portability, it is convenient to bundles some commands that would be in the shell (if it could be relied upon to exist) into executables. cmake does that with cmake -E. If anyone working on YARP is tempted to add such features, they should stay compatible with "cmake -E".
  • Give task-oriented documentation of Port usage.
  • Clean up Terminator/Terminee class - currently registers as a port, but it isn't one. This prevents useful automation. Suggestion: give portable implementation of signals via ports. Partial, non-portable implementation exists.
    • Clean-up is in progress. Network protocol was made compatible with a regular Port.
  • Separate binary and source directories in the iCub repository, the repository now confuses ICUB_DIR and ICUB_ROOT