130 double blend_radius; ;
Cartesian translation coordinate.
lmc_tg_update_state_t lmc_tg_get_update_state(lmc_tg_t const *const tg)
Get trajectory generator update state.
void lmc_tg_recovery(lmc_tg_t *const tg)
This function recover the error, only call this function when the trajectory update in error state...
lmc_tg_group_type_t group_type
Limitation data structure for trajectory generator.
Trjecotry generator update ret value.
lmc_tg_buffer_ret_t lmc_tg_set_toward_joint(lmc_tg_t *const tg, int id, double const *const target, lmc_tg_toward_param_t const *const param)
Try to set new toward joint target.
size_t lmc_tg_get_buffer_size(lmc_tg_t const *const tg)
Get number of buffered trajectory .
struct lmc_tg_update_ret lmc_tg_update_ret_t
Trjecotry generator update ret value.
Trjecotry generator toward parameter.
struct lmc_tg_move_param lmc_tg_move_param_t
Trjecotry generator move parameter.
lmc_tg_update_error_code
Trjecotry generator update error code, when error happens, check the type for error.
Trjecotry generator runtime data.
unsigned int interruptable
lmc_tg_buffer_ret_t lmc_tg_buffer_move_joint_pt(lmc_tg_t *const tg, int id, double duration, lmc_joint_cmd_t const *const joint_data)
Try to add a joint move pt trajectory.
lmc_tg_buffer_ret_t lmc_tg_buffer_move_joint_pvt(lmc_tg_t *const tg, int id, double duration, lmc_joint_cmd_t const *const joint_data)
Try to add a joint move pvt trajectory.
struct lmc_tg_speed_param lmc_tg_speed_param_t
Trjecotry generator speed parameter.
lmc_tg_buffer_ret_t lmc_tg_buffer_move_circle(lmc_tg_t *const tg, int id, lmc_translation_t const *const way_point, lmc_transform_t const *const target, lmc_tg_move_param_t const *const param)
Try to add a move circle trajectory to buffer using way point and end pose.
int lmc_tg_set_limit(lmc_tg_t *const tg, lmc_tg_limit_t const *const limit)
Set trajectory generator limit parameters.
lmc_tg_buffer_ret_t lmc_tg_buffer_move_line(lmc_tg_t *const tg, int id, lmc_transform_t const *const target, lmc_tg_move_param_t const *const param)
Try to add a move line trajectory to buffer.
Transform velocity representation.
lmc_tg_update_error_code_t error_code
void lmc_tg_set_vel_scale(lmc_tg_t *const tg, double scale)
Set the velocity scale of trajectory data range from 0.0 to 1.0.
Trajectory generator configuration data structure.
void lmc_tg_sieze_control(lmc_tg_t *const tg, double vel_scale)
Sieze the control after release it. it will move from current position to the position when release...
Configuration data structure for trajectory generator.
int lmc_tg_get_buffer_full(lmc_tg_t const *const tg)
Get if buffer is full.
lmc_tg_buffer_ret_t lmc_tg_buffer_singularity_robust_move_line(lmc_tg_t *const tg, int id, lmc_transform_t const *const target, lmc_tg_move_param_t const *const param)
Try to add a singlarirty robust move line trajectory to buffer. This trajectory will try to avoid sin...
unsigned int smooth_move_to_next
lmc_tg_update_state
Trajectory generator update state.
lmc_tg_buffer_ret_t lmc_tg_buffer_move_joint(lmc_tg_t *const tg, int id, double const *const target, lmc_tg_move_param_t const *const param)
Try to add a move joint trajectory to buffer.
lmc_tg_space_type
Trajectory generator space type.
int lmc_tg_get_updated_date(lmc_tg_t const *const tg, lmc_joint_cmd_t *const joint_cmd, lmc_tg_runtime_data_t *const tg_runtime_data)
Get usefull trajectory generator update data.
struct lmc_tg_toward_param lmc_tg_toward_param_t
Trjecotry generator toward parameter.
Joint related data structure.
struct lmc_tg_runtime_data lmc_tg_runtime_data_t
Trjecotry generator runtime data.
int lmc_tg_set_group(lmc_tg_t *const tg, lmc_tg_group_type_t group)
This function set group, group change must be done by manual. The trajectory type under current group...
enum lmc_tg_space_type lmc_tg_space_type_t
Trajectory generator space type.
unsigned int pos_constraints
void lmc_tg_stop_trajectory(lmc_tg_t *const tg)
This function stop the trajecotry with an deceleration.
lmc_tg_buffer_ret_t lmc_tg_buffer_move_joint_pvat(lmc_tg_t *const tg, int id, double duration, lmc_joint_cmd_t const *const joint_data)
Try to add a joint move pvat trajectory.
Euler zyx representation of rotation.
enum lmc_tg_update_error_code lmc_tg_update_error_code_t
Trjecotry generator update error code, when error happens, check the type for error.
lmc_tg_buffer_ret_t lmc_tg_buffer_speed_line(lmc_tg_t *const tg, int id, lmc_twist_t const *const t, lmc_tg_speed_param_t const *const param)
Try to add a speed linear trajectory to buffer.
lmc_tg_group_type_t lmc_tg_get_group(lmc_tg_t *const tg)
This function get current group.
struct lmc_robot_model lmc_robot_model_t
Robot model data structure.
enum lmc_tg_buffer_ret lmc_tg_buffer_ret_t
trjecotry generator buffer xxx function ret
int lmc_tg_get_buffer_empty(lmc_tg_t const *const tg)
Get if buffer is empty.
lmc_tg_update_state_t state
void lmc_tg_set_joint_pos(lmc_tg_t *const tg, lmc_joint_state_t const *const joint_state)
This function set current joint anchor point of trajectory generator caculation. It must be called wh...
lmc_tg_buffer_ret
trjecotry generator buffer xxx function ret
lmc_tg_update_ret_t lmc_tg_update(lmc_tg_t *const tg)
Core calculation function of trajectory generator, always call it in realtime loop,.
void lmc_tg_cleanup(lmc_tg_t *const tg)
Cleanup all runtime data of trajectory generator.
lmc_tg_buffer_ret_t lmc_tg_buffer_speed_joint(lmc_tg_t *const tg, int id, double const *const vel, lmc_tg_speed_param_t const *const param)
Try to add a speed joint trajectory to buffer.
int lmc_tg_update_joint_state(lmc_tg_t *const tg, lmc_joint_state_t const *const joint_state)
Update trajectory generator joint state, should be called in realtime loop, update every cycle...
void lmc_tg_delete(lmc_tg_t **tg_addr)
Delete a trajectory generator instance.
struct lmc_tg lmc_tg_t
Trajectory generator data structure.
enum lmc_tg_group_type lmc_tg_group_type_t
Trjecotry generator group type.
lmc_tg_space_type_t space_type
Trjecotry generator move parameter.
lmc_tg_group_type
Trjecotry generator group type.
lmc_tg_t * lmc_tg_new()
Create a trajectory generator instance.
void lmc_tg_interrupt_trajectory(lmc_tg_t *const tg)
This function interrupt current running the trajecotry if it's interruptable. After current trajector...
Robot model related data structures and functions.
int lmc_tg_init(lmc_tg_t *const tg, lmc_robot_model_t const *const robot_model, lmc_tg_config_t const *const config)
Init a trajectory generator.
double lmc_tg_get_remain_move_time(lmc_tg_t const *const tg)
Get total time to move remain trajectoies in buffer.
void lmc_tg_release_control(lmc_tg_t *const tg, double t)
Give up the control of trajectory generator, the trajectory generator will output as lmc_tg_update_jo...
lmc_tg_buffer_ret_t lmc_tg_buffer_move_circle_by_angle(lmc_tg_t *const tg, int id, lmc_translation_t const *const way_point1, lmc_translation_t const *const way_point2, double angle, lmc_euler_zyx_t const *const target_rot, lmc_tg_move_param_t const *const param)
Try to add a move circle trajectory to buffer using two way point and angle.
Trjecotry generator speed parameter.
enum lmc_tg_update_state lmc_tg_update_state_t
Trajectory generator update state.