Difference between revisions of "GSoC/2015/Ideas"

From Wiki for iCub and Friends
Jump to: navigation, search
Line 1: Line 1:
 
= GSoC 2015 Ideas =
 
= GSoC 2015 Ideas =
  
== YARP ==
+
== [http://wiki.icub.org/yarpdoc/index.html YARP] ==
  
 
=== Project: Connection GUI ===
 
=== 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.
+
'''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:'''
+
'''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:'''
+
'''Knowledge Prerequisite:''' C++, Qt5
  
'''Mentor:'''
+
'''Mentor:''' Daniele E. Domenichelli
 
 
 
 
=== Project: Improvements to Existing GUIs ===
 
 
 
'''Brief explanation:''' (for example yarpscope still needs trigger mode, realtime mode, index ranges, yarpbuilder lacks of a lot of features (even though I think we should wait for the Qt version and if I remember correctly we already discussed with Aitek for some improvements).
 
 
 
'''Expected results:'''
 
  
'''Knowledge Prerequisite:'''
 
  
'''Mentor:'''
 
 
 
=== Project: A GUI for designing rFSM ===
 
=== Project: A GUI for designing rFSM ===
  
Line 30: Line 20:
 
'''Expected results:''' a GUI that allows graphical design and monitor execution of rFSMs.  
 
'''Expected results:''' a GUI that allows graphical design and monitor execution of rFSMs.  
  
'''Knowledge Prerequisite:''' C++, QT5, Lua
+
'''Knowledge Prerequisite:''' C++, Qt5, Lua
  
 
'''Mentor:''' Ali Paikan, Lorenzo Natale
 
'''Mentor:''' Ali Paikan, Lorenzo Natale
 +
  
 
=== Project: "One GUI to rule them all™" ===
 
=== Project: "One GUI to rule them all™" ===
  
'''Brief explanation:''' (Ali showed me a cool GUI for ArmarX with "plugins" so you could add viewers, scope, logger, position them, resize, then save and restore the state).
+
'''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
  
 
'''Expected results:'''  
 
'''Expected results:'''  
Line 42: Line 47:
 
'''Knowledge Prerequisite:'''
 
'''Knowledge Prerequisite:'''
  
'''Mentor:'''
+
'''Mentor:''' Daniele E. Domenichelli
  
  
=== Project: New Carrier ===
+
=== Project: Endpoint for YARP ports ===
  
'''Brief explanation:''' Some new carrier(s) for other middleware(s).
+
'''Brief explanation:''' Endpoint for YARP ports to connect portmonitor plugins.
  
'''Expected results:'''  
+
'''Expected results:'''
  
 
'''Knowledge Prerequisite:'''
 
'''Knowledge Prerequisite:'''
  
'''Mentor:'''
+
'''Mentor:''' Ali Paikan, Lorenzo Natale
  
  
=== Project: robotInterface Parts ===
+
=== Project: Improvements to Existing GUIs ===
  
'''Brief explanation:''' Add a generic and hierarchical notion of "part" to the robotInterface, defined in the xml, in order to allow starting
+
'''Brief explanation:''' yarpscope still needs trigger mode, realtime mode, index ranges, yarpbuilder lacks of a lot of features.
  
* --no-legs: start all devices and parts that are not "legs" (therefore parts "right-leg" and "left-leg" will not be started).
+
'''Expected results:''' (To be discussed with mentors)
* --right-arm to start only the devices that are part or required for the right arm.
 
  
'''Expected results:'''  
+
'''Knowledge Prerequisite:''' C++, Qt5
  
'''Knowledge Prerequisite:'''
+
'''Mentor:''' (Depends on the GUI)
  
'''Mentor:'''
 
  
 +
=== Project: New Carrier ===
  
=== Project: Endpoint for YARP ports ===
+
'''Brief explanation:''' Some new carrier(s) for other middleware(s).
  
'''Brief explanation:''' Endpoint for YARP ports to connect portmonitor plugins (by Ali).
+
'''Expected results:''' (To be discussed with mentors)
  
'''Expected results:'''
+
'''Knowledge Prerequisite:''' C++, YARP, (A basic knowledge of the middleware)
 
 
'''Knowledge Prerequisite:'''
 
  
'''Mentor:'''
+
'''Mentor:''' (Depends on the middleware)
  
  
Line 85: Line 87:
 
'''Brief explanation:''' Yarp + Qt5 Guis on smartphone/tablet.
 
'''Brief explanation:''' Yarp + Qt5 Guis on smartphone/tablet.
  
'''Expected results:'''  
+
'''Expected results:''' Porting of YARP Guis for (Android?) smartphone or tablet. Explore new interaction modes for touch devices.
  
'''Knowledge Prerequisite:'''
+
'''Knowledge Prerequisite:''' C++, Qt, QML, (Android?)
  
'''Mentor:'''
+
'''Mentor:''' Daniele E. Domenichelli, Ali Paikan
  
  
Line 95: Line 97:
  
 
'''Brief explanation:''' Yarp on Roomba, Lego Mindstorm, Arduino, Drones or some other "cheap" robot. :)
 
'''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
 +
 +
 +
 +
== [https://github.com/robotology/gazebo-yarp-plugins Gazebo YARP Plugins] ==
 +
 +
=== Project: Skin on Gazebo ===
 +
 +
'''Brief explanation:'''
  
 
'''Expected results:'''  
 
'''Expected results:'''  
Line 103: Line 119:
  
  
 +
== [https://github.com/robotology/ycm YCM] ==
  
== Gazebo YARP Plugins ==
 
  
=== Project: Skin on Gazebo ===
+
=== Project: Superbuild Install ===
 +
 
 +
'''Brief explanation:''' YCM Superbuilds cannot be installed at the moment, it would be very useful to have a "make install" target for superbuilds and some integration with CPack to create superbuilds installers.
 +
 
 +
'''Expected results:''' "make install" and "make package" targets.
 +
 
 +
'''Knowledge Prerequisite:''' CMake
 +
 
 +
'''Mentor:''' Daniele E. Domenichelli
 +
 
 +
 
 +
 
 +
=== Project: Improvements to the superbuild package detection and reporting ===
  
 
'''Brief explanation:'''
 
'''Brief explanation:'''
Line 114: Line 142:
 
'''Knowledge Prerequisite:'''
 
'''Knowledge Prerequisite:'''
  
'''Mentor:'''
+
'''Mentor:''' Daniele E. Domenichelli
  
  
 +
== Robotology ==
  
== YCM ==
 
  
 
=== Project: Robotology Installer ===
 
=== Project: Robotology Installer ===
  
'''Brief explanation:''' Work on a "robotology" online installer/updater using Qt installer framework[1] and eventually CPack[2] (perhaps integrating it in YCM).
+
'''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
  
'''Expected results:'''  
+
'''Mentor:''' Daniele E. Domenichelli
  
'''Knowledge Prerequisite:'''
 
  
'''Mentor:'''
 
  
  

Revision as of 11:37, 20 February 2015

GSoC 2015 Ideas

YARP

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 (https://github.com/kmarkus/rFSM) 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

Expected results:

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:

Expected results:

Knowledge Prerequisite:

Mentor:


YCM

Project: Superbuild Install

Brief explanation: YCM Superbuilds cannot be installed at the moment, it would be very useful to have a "make install" target for superbuilds and some integration with CPack to create superbuilds installers.

Expected results: "make install" and "make package" targets.

Knowledge Prerequisite: CMake

Mentor: Daniele E. Domenichelli


Project: Improvements to the superbuild package detection and reporting

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor: Daniele E. Domenichelli


Robotology

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

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor: