00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "experimentsconfig.h"
00024 #include "evonet.h"
00025 #include "component.h"
00026 #include "sensors.h"
00027 #include "motors.h"
00028 #include "icubsensors.h"
00029 #include "icubmotors.h"
00030 #include "marxbotsensors.h"
00031 #include "marxbotmotors.h"
00032 #include "evoga.h"
00033 #include "icubsimulator.h"
00034 #include "abstracttest.h"
00035 #include "tests.h"
00036 #include "evorobotcomponent.h"
00037 #include "factory.h"
00038 #include "logger.h"
00039 #include "robots.h"
00040
00041 namespace farsa {
00042
00043 bool FARSA_EXPERIMENTS_API initExperimentsLib() {
00044 static bool dummy = false;
00045 if ( dummy ) return true;
00046 dummy = true;
00047
00048 Factory::getInstance().registerClass<Component>( "Component", "ParameterSettableWithConfigureFunction" );
00049
00050
00051 Factory::getInstance().registerClass<Evonet>( "Evonet", "ParameterSettableWithConfigureFunction" );
00052
00053
00054 Factory::getInstance().registerClass<Robot>( "Robot", "ParameterSettableInConstructor" );
00055 #ifdef FARSA_USE_YARP_AND_ICUB
00056 Factory::getInstance().registerClass<iCubRobot>( "iCubRobot", "Robot" );
00057 #endif
00058 Factory::getInstance().registerClass<MarXbot>( "MarXbot", "Robot" );
00059
00060 #ifdef FARSA_USE_YARP_AND_ICUB
00061
00062 Factory::getInstance().registerClass<iCubSimulator>( "iCubSimulator", "Component" );
00063 #endif
00064
00065
00066 Factory::getInstance().registerClass<EvoRobotComponent>( "EvoRobotComponent", "Component" );
00067 Factory::getInstance().registerClass<Evoga>("Evoga", "ParameterSettableWithConfigureFunction");
00068 Factory::getInstance().registerClass<AbstractTest>("AbstractTest", "ParameterSettableWithConfigureFunction");
00069 Factory::getInstance().registerClass<EvoRobotExperiment>("EvoRobotExperiment", "ParameterSettableWithConfigureFunction");
00070 Factory::getInstance().registerClass<TestRandom>("TestRandom", "AbstractTest");
00071 Factory::getInstance().registerClass<TestIndividual>("TestIndividual", "AbstractTest");
00072
00073
00074 Factory::getInstance().registerClass<Sensor>("Sensor", "ParameterSettableInConstructor");
00075 Factory::getInstance().registerClass<ObjectPositionSensor>("ObjectPositionSensor", "Sensor");
00076 #ifdef FARSA_USE_YARP_AND_ICUB
00077 Factory::getInstance().registerClass<iCubSensor>("iCubSensor", "Sensor");
00078 Factory::getInstance().registerClass<iCubArmJointsSensor>("iCubArmJointsSensor", "iCubSensor");
00079 Factory::getInstance().registerClass<ColorCameraSensor>("ColorCameraSensor", "iCubSensor");
00080 Factory::getInstance().registerClass<iCubHeadJointsSensor>("iCubHeadJointsSensor", "iCubSensor");
00081 Factory::getInstance().registerClass<iCubTorsoJointsSensor>("iCubTorsoJointsSensor", "iCubSensor");
00082 Factory::getInstance().registerClass<iCubHandJointsSensor>("iCubHandJointsSensor", "iCubSensor");
00083 Factory::getInstance().registerClass<iCubPalmTargetDistSensor>("iCubPalmTargetDistSensor", "iCubSensor");
00084 Factory::getInstance().registerClass<iCubPalmTouchSensor>("iCubPalmTouchSensor", "iCubSensor");
00085 Factory::getInstance().registerClass<iCubHandTouchSensor>("iCubHandTouchSensor", "iCubSensor");
00086 Factory::getInstance().registerClass<iCubFingertipsTouchSensor>("iCubFingertipsTouchSensor", "iCubSensor");
00087 Factory::getInstance().registerClass<iCubPalmPatchesTouchSensor>("iCubPalmPatchesTouchSensor", "iCubSensor");
00088 Factory::getInstance().registerClass<HandObjectVisualOffsetSensor>("HandObjectVisualOffsetSensor", "iCubSensor");
00089 #endif
00090 Factory::getInstance().registerClass<MarXbotSensor>("MarXbotSensor", "Sensor");
00091 Factory::getInstance().registerClass<MarXbotProximityIRSensor>("MarXbotProximityIRSensor", "MarXbotSensor");
00092 Factory::getInstance().registerClass<MarXbotGroundBottomIRSensor>("MarXbotGroundBottomIRSensor", "MarXbotSensor");
00093 Factory::getInstance().registerClass<MarXbotGroundAroundIRSensor>("MarXbotGroundAroundIRSensor", "MarXbotSensor");
00094
00095
00096 Factory::getInstance().registerClass<Motor>("Motor", "ParameterSettableInConstructor");
00097 Factory::getInstance().registerClass<FakeMotor>("FakeMotor", "Motor");
00098 #ifdef FARSA_USE_YARP_AND_ICUB
00099 Factory::getInstance().registerClass<iCubMotor>("iCubMotor", "Motor");
00100 Factory::getInstance().registerClass<iCubArmRandomMotor>("iCubArmRandomMotor", "iCubMotor");
00101 Factory::getInstance().registerClass<iCubArmMusclesMotor>("iCubArmMusclesMotor", "iCubMotor");
00102 Factory::getInstance().registerClass<iCubHandMusclesMotor>("iCubHandMusclesMotor", "iCubMotor");
00103 Factory::getInstance().registerClass<iCubHeadMusclesMotor>("iCubHeadMusclesMotor", "iCubMotor");
00104 Factory::getInstance().registerClass<iCubTorsoMusclesMotor>("iCubTorsoMusclesMotor", "iCubMotor");
00105 Factory::getInstance().registerClass<iCubHeadPosToVelMotor>("iCubHeadPosToVelMotor", "iCubMotor");
00106 Factory::getInstance().registerClass<iCubTorsoPosToVelMotor>("iCubTorsoPosToVelMotor", "iCubMotor");
00107 Factory::getInstance().registerClass<iCubArmPosToVelMotor>("iCubArmPosToVelMotor", "iCubMotor");
00108 Factory::getInstance().registerClass<iCubHandPosToVelMotor>("iCubHandPosToVelMotor", "iCubMotor");
00109 Factory::getInstance().registerClass<iCubHeadVelocityMotor>("iCubHeadVelocityMotor", "iCubMotor");
00110 Factory::getInstance().registerClass<iCubConfigurableHandPosToVelMotor>("iCubConfigurableHandPosToVelMotor", "iCubMotor");
00111 Factory::getInstance().registerClass<iCubArmPosToPostureMotor>("iCubArmPosToPostureMotor", "iCubMotor" );
00112 Factory::getInstance().registerClass<iCubTorsoPosToPostureMotor>("iCubTorsoPosToPostureMotor", "iCubMotor");
00113 Factory::getInstance().registerClass<iCubArmVelocityMotor>("iCubArmVelocityMotor", "iCubMotor" );
00114 Factory::getInstance().registerClass<iCubTorsoVelocityMotor>("iCubTorsoVelocityMotor", "iCubMotor");
00115 #endif
00116 Factory::getInstance().registerClass<MarXbotMotor>("MarXbotMotor", "Motor");
00117 Factory::getInstance().registerClass<MarXbotWheelVelocityMotor>("MarXbotWheelVelocityMotor", "MarXbotMotor");
00118
00119 Logger::info( "Library Experiments Initialized" );
00120 return true;
00121 }
00122
00123 }