diff --git a/dynamixel_manager/include/modules/old/walking.h b/dynamixel_manager/include/modules/old/walking.h deleted file mode 100755 index 30bc04e06e2d59fcf8dc4be369adcad289250b66..0000000000000000000000000000000000000000 --- a/dynamixel_manager/include/modules/old/walking.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _WALKING_H -#define _WALKING_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "stm32f1xx.h" -#include "motion_manager.h" - -// public functions -void walking_init(uint16_t period_us); -void walking_set_period(uint16_t period_us); -uint16_t walking_get_period(void); -void walking_start(void); -void walking_stop(void); -uint8_t is_walking(void); - -// operation functions -uint8_t walking_in_range(unsigned short int address, unsigned short int length); -void walking_process_read_cmd(unsigned short int address,unsigned short int length,unsigned char *data); -void walking_process_write_cmd(unsigned short int address,unsigned short int length,unsigned char *data); -// motion manager interface functions -void walking_process(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/dynamixel_manager/include/modules/walk.h b/dynamixel_manager/include/modules/walk.h new file mode 100755 index 0000000000000000000000000000000000000000..819a66b1eb3440efc75e382be3716e118dd0d256 --- /dev/null +++ b/dynamixel_manager/include/modules/walk.h @@ -0,0 +1,29 @@ +#ifndef _WALK_H +#define _WALK_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "motion_module.h" +#include "memory.h" + +typedef struct{ + TMotionModule mmodule; + TMemory *memory; + TMemModule mem_module; + unsigned short int ram_base_address; + unsigned short int eeprom_base_address; +}TWalkMModule; + +// public functions +unsigned char walk_init(TWalkMModule *walk,TMemory *memory,unsigned short int ram_base_address,unsigned short int eeprom_base_address); +void walk_start(TWalkMModule *walk); +void walk_stop(TWalkMModule *walk); +unsigned char is_walk(TWalkMModule *walk); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/dynamixel_manager/include/modules/walk_registers.h b/dynamixel_manager/include/modules/walk_registers.h new file mode 100644 index 0000000000000000000000000000000000000000..8d2ee7c8a2bbb512950a7f4d2f4e7998968653fd --- /dev/null +++ b/dynamixel_manager/include/modules/walk_registers.h @@ -0,0 +1,59 @@ +#ifndef _WALK_REGISTERS_H +#define _WALK_REGISTERS_H + +#define RAM_WALK_LENGTH 4 + +#define WALK_CNTRL 0// bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 + // current phase walking stop walking start walking + #define WALK_START 0x01 + #define WALK_STOP 0x02 + #define WALK_RUNNING 0x10 + #define WALK_CURRENT_PHASE 0xC0 +#define WALK_STEP_FW_BW 1 +#define WALK_STEP_LEFT_RIGHT 2 +#define WALK_STEP_DIRECTION 3 + +#define EEPROM_WALK_LENGTH 19 + +#define WALK_X_OFFSET 0 +#define WALK_Y_OFFSET 1 +#define WALK_Z_OFFSET 2 +#define WALK_ROLL_OFFSET 3 +#define WALK_PITCH_OFFSET 4 +#define WALK_YAW_OFFSET 5 +#define WALK_HIP_PITCH_OFFSET 6 +#define WALK_PERIOD_TIME 8 +#define WALK_DSP_RATIO 10 +#define WALK_STEP_FW_BW_RATIO 11 +#define WALK_FOOT_HEIGHT 12 +#define WALK_SWING_RIGHT_LEFT 13 +#define WALK_SWING_TOP_DOWN 14 +#define WALK_PELVIS_OFFSET 15 +#define WALK_ARM_SWING_GAIN 16 +#define WALK_MAX_VEL 17 +#define WALK_MAX_ROT_VEL 18 + +#define walk_eeprom_data(name,section_name,base_address,DEFAULT_X_OFFSET,DEFAULT_Y_OFFSET,DEFAULT_Z_OFFSET,DEFAULT_ROLL_OFFSET,DEFAULT_PITCH_OFFSET,DEFAULT_YAW_OFFSET,DEFAULT_HIP_PITCH_OFFSET,DEFAULT_PERIOD_TIME,DEFAULT_DSP_RATIO,DEFAULT_STEP_FW_BW_RATIO,DEFAULT_FOOT_HEIGHT,DEFAULT_SWING_RIGHT_LEFT,DEFAULT_SWING_TOP_DOWN,DEFAULT_PELVIS_OFFSET,DEFAULT_ARM_SWING_GAIN,DEFAULT_MAX_VEL,DEFAULT_MAX_ROT_VEL) \ +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_ROLL_OFFSET,base_address+WALK_ROLL_OFFSET, \ + DEFAULT_PITCH_OFFSET,base_address+WALK_PITCH_OFFSET, \ + DEFAULT_YAW_OFFSET,base_address+WALK_YAW_OFFSET, \ + DEFAULT_HIP_PITCH_OFFSET&0x00FF,base_address+WALK_HIP_PITCH_OFFSET, \ + (DEFAULT_HIP_PITCH_OFFSET>>8)&0x00FF,base_address+WALK_HIP_PITCH_OFFSET+1, \ + DEFAULT_PERIOD_TIME&0x00FF,base_address+WALK_PERIOD_TIME, \ + (DEFAULT_PERIOD_TIME>>8)&0x00FF,base_address+WALK_PERIOD_TIME+1, \ + DEFAULT_DSP_RATIO,base_address+WALK_DSP_RATIO, \ + DEFAULT_STEP_FW_BW_RATIO,base_address+WALK_STEP_FW_BW_RATIO, \ + DEFAULT_FOOT_HEIGHT,base_address+WALK_FOOT_HEIGHT, \ + DEFAULT_SWING_RIGHT_LEFT,base_address+WALK_SWING_RIGHT_LEFT, \ + DEFAULT_SWING_TOP_DOWN,base_address+WALK_SWING_TOP_DOWN, \ + DEFAULT_PELVIS_OFFSET,base_address+WALK_PELVIS_OFFSET, \ + DEFAULT_ARM_SWING_GAIN,base_address+WALK_ARM_SWING_GAIN, \ + DEFAULT_MAX_VEL,base_address+WALK_MAX_VEL, \ + DEFAULT_MAX_ROT_VEL,base_address+WALK_MAX_ROT_VEL}; + +#endif + diff --git a/dynamixel_manager/src/modules/old/walking.c b/dynamixel_manager/src/modules/walk.c similarity index 100% rename from dynamixel_manager/src/modules/old/walking.c rename to dynamixel_manager/src/modules/walk.c