diff --git a/include/darwin_action.h b/include/darwin_action.h index cfd479364b835d05990e953b060efbe44f330875..d1c1160df4de460e6eac8a1af74cd68088ba2b2c 100644 --- a/include/darwin_action.h +++ b/include/darwin_action.h @@ -7,7 +7,7 @@ class CDarwinAction : public CDarwinRobotBase { public: - CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void load_page(unsigned char page_id); unsigned char get_current_page(void); unsigned char get_current_step(void); diff --git a/include/darwin_balance.h b/include/darwin_balance.h index 053af76a789629a7c01cc9585c7f071ebc27562d..ff0ac39f94b3812d59fead54a40b459f617c586c 100644 --- a/include/darwin_balance.h +++ b/include/darwin_balance.h @@ -9,7 +9,7 @@ typedef enum {FWD_FALL=0,BWD_FALL=1,STANDING=2} fall_t; class CDarwinBalance : public CDarwinRobotBase { public: - CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void enable(void); void disable(void); bool is_enabled(void); diff --git a/include/darwin_dyn_manager.h b/include/darwin_dyn_manager.h index d5804c649a9ded3ca2fd85d261268542438a52a0..f66ceedd850ee342b913cfc83071c6cddf1f024f 100644 --- a/include/darwin_dyn_manager.h +++ b/include/darwin_dyn_manager.h @@ -10,7 +10,7 @@ class CDarwinDynManager : public CDarwinRobotBase double manager_period; unsigned char num_devices; public: - CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); double get_base_period(void); void set_base_period(double period_s); unsigned int get_num_modules(void); diff --git a/include/darwin_head_tracking.h b/include/darwin_head_tracking.h index 8ce3a4ede81186f40294b55fa9836f1eec776e45..fe9434653b28fda84592150c27457da6cfd8e5b7 100644 --- a/include/darwin_head_tracking.h +++ b/include/darwin_head_tracking.h @@ -7,7 +7,7 @@ class CDarwinHeadTracking : public CDarwinRobotBase { public: - CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void set_pan_pid(double p,double i,double d,double i_clamp); void get_pan_pid(double *p,double *i,double *d,double *i_clamp); void set_tilt_pid(double p,double i,double d,double i_clamp); diff --git a/include/darwin_imu.h b/include/darwin_imu.h index 05dcec3f9f3d19e421841853890e611d06b6a648..2bcde08815ff7e3cf36b9c4aa17913cb92f87ae6 100644 --- a/include/darwin_imu.h +++ b/include/darwin_imu.h @@ -7,7 +7,7 @@ class CDarwinIMU : public CDarwinRobotBase { public: - CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void start(void); void stop(void); void start_gyro_cal(void); diff --git a/include/darwin_joint_motion.h b/include/darwin_joint_motion.h index 90d491efea34895c58637c068afb4e539ca432cd..cd51592b1620c26db578fff3b1ab408dc5b6ee79 100644 --- a/include/darwin_joint_motion.h +++ b/include/darwin_joint_motion.h @@ -9,7 +9,7 @@ typedef enum {JOINTS_GRP0=0,JOINTS_GRP1=1,JOINTS_GRP2=2,JOINTS_GRP3=2} joints_gr class CDarwinJointMotion : public CDarwinRobotBase { public: - CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void load(joints_grp_t group,std::vector<unsigned char> &servos,std::vector<double> &angles,std::vector<double> &speeds,std::vector<double> &accels); std::vector<unsigned char> get_group_servos(joints_grp_t group); std::vector<double> get_group_angles(joints_grp_t group); diff --git a/include/darwin_mmanager.h b/include/darwin_mmanager.h index 91307d53252cbc83b5795206fa699e3725ab151f..116672479879315358f5a1f4ea95423ad28bb4c7 100644 --- a/include/darwin_mmanager.h +++ b/include/darwin_mmanager.h @@ -15,7 +15,7 @@ class CDarwinMManager : public CDarwinDynManager protected: double mmanager_period; public: - CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); unsigned int get_present_servos(void); void set_period(double period_s); double get_period(void); diff --git a/include/darwin_robot_base.h b/include/darwin_robot_base.h index a4c3610757a18b230a1091a9fc0d06da690337a8..cc2c4f6ee086760d23fe331029e8e0cfc5700c0f 100644 --- a/include/darwin_robot_base.h +++ b/include/darwin_robot_base.h @@ -2,19 +2,18 @@ #define _DARWIN_ROBOT_BASE_H #include "dynamixel.h" -#include "dynamixelserver_ftdi.h" #include "dynamixelserver_serial.h" #include "darwin_registers.h" class CDarwinRobotBase { protected: - CDynamixelServer *dyn_server; + CDynamixelServerSerial *dyn_server; CDynamixel *robot_device; std::string robot_name; unsigned char robot_id; public: - CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void is_valid(void); virtual ~CDarwinRobotBase(); }; diff --git a/include/darwin_walk.h b/include/darwin_walk.h index d40d1d100c4726e91ffeb6548decca41d2b9e0f6..0b669bbc083d311d9fe2b2e77439d9df6f5c8e8d 100644 --- a/include/darwin_walk.h +++ b/include/darwin_walk.h @@ -7,7 +7,7 @@ class CDarwinWalk : public CDarwinRobotBase { public: - CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false); + CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id); void set_x_offset(double offset_m); double get_x_offset(void); void set_y_offset(double offset_m); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2682c6bb18ef3850fae0f56f289bbc10f22da30d..c2497d6a8c615ff309718949aafae8f9ee38f847 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,6 +17,7 @@ SET(robot_headers ../include/darwin_robot_base.h ../include/darwin_robot_excepti # locate the necessary dependencies FIND_PACKAGE(iriutils REQUIRED) +FIND_PACKAGE(comm REQUIRED) FIND_PACKAGE(dynamixel REQUIRED) FIND_PACKAGE(Eigen3 REQUIRED) @@ -34,9 +35,12 @@ IF(EIGEN3_FOUND) SET(kin_leg_headers ../include/darwin_leg_kinematics.h ../include/darwin_robot_exceptions.h) ENDIF(EIGEN3_FOUND) +#ADD_DEFINITIONS(-D_SIM) + # add the necessary include directories INCLUDE_DIRECTORIES(../include) INCLUDE_DIRECTORIES(${iriutils_INCLUDE_DIR}) +INCLUDE_DIRECTORIES(${comm_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${dynamixel_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) # create the shared library @@ -44,6 +48,7 @@ ADD_LIBRARY(darwin_robot SHARED ${robot_sources} ${XSD_SOURCES}) ADD_DEPENDENCIES(darwin_robot xsd_files_gen) # link necessary libraries TARGET_LINK_LIBRARIES(darwin_robot ${iriutils_LIBRARY}) +TARGET_LINK_LIBRARIES(darwin_robot ${comm_LIBRARY}) TARGET_LINK_LIBRARIES(darwin_robot ${dynamixel_LIBRARY}) TARGET_LINK_LIBRARIES(darwin_robot ${XSD_LIBRARY}) diff --git a/src/darwin_action.cpp b/src/darwin_action.cpp index 4c16e46c930b4aad3a924abaa8c9ef4ecedae884..31dfb8d8229e80b70bd8ba74f8e1d6e93d80777e 100644 --- a/src/darwin_action.cpp +++ b/src/darwin_action.cpp @@ -1,7 +1,7 @@ #include "darwin_action.h" #include "darwin_robot_exceptions.h" -CDarwinAction::CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinAction::CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/darwin_balance.cpp b/src/darwin_balance.cpp index ae246ddeae7b7261e3440303eb9095cd618d65ce..46732027c845a25f47248e7e969d76b05821c637 100644 --- a/src/darwin_balance.cpp +++ b/src/darwin_balance.cpp @@ -1,7 +1,7 @@ #include "darwin_balance.h" #include "darwin_robot_exceptions.h" -CDarwinBalance::CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinBalance::CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/darwin_dyn_manager.cpp b/src/darwin_dyn_manager.cpp index 096ab43822c7cdc4879110c212c710b9992fa360..f81fd938dc8e3afd6b573c40f12d91cbaf63a769 100644 --- a/src/darwin_dyn_manager.cpp +++ b/src/darwin_dyn_manager.cpp @@ -1,7 +1,7 @@ #include "darwin_dyn_manager.h" #include "darwin_robot_exceptions.h" -CDarwinDynManager::CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinDynManager::CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { this->manager_period=this->get_base_period(); } diff --git a/src/darwin_head_tracking.cpp b/src/darwin_head_tracking.cpp index 1b1119a5df9a8b5a1eea35974a7cc6ac93be996b..27d6f9b364ffa5ac08244be00b233ce4014ef271 100644 --- a/src/darwin_head_tracking.cpp +++ b/src/darwin_head_tracking.cpp @@ -1,7 +1,7 @@ #include "darwin_head_tracking.h" #include "darwin_robot_exceptions.h" -CDarwinHeadTracking::CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinHeadTracking::CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/darwin_imu.cpp b/src/darwin_imu.cpp index db357a894b9a8a2822bd1d0bbf58519ec3064fda..703666cead6fa5fe1f44bb755e6dd304d1b8606a 100644 --- a/src/darwin_imu.cpp +++ b/src/darwin_imu.cpp @@ -1,7 +1,7 @@ #include "darwin_imu.h" #include "darwin_robot_exceptions.h" -CDarwinIMU::CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinIMU::CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/darwin_joint_motion.cpp b/src/darwin_joint_motion.cpp index 222ebf86d74995e5bfb4cd81a3f1e4c2c3d14245..872021aaf79a6e20ce6d28bbad7414d1e7394211 100644 --- a/src/darwin_joint_motion.cpp +++ b/src/darwin_joint_motion.cpp @@ -1,7 +1,7 @@ #include "darwin_joint_motion.h" #include "darwin_robot_exceptions.h" -CDarwinJointMotion::CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinJointMotion::CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/darwin_mmanager.cpp b/src/darwin_mmanager.cpp index b03294b13b82ae7d015c81bab55c4f05fece387b..1395e551dc20420254e20f9315350a063c8c7fb4 100644 --- a/src/darwin_mmanager.cpp +++ b/src/darwin_mmanager.cpp @@ -36,7 +36,7 @@ const std::string servo_names[MAX_NUM_SERVOS]={std::string("Servo0"), std::string("Servo29"), std::string("Servo30")}; -CDarwinMManager::CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinDynManager(name,bus_id,bus_speed,id,sim) +CDarwinMManager::CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinDynManager(name,bus_id,bus_speed,id) { this->mmanager_period=this->get_period(); } diff --git a/src/darwin_robot_base.cpp b/src/darwin_robot_base.cpp index 1f34197b606149e03ece759bd4c7d9d6fd773fcb..5faf9d685e1225e6281bbc1023afba897cee5acc 100644 --- a/src/darwin_robot_base.cpp +++ b/src/darwin_robot_base.cpp @@ -2,42 +2,20 @@ #include "darwin_robot_exceptions.h" #include "dynamixelexceptions.h" -CDarwinRobotBase::CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) +CDarwinRobotBase::CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) { - int num_buses; - this->robot_device=NULL; if(name!="") { this->robot_name=name; - if(sim) - { - this->dyn_server=CDynamixelServerSerial::instance(); - ((CDynamixelServerSerial *)this->dyn_server)->config_bus(bus_id,bus_speed); - num_buses=1; - } - else - { - this->dyn_server=CDynamixelServerFTDI::instance(); - num_buses=((CDynamixelServerFTDI *)this->dyn_server)->get_num_buses(); - if(num_buses>0) - ((CDynamixelServerFTDI *)this->dyn_server)->config_bus(bus_id,bus_speed); - } - if(num_buses>0) - { - sleep(1); - try{ - this->robot_device=dyn_server->get_device(id,dyn_version2); - this->robot_id=id; - }catch(CDynamixelServerException &e){ - this->dyn_server->free_device(id); - throw e; - } - } - else - { - /* handle exceptions */ - throw CDarwinRobotException(_HERE_,"No FTDI USB devices found"); + this->dyn_server=CDynamixelServerSerial::instance(); + this->dyn_server->config_bus(bus_id,bus_speed); + try{ + this->robot_device=dyn_server->get_device(id,dyn_version2); + this->robot_id=id; + }catch(CDynamixelServerException &e){ + this->dyn_server->free_device(id); + throw e; } } else diff --git a/src/darwin_walk.cpp b/src/darwin_walk.cpp index 2c84fc84fd19b33997253e2d25502355b40814bb..40a2e032f8108bc43935e2ab57bc04337809e8b8 100644 --- a/src/darwin_walk.cpp +++ b/src/darwin_walk.cpp @@ -3,7 +3,7 @@ #define PI 3.14159 -CDarwinWalk::CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim) +CDarwinWalk::CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id) { } diff --git a/src/examples/darwin_action_test.cpp b/src/examples/darwin_action_test.cpp index 777b3b9e8d0ec721aecbe3ba850149f84e1252a1..3f493018054363bda3844550c9ea0c856d6df8d7 100644 --- a/src/examples/darwin_action_test.cpp +++ b/src/examples/darwin_action_test.cpp @@ -4,7 +4,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -12,8 +16,8 @@ int main(int argc, char *argv[]) unsigned int present_servos; try{ - CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true); - CDarwinAction action("Darwin",robot_device,1000000,0x01,true); + CDarwinMManager darwin("Darwin",robot_device,1000000,0x01); + CDarwinAction action("Darwin",robot_device,1000000,0x01); std::cout << "Manager period: " << darwin.get_base_period() << std::endl; std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl; std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl; diff --git a/src/examples/darwin_head_tracking_test.cpp b/src/examples/darwin_head_tracking_test.cpp index 6dcb357d18676f6dbf40fc91b0be846d5f1c1eef..948d85645e33c5b0c94ea6aad29d4de16e65bb8b 100644 --- a/src/examples/darwin_head_tracking_test.cpp +++ b/src/examples/darwin_head_tracking_test.cpp @@ -4,7 +4,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -12,8 +16,8 @@ int main(int argc, char *argv[]) unsigned int present_servos; try{ - CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true); - CDarwinHeadTracking head("Darwin",robot_device,1000000,0x01,true); + CDarwinMManager darwin("Darwin",robot_device,1000000,0x01); + CDarwinHeadTracking head("Darwin",robot_device,1000000,0x01); std::cout << "Manager period: " << darwin.get_base_period() << std::endl; std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl; std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl; diff --git a/src/examples/darwin_imu_test.cpp b/src/examples/darwin_imu_test.cpp index 741bfaffb7e26b1ef92cedb08f8d9d13d80fa951..d911ad868e5500d1a0a708ba3a22db33bd594e7e 100644 --- a/src/examples/darwin_imu_test.cpp +++ b/src/examples/darwin_imu_test.cpp @@ -3,7 +3,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -12,7 +16,7 @@ int main(int argc, char *argv[]) double accel_x,accel_y,accel_z; try{ - CDarwinIMU darwin_imu("Darwin",robot_device,1000000,0x01,true); + CDarwinIMU darwin_imu("Darwin",robot_device,1000000,0x01); std::cout << "found darwin controller" << std::endl; std::cout << "Number of calibration samples: " << darwin_imu.get_cal_samples() << std::endl; darwin_imu.start(); diff --git a/src/examples/darwin_joint_motion_test.cpp b/src/examples/darwin_joint_motion_test.cpp index 30473d712a6c8a96d80e10aa109e04bf9934140f..fcec1a0d9df8130f6f722f72830c1cdd6529b57a 100644 --- a/src/examples/darwin_joint_motion_test.cpp +++ b/src/examples/darwin_joint_motion_test.cpp @@ -4,7 +4,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -14,8 +18,8 @@ int main(int argc, char *argv[]) std::vector<double> angles,speeds,accels; try{ - CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true); - CDarwinJointMotion joints("Darwin",robot_device,1000000,0x01,true); + CDarwinMManager darwin("Darwin",robot_device,1000000,0x01); + CDarwinJointMotion joints("Darwin",robot_device,1000000,0x01); std::cout << "Manager period: " << darwin.get_base_period() << std::endl; std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl; std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl; diff --git a/src/examples/darwin_manager_test.cpp b/src/examples/darwin_manager_test.cpp index bbe888959949200dbbc65d370a98f560cca4f9f3..26a5fd10559d2042c775c722a1957ae5d587c2f5 100644 --- a/src/examples/darwin_manager_test.cpp +++ b/src/examples/darwin_manager_test.cpp @@ -3,7 +3,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -12,7 +16,7 @@ int main(int argc, char *argv[]) std::vector<double> offsets,angles; try{ - CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true); + CDarwinMManager darwin("Darwin",robot_device,100000,1); std::cout << "Manager period: " << darwin.get_base_period() << std::endl; std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl; std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl; diff --git a/src/examples/darwin_walking_test.cpp b/src/examples/darwin_walking_test.cpp index 64ae187e48b8c6fd7f635735d1ebae5492b2af5d..095108d41c097731635252a7aba942996374ae42 100644 --- a/src/examples/darwin_walking_test.cpp +++ b/src/examples/darwin_walking_test.cpp @@ -7,7 +7,11 @@ #include <iostream> -std::string robot_device="/tmp/darwin_driver"; +#ifdef _SIM + std::string robot_device="/tmp/darwin_driver"; +#else + std::string robot_device="/dev/ttyACM0"; +#endif int main(int argc, char *argv[]) { @@ -15,11 +19,11 @@ int main(int argc, char *argv[]) unsigned int present_servos; try{ - CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true); - CDarwinAction action("Darwin",robot_device,1000000,0x01,true); - CDarwinIMU imu("Darwin",robot_device,1000000,0x01,true); - CDarwinBalance balance("Darwin",robot_device,1000000,0x01,true); - CDarwinWalk walk("Darwin",robot_device,1000000,0x01,true); + CDarwinMManager darwin("Darwin",robot_device,1000000,0x01); + CDarwinAction action("Darwin",robot_device,1000000,0x01); + CDarwinIMU imu("Darwin",robot_device,1000000,0x01); + CDarwinBalance balance("Darwin",robot_device,1000000,0x01); + CDarwinWalk walk("Darwin",robot_device,1000000,0x01); std::cout << "Manager period: " << darwin.get_base_period() << std::endl; std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl; std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;