diff --git a/humanoid_modules/include/humanoid_modules/humanoid_module.h b/humanoid_modules/include/humanoid_modules/humanoid_module.h index c943a290e2c1c28154963e12a273abb13a93af9e..b9345d4b466bf1b96b7b62d7ad919994a9dbcda9 100644 --- a/humanoid_modules/include/humanoid_modules/humanoid_module.h +++ b/humanoid_modules/include/humanoid_modules/humanoid_module.h @@ -96,12 +96,17 @@ CHumanoidModule<Module>::CHumanoidModule(const std::string &name,motion_module_t template<class Module> void CHumanoidModule<Module>::add_servo(const std::string &name) { - unsigned int i=0; + unsigned int i=0,j=0; for(i=0;i<NUM_SERVOS;i++) { if(servo_names[i]==name) { + for(j=0;j<this->assigned_servos.size();j++) + { + if(this->assigned_servos[i]==name) + return;// servo already assigned to this module + } this->assigned_servos.push_back(name); return; } diff --git a/humanoid_modules/src/action_module.cpp b/humanoid_modules/src/action_module.cpp index aec971a5c795ab8087b4c45150773c1a4eab7b67..20af838ab8b1da72fa5a61b48ed55e16e1c81b77 100644 --- a/humanoid_modules/src/action_module.cpp +++ b/humanoid_modules/src/action_module.cpp @@ -9,6 +9,7 @@ CActionModule::CActionModule(const std::string &name) : CHumanoidModule(name,ACT this->cancel_pending=false; this->new_action=false; this->action_id=-1; + this->add_whole_body(); } void CActionModule::state_machine(void) diff --git a/humanoid_modules/src/walk_module.cpp b/humanoid_modules/src/walk_module.cpp index de75ec9fe7ff54b7794f6eb8731265e0e8aeb88d..833ea8b9d2ebf99d42ec2d97a80f1245aef48ecc 100644 --- a/humanoid_modules/src/walk_module.cpp +++ b/humanoid_modules/src/walk_module.cpp @@ -20,6 +20,8 @@ CWalkModule::CWalkModule(const std::string &name) : CHumanoidModule(name,WALK_MO this->cmd_vel_timer.stop(); /* joint states subscriber */ this->joint_state_subscriber=this->module_nh.subscribe("joint_states",1,&CWalkModule::joint_state_callback,this); + this->add_left_leg(); + this->add_right_leg(); } void CWalkModule::state_machine(void)