From Wiki for iCub and Friends
Jump to: navigation, search

GSoC 2015 Ideas


Project: Connection GUI

Brief explanation: A GUI for handling connections, priority and QoS. Some work on YARP ports might be required in order to expose input/output/rpc mode and the type of data transmitted.

Expected results: A new GUI that shows YARP connections between YARP ports and allows to send commands to the port (to change the thread priority and the QoS)

Knowledge Prerequisite: C++, Qt5

Mentor: Daniele E. Domenichelli

Project: A GUI for designing rFSM

Brief explanation: Reduced Finite State Machine ( is a framework used to program behaviors of robotic systems. It is adopted in particular on the iCub. It would be nice to write a GUI that simplifies the design of rFSM and allows executiong and runtime monitoring of rFSM.

Expected results: a GUI that allows graphical design and monitor execution of rFSMs.

Knowledge Prerequisite: C++, Qt5, Lua

Mentor: Ali Paikan, Lorenzo Natale

Project: "One GUI to rule them all™"

Brief explanation: A GUI with a plugin system that allows to add viewers, scope, logger, position them, resize, then save and restore the state.

Expected results: A new GUI, plugins for the existing GUIs.

Knowledge Prerequisite: C++, Qt5

Mentor: Daniele E. Domenichelli

Project: robotInterface Parts

Brief explanation: Add a generic and hierarchical notion of "part" to the robotInterface, defined in the xml, in order to allow starting

  • --no-legs: start all devices and parts that are not "legs" (therefore parts "right-leg" and "left-leg" will not be started).
  • --right-arm to start only the devices that are part or required for the right arm.

Allow to start or stop one part without restarting the whole robotInterface. Being able request whether one part is running or not.

Expected results: Knowledge of part in the robotInterface.

Knowledge Prerequisite:

Mentor: Daniele E. Domenichelli

Project: Endpoint for YARP ports

Brief explanation: Endpoint for YARP ports to connect portmonitor plugins.

Expected results:

Knowledge Prerequisite:

Mentor: Ali Paikan, Lorenzo Natale

Project: Improvements to Existing GUIs

Brief explanation: yarpscope still needs trigger mode, realtime mode, index ranges, yarpbuilder lacks of a lot of features.

Expected results: (To be discussed with mentors)

Knowledge Prerequisite: C++, Qt5

Mentor: (Depends on the GUI)

Project: New Carrier

Brief explanation: Some new carrier(s) for other middleware(s).

Expected results: (To be discussed with mentors)

Knowledge Prerequisite: C++, YARP, (A basic knowledge of the middleware)

Mentor: (Depends on the middleware)

Project: Yarp on smartphone

Brief explanation: Yarp + Qt5 Guis on smartphone/tablet.

Expected results: Porting of YARP Guis for (Android?) smartphone or tablet. Explore new interaction modes for touch devices.

Knowledge Prerequisite: C++, Qt, QML, (Android?)

Mentor: Daniele E. Domenichelli, Ali Paikan

Project: Yarp@home

Brief explanation: Yarp on Roomba, Lego Mindstorm, Arduino, Drones or some other "cheap" robot. :)

Expected results: Being able to build and run YARP on the selected robot, new YARP devices for the robot parts

Knowledge Prerequisite: C++, YARP, (Depends on the hardware)

Mentor: Daniele E. Domenichelli, Ali Paikan, Lorenzo Natale

Gazebo YARP Plugins

Project: Skin on Gazebo

Brief explanation: Simulate in Gazebo the output of the iCub tactile skin, to enable the simulation of software using it.

Expected results: A new plugin in gazebo-yarp-plugins that loads the skin model for an arbitrary robot and that outputs the simulated tactile elements (taxels) measurements using the same YARP interface used on real robots, enabling its use with existing software that uses the skin.

Knowledge Prerequisite: C++ knowledge, prior knowledge of Gazebo and/or YARP is desirable but not strictly required.

Mentor: Silvio Traversaro


Project: Improvements to YCM Superbuilds

Brief explanation: There are several features missing for YCM Superbuilds,

  • Install: YCM Superbuilds cannot be installed at the moment, it would be very useful to have a "make install" target for superbuilds.
  • Installers: It would be useful to have some integration with CPack to create superbuild installers.
  • Package detection and error reporting: At the moment FeatureSummary is used to report which packages are available, but it does not distinguish between the packages found/not found and built/not built.
  • CDash integration: Unit tests should appear in the right sub-project.
  • See also

Expected results: Improvements to the superbuild modules

Knowledge Prerequisite: CMake

Mentor: Daniele E. Domenichelli


Project: Robotology Installer

Brief explanation: Work on a "robotology" online installer/updater using Qt installer framework[1] and eventually CPack[2].

Expected results: Online installer/updater for robotology packages and dependencies.

Knowledge Prerequisite: CMake or Qt installer framework

Mentor: Daniele E. Domenichelli

Template for New Projects


Brief explanation:

Expected results:

Knowledge Prerequisite: