Skip to content
Snippets Groups Projects
Commit 6964e7ec authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Solved a bug in the address of the EEPROM Z offset.

Solved a bug in the write function when updating the walk parameters (the ram_offset was used).
The walk move and time parameters are initialized the first time the pre_prodcess function is called.
parent 6dae8ea5
No related branches found
No related tags found
No related merge requests found
......@@ -52,7 +52,7 @@
unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name))) __attribute__ ((aligned (4)))= {\
DEFAULT_X_OFFSET,base_address+WALK_X_OFFSET, \
DEFAULT_Y_OFFSET,base_address+WALK_Y_OFFSET, \
DEFAULT_Z_OFFSET,base_address+WALK_Y_OFFSET, \
DEFAULT_Z_OFFSET,base_address+WALK_Z_OFFSET, \
DEFAULT_ROLL_OFFSET,base_address+WALK_ROLL_OFFSET, \
DEFAULT_PITCH_OFFSET,base_address+WALK_PITCH_OFFSET, \
DEFAULT_YAW_OFFSET,base_address+WALK_YAW_OFFSET, \
......
......@@ -33,33 +33,33 @@ void walk_write_cmd(TWalkMModule *module,unsigned short int address,unsigned sho
module->memory->data[module->ram_base_address+WALK_STEP_DIRECTION]=data[WALK_STEP_DIRECTION-ram_offset];
// walk parameters
eeprom_offset=address-module->eeprom_base_address;
if(ram_in_range(module->ram_base_address+WALK_R_HIP_ROLL_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_HIP_ROLL_SERVO_ID,address,length))
module->right_hip_roll_servo_id=data[WALK_R_HIP_ROLL_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_HIP_YAW_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_HIP_YAW_SERVO_ID,address,length))
module->right_hip_yaw_servo_id=data[WALK_R_HIP_YAW_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_HIP_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_HIP_PITCH_SERVO_ID,address,length))
module->right_hip_pitch_servo_id=data[WALK_R_HIP_PITCH_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_KNEE_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_KNEE_SERVO_ID,address,length))
module->right_knee_servo_id=data[WALK_R_KNEE_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_ANKLE_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_ANKLE_PITCH_SERVO_ID,address,length))
module->right_ankle_pitch_servo_id=data[WALK_R_ANKLE_PITCH_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_ANKLE_ROLL_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_ANKLE_ROLL_SERVO_ID,address,length))
module->right_ankle_roll_servo_id=data[WALK_R_ANKLE_ROLL_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_R_SHOULDER_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_R_SHOULDER_PITCH_SERVO_ID,address,length))
module->right_shoulder_pitch_servo_id=data[WALK_R_SHOULDER_PITCH_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_HIP_ROLL_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_HIP_ROLL_SERVO_ID,address,length))
module->left_hip_roll_servo_id=data[WALK_L_HIP_ROLL_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_HIP_YAW_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_HIP_YAW_SERVO_ID,address,length))
module->left_hip_yaw_servo_id=data[WALK_L_HIP_YAW_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_HIP_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_HIP_PITCH_SERVO_ID,address,length))
module->left_hip_pitch_servo_id=data[WALK_L_HIP_PITCH_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_KNEE_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_KNEE_SERVO_ID,address,length))
module->left_knee_servo_id=data[WALK_L_KNEE_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_ANKLE_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_ANKLE_PITCH_SERVO_ID,address,length))
module->left_ankle_pitch_servo_id=data[WALK_L_ANKLE_PITCH_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_ANKLE_ROLL_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_ANKLE_ROLL_SERVO_ID,address,length))
module->left_ankle_roll_servo_id=data[WALK_L_ANKLE_ROLL_SERVO_ID-eeprom_offset];
if(ram_in_range(module->ram_base_address+WALK_L_SHOULDER_PITCH_SERVO_ID,address,length))
if(ram_in_range(module->eeprom_base_address+WALK_L_SHOULDER_PITCH_SERVO_ID,address,length))
module->left_shoulder_pitch_servo_id=data[WALK_L_SHOULDER_PITCH_SERVO_ID-eeprom_offset];
for(i=0;i<EEPROM_WALK_LENGTH;i++)
if(ram_in_range(module->eeprom_base_address+i,address,length))
......@@ -209,7 +209,14 @@ void walk_pre_process(void *module)
float x_move_l,y_move_l,z_move_l,a_move_l,b_move_l,c_move_l;
float pelvis_offset_r,pelvis_offset_l;
float angle[14],ep[12];
static unsigned char first=0x01;
if(first==0x01)
{
first=0x00;
update_param_time(walk);
update_param_move(walk);
}
if(walk->time==0)
{
update_param_time(walk);
......@@ -431,7 +438,7 @@ void walk_set_period(void *module,unsigned short int period_ms)
{
TWalkMModule *walk=(TWalkMModule *)module;
walk->walk_period=((float)period_ms)/1000000.0;
walk->walk_period=((float)period_ms);
}
void walk_set_module(void *module,unsigned char servo_id)
......@@ -461,11 +468,6 @@ unsigned char walk_init(TWalkMModule *walk,TMemory *memory,unsigned short int ra
walk->running=0x00;
walk->leg_ik_function=0x00000000;
// update_param_time(walk);
// update_param_move(walk);
// walk_pre_process(walk);
/* initialize the motion module */
mmodule_init(&walk->mmodule);
walk->mmodule.id=MM_WALK;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment