<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to iCubRobot</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>Recent changes to iCubRobot</description><atom:link href="https://sourceforge.net/p/farsa/wiki/iCubRobot/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 20 Nov 2015 10:21:58 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/farsa/wiki/iCubRobot/feed" rel="self" type="application/rss+xml"/><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Fri, 20 Nov 2015 10:21:58 -0000</pubDate><guid>https://sourceforge.netb47ad93c434df65c8cf6c1266a2598115311ff01</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Tue, 17 Nov 2015 13:59:27 -0000</pubDate><guid>https://sourceforge.netcc133572ed03b539b7862109fcf6334ee79f8a1b</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -6,27 +6,25 @@

 [TOC]

-iCub Robots
+The iCub robot
 =======

-Unlike the other robots (e.g. the Khepera, ePuck, and MarxBot), the icub robot model is included in the *iCub* plugin component that should be compiled and istalled separately from FARSA and loaded at runtime together with the plugin of your experiment (see the documentation on FARSA istallation). 
+Unlike the other robots (i.e. the Khepera, ePuck, and MarxBot), the iCub robot model is included in the *iCub* plugin that should be compiled and istalled separately from FARSA and loaded at runtime together with the plugin of your experiment (see the documentation on [FARSA istallation]([Installation])).

-This also implies that you should declare that your experimental plugin depends on the *iCub* plugin by adding the following instruction after the *ADD\_FARSAPLUGIN* comment in the CMakeLists.txt file of your plugin (the string "MyPlugin" in the example below should be replaced with the name of your experimental plugin). The addition of this instruction enable you to include the headers with iCub-related code in the source code of your experimental plugin. Moreover, it will ensure that the *iCub* plugin will be loaded automatically when your experimental plugin is loaded.
+This also implies that you should declare that your experimental plugin depends on the *iCub* plugin by adding the following instruction after the *ADD_FARSAPLUGIN* command in the CMakeLists.txt file of your plugin (the string "MyPlugin" in the example below should be replaced with the name of your experimental plugin). The addition of this instruction allows you to include the headers with iCub-related code in the source code of your experimental plugin. Moreover, it ensures that the *iCub* plugin will be loaded automatically when your experimental plugin is loaded.

 ~~~~~~~
 :::CMake
 FARSA_PLUGIN_DEPENDENCIES(MyPlugin iCub)
 ~~~~~~~

-Below we include a portion of the *iCubShowcase* plugin example that illustrate how you can create, initialize and control a simulated iCub robot. More specifically the *createiCub()* function istantiate an iCub robot (formally an instance of the *PhyiCub* class), initialize the posture of the robot, and enables the motors of the torso. The *SimulationStep()* function show how to set and access the velocity of one of the iCub joint. 
-
-To re-initialize the posture of the iCub at the beginning of each evaluation trial you might proceed by destroying and re-istantiating the iCub. On that respect notice that the function below does not take care of deleting previous instantiated iCubs. The simplest way to achieve all that is to proceed in the following order: (i) deleting the world (i.e. deleting all existing physical objects which include either the environmental objects and the iCub parts, (ii) re-creating and initializing the environmental objects, (iii) istantiating the iCub, (iv) intializing the iCub position and posture. 
+Below we include a portion of the *iCubShowcase* plugin example that illustrates how you can create, initialize and control a simulated iCub robot. More specifically the *createiCub()* function istantiates an iCub robot (an instance of the *PhyiCub* class), initializes the posture of the robot, and enables the motors of the torso. The *simulationStep()* function shows how to set and access the velocity of one of the iCub joint.

 ~~~~~~~
 :::C++
 void iCubShowcase::createiCub()
 {
-   // world is a resource (even if we don't access it via getResource, here), so we must
+   // world is a resource (even if we don't access it via getResource(), here), so we must
    // take the lock
    ResourcesLocker resourceLocker(this);

@@ -40,8 +38,8 @@
    // world
    m_icub-&amp;gt;blockTorso0(true);

-   // Setting a posture. This simply moves all joints to the desired positions, it should
-   // not be used while iCub joints are moved via the motor controller
+   // Setting a posture. This simply moves all joints to the desired positions. It should
+   // not be used while iCub joints are moved by the motor controller
    QMap&amp;lt;int, real=""&amp;gt; jointSetup;

    jointSetup[farsa::PhyiCub::right_shoulder_pitch] = 0.0;
@@ -67,7 +65,7 @@

 void iCubShowcase::simulationStep(int step)
 {
-   // world is a resource (even if we don't access it via getResource, here), so we must
+   // world is a resource (even if we don't access it via getResource(), here), so we must
    // take the lock
    ResourcesLocker resourceLocker(this);

@@ -86,4 +84,4 @@
 }
 ~~~~~~~

-If your experimental plugin is based on the *EvoRobotExperiment* class, the iCub robot will be automatically istantiated.  This means that you do not need to specify the "new farsa::PhyiCub()" instuction in your experimental plugin. The robot can be accessed and configured by using the "agent\[0\]:robot" resource, as for wheeled robots (see  [wheeled robots]([WheeledRobots])). The *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup.
+If your experimental plugin is based on the *EvoRobotExperiment* class, the iCub robot will be automatically istantiated. The robot can be accessed and configured by using the *agent\[0\]:robot* resource, as for wheeled robots (see  [wheeled robots]([WheeledRobots])). This is possible because the *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Sat, 14 Nov 2015 08:52:52 -0000</pubDate><guid>https://sourceforge.net644bbbe4401f7a9f28808e91c2db71f025fcd677</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Fri, 13 Nov 2015 10:31:42 -0000</pubDate><guid>https://sourceforge.net751e22a2e7cdbfe632945d2b2a9075f5f579d34b</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Thu, 12 Nov 2015 10:36:38 -0000</pubDate><guid>https://sourceforge.netaac56c954f951907c49a81f8a551bdf4983e0d67</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -1,3 +1,11 @@
+[Prev: Wheeled robots]([WheeledRobots]) | [Up: Using robots]([CustomizingRobots]) | [Next: Programming a fitness function]([ProgrammingFitnessFunction])
+ -------|--------|----------
+        |        |
+
+**Table of contents**
+
+[TOC]
+
 iCub Robots
 =======

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Thu, 12 Nov 2015 10:21:32 -0000</pubDate><guid>https://sourceforge.net2b684b41d786092ccd7903d6567cbece65b54548</guid></item><item><title>iCubRobot modified by Stefano Nolfi</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -78,4 +78,4 @@
 }
 ~~~~~~~

-If your experimental plugin is based on the *EvoRobotExperiment* class, the iCub robot will be automatically istantiated. The *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup. This means that you do not need to specify the "new farsa::PhyiCub()" instuction in your experimental plugin. The robot can be accessed and configured by using the "agent\[0\]:robot" resource, as for wheeled robots (see  [wheeled robots]([WheeledRobots])).
+If your experimental plugin is based on the *EvoRobotExperiment* class, the iCub robot will be automatically istantiated.  This means that you do not need to specify the "new farsa::PhyiCub()" instuction in your experimental plugin. The robot can be accessed and configured by using the "agent\[0\]:robot" resource, as for wheeled robots (see  [wheeled robots]([WheeledRobots])). The *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stefano Nolfi</dc:creator><pubDate>Wed, 28 Oct 2015 13:38:19 -0000</pubDate><guid>https://sourceforge.net3797960852c2e30e301fd2ece25db97c82016be7</guid></item><item><title>iCubRobot modified by Stefano Nolfi</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -78,7 +78,4 @@
 }
 ~~~~~~~

-Use iCub with EvoRobotExperiment
--------
-
-In the previous example we have shown how to create the iCub robot directly. If however you use the EvoRobotExperiment you need not to explicitly instantiate the *PhyiCub* class. The *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup. There are also several sensors and motors already available. When used this way, the robot can be obtained using the "agent\[0\]:robot" resource, as with any other robot. The page on [wheeled robots]([WheeledRobots]) provides an explaination of how to handle robot resources that also applies to the iCub robot.
+If your experimental plugin is based on the *EvoRobotExperiment* class, the iCub robot will be automatically istantiated. The *iCub* plugin provides a component named *iCubRobot* that can be used as the type of the *\[ROBOT\]* subgroup. This means that you do not need to specify the "new farsa::PhyiCub()" instuction in your experimental plugin. The robot can be accessed and configured by using the "agent\[0\]:robot" resource, as for wheeled robots (see  [wheeled robots]([WheeledRobots])).
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stefano Nolfi</dc:creator><pubDate>Wed, 28 Oct 2015 13:37:07 -0000</pubDate><guid>https://sourceforge.net58ee0e265f5b62a01e3a25600ab6e0ce638945ef</guid></item><item><title>iCubRobot modified by Stefano Nolfi</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -1,29 +1,18 @@
-The iCub robot
+iCub Robots
 =======

-The [iCub robot]([http://www.icub.org/]) is a humanoid robot that was developed by several research institutes around Europe during the *iCub project*. Since then, the robot is being adopted by laboratories around the work for research in cognitive robotics. In this page we will show how to run simulations using the iCub robot in FARSA. We will first show the use of iCub-related classes in a simple plugin (the *iCubShowcase* plugin), then we will briefly discuss their use in the EvoRobotExperiment component.
+Unlike the other robots (e.g. the Khepera, ePuck, and MarxBot), the icub robot model is included in the *iCub* plugin component that should be compiled and istalled separately from FARSA and loaded at runtime together with the plugin of your experiment (see the documentation on FARSA istallation). 

-Introduction
--------
-
-The [iCub humanoid robot]([http://www.icub.org/]) is supported in FARSA via the *iCub* plugin. You must compile *and* install the plugin to be able to simulate the iCub robot (take a look at the first part of the FARSA manual for information on how to compile a plugin). Once the *iCub* plugin is installed, you can use the classes it provides in your experiments.
-
-Adding iCub support
--------
-
-To be able to simulate the iCub, you must explicitly declare that your plugin depends on the *iCub* plugin. This is easily done by adding the following instruction to the CMakeLists.txt file of your plugin:
+This also implies that you should declare that your experimental plugin depends on the *iCub* plugin by adding the following instruction after the *ADD\_FARSAPLUGIN* comment in the CMakeLists.txt file of your plugin (the string "MyPlugin" in the example below should be replaced with the name of your experimental plugin). The addition of this instruction enable you to include the headers with iCub-related code in the source code of your experimental plugin. Moreover, it will ensure that the *iCub* plugin will be loaded automatically when your experimental plugin is loaded.

 ~~~~~~~
 :::CMake
 FARSA_PLUGIN_DEPENDENCIES(MyPlugin iCub)
 ~~~~~~~

-This cmake macro must follow the call to *ADD\_FARSAPLUGIN* and *MyPlugin* must be that name of your plugin as specified in the *ADD\_FARSAPLUGIN* macro. Once you add this line, you will be able to include the headers with iCub-related code and the *iCub* plugin will be loaded automatically when your plugin is loaded
+Below we include a portion of the *iCubShowcase* plugin example that illustrate how you can create, initialize and control a simulated iCub robot. More specifically the *createiCub()* function istantiate an iCub robot (formally an instance of the *PhyiCub* class), initialize the posture of the robot, and enables the motors of the torso. The *SimulationStep()* function show how to set and access the velocity of one of the iCub joint. 

-iCub-related classes
--------
-
-The *iCubShowcase* plugin is an example of how to create and control a simulated iCub robot. The *createiCub* function creates a new iCub robot (an instance of the *PhyiCub* class), gives it an initial posture and enables the torso motors (which will be moved at each step). **NOTE**: this function is always called after the world is re-created. It doesn't delete the previous iCub because destroying the world destroys all the objects in it.
+To re-initialize the posture of the iCub at the beginning of each evaluation trial you might proceed by destroying and re-istantiating the iCub. On that respect notice that the function below does not take care of deleting previous instantiated iCubs. The simplest way to achieve all that is to proceed in the following order: (i) deleting the world (i.e. deleting all existing physical objects which include either the environmental objects and the iCub parts, (ii) re-creating and initializing the environmental objects, (iii) istantiating the iCub, (iv) intializing the iCub position and posture. 

 ~~~~~~~
 :::C++
@@ -67,12 +56,7 @@
    // Enabling torso motors
    m_icub-&amp;gt;torsoController()-&amp;gt;setEnabled(true);
 }
-~~~~~~~

-The following one is the function performing one simulation step. It shows how to set the velocity of one joint and read its position.
-
-~~~~~~~
-:::C++
 void iCubShowcase::simulationStep(int step)
 {
    // world is a resource (even if we don't access it via getResource, here), so we must
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stefano Nolfi</dc:creator><pubDate>Wed, 28 Oct 2015 13:26:33 -0000</pubDate><guid>https://sourceforge.nete9cda2314939d5946280c0f5e8706edf6aba25ac</guid></item><item><title>iCubRobot modified by Tomassino Ferrauto</title><link>https://sourceforge.net/p/farsa/wiki/iCubRobot/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -3,7 +3,7 @@

 The [iCub robot]([http://www.icub.org/]) is a humanoid robot that was developed by several research institutes around Europe during the *iCub project*. Since then, the robot is being adopted by laboratories around the work for research in cognitive robotics. In this page we will show how to run simulations using the iCub robot in FARSA. We will first show the use of iCub-related classes in a simple plugin (the *iCubShowcase* plugin), then we will briefly discuss their use in the EvoRobotExperiment component.

-Overview
+Introduction
 -------

 The [iCub humanoid robot]([http://www.icub.org/]) is supported in FARSA via the *iCub* plugin. You must compile *and* install the plugin to be able to simulate the iCub robot (take a look at the first part of the FARSA manual for information on how to compile a plugin). Once the *iCub* plugin is installed, you can use the classes it provides in your experiments.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tomassino Ferrauto</dc:creator><pubDate>Wed, 21 Oct 2015 14:12:56 -0000</pubDate><guid>https://sourceforge.net84ae1c27c0b627923a6a983cd2c2c0e5fc4586c6</guid></item></channel></rss>