lebai-motion-control  3.1.6
lebai motion control C interface
ChangeLog

3.1.6 – 2025-01-14

Add a new function to set base offset limit for cartesian admittance control.

3.1.5 – 2025-01-02

Fix a bug in blend trajectory. The bug will cause the too much computation in blend trajectory when the trajectory velocity is small.

3.1.4 – 2024-09-06

Fix 5A type first axis is libear joint, and the move joint use radius as.

3.1.3 – 2024-08-26

Create a new rotational interpolation for lebai 5A type.

3.1.2 – 2024-05-13

Add test for 5A type machine.

Make artifacis a deb package.

Fix a bug in lmc_tg_set_toward_joint that the speed is not correct.

3.1.1 – 2024-05-06

Refactor the code, put c++ code in same repo.

Add euler zyz representation.

Add support for 5 joint machine.

Add new rotational interpolation method in tg.

2.2.18 – 2023-11-24

Fix the member error_code in lmc_tg_update_state_t not correct problem when call lmc_tg_update_state.

2.2.17 – 2023-09-12

Add two functions in trajectory_generator module. lmc_tg_release_control and lmc_tg_sieze_control.

2.2.16 – 2023-08-01

Fix a bug that when lmc_tg_buffer_speed_line velocity is set to zero, the trajecotry generator is not working correctly.

2.2.15 – 2022-04-21

Add a post smoothing for PPVAT, PTV, PV motion, now jnt_acc_time_constant in lmc_tg_limit will work as smoothing time constatnt parameter(Default 10, set to 0 means no filter).

2.2.14 – 2022-02-22

Add a new function lmc_dyn_estimate_payload_with_twice_strategy to use a two time measure strategy to estimate the pyload parameters.

2.2.13 – 2022-11-25

Add a new function lmc_kin_cal_transform_from_oxy to caculate a transform from 3 points.

2.2.12 – 2022-11-21

Add a new member type in lmc_tg_group_type_t, the member type is SINGROBUST. One can set the member type by calling lmc_tg_set_group .

Add a new api lmc_tg_buffer_singularity_robust_move_line. This function is used to move the singularity robust line. You should set lmc_tg_group_type_t to SINGROBUST before using this function.

2.2.11 – 2022-08-30

Add a new api lmc_tg_set_toward_joint.

Add a new data struct lmc_tg_toward_param_t.

Add a new element in struct lmc_tg_group_type_t.

2.2.11 – 2022-06-23

Rewrite the install script. Now we can cross compile lmc. Add We make the whole lmc build from source code. We only need to install gcc, cmake, git, goxygen. All the other dependencies will be built from source code.

2.2.10 – 2022-05-30

Add a parameter pos_constraints in lmc_tg_speed_param

Add a logic to return singularity error in movel and movec.

Update unit test, update document.

2022-05-13

Add unit test for lmc_kin_get_singularity_type. Fix bugs.

2.2.9 – 2022-05-09

Add a function lmc_kin_get_singularity_type to compute the singularity type for robot.

Data type of error_code in lmc_tg_update_ret_t changed from int to lmc_tg_update_error_code_t.

Update document.

2.2.8 – 2022-05-03

Add a function lmc_tg_get_remain_move_time to get remain move time.

Fix bug in doxygen config.

2.2.7 – 2022-03-16

Add a function lmc_controller_cartesian_admittance_set_task_frame to set task frame in cartesian_admittance_control.

Fix sereval bugs.

2.2.6 – 2022-03-06

Add sereval new functions in GROUP

lmc_group_state_distance

lmc_group_state_pair_collide

lmc_group_state_pair_distance

2.2.5 – 2022-02-27

Add function to compute all the inverse kinematic joint positions: lmc_kin_all_ik_poses.

Add function to compute manipulation measure for a given joint position: lmc_kin_manipulation_measure.

Serveral bug fix.

2.2.4 – 2022-02-17

Minor bug fix.

2.2.3 – 2022-02-13

Add function to config, insert and erase ignore pair.

lmc_group_model_get_ignore_link_pairs

lmc_group_model_insert_ignore_link_pair

lmc_group_model_erase_ignore_link_pair

Add some macro for global config in lmc_config.h, replace the hard coded macro.

2.2.2 – 2022-02-09

Add a new algorithm to estimate tcp force.

lmc_dyn_update_tcp_force_momentum_observer_estimation

lmc_dyn_init_tcp_force_momentum_observer_estimation

So, we change the old tcp force estimation API to a more explicit name.

lmc_dyn_tcp_force -> lmc_dyn_update_tcp_force_direct_estimation

2.2.1 – 2022-01-26

Add a new module GROUP.

This module is used for collision detect and motion plan.

See relative document for more detailed info.

2.1.2 – 2022-01-11

Add a function to compute all link forward kinematics.

lmc_kin_fk_pose_by_index

1 int lmc_kin_fk_pose_by_index(lmc_robot_model_t * const robot_model, double const * const joint_pos, int index, lmc_transform_t * const cart_pose);

2.1.1 — 2022-01-07

Bug fix

Fix a bug that when a cartesian move end point is not reachable, return error and trajectory is generated in buffer.Now no trajectory is generated.

Optimize the blend algorithm

algorithm optimization.

Add a lmc_tg_runtime_data_t.blending in lmc_tg_runtime_data , it indicates whether the trajectory is in a blending situation.

Add a function to get library version

See lmc_version() in lmc_version.h

2021-12-12

Add 5 joint manipulator support.

Change lmc_rm_init API.

1 ### From
2 int lmc_rm_init(lmc_robot_model_t* const robot_model, lmc_robot_model_config_t const* const robot_model_config)
3 ### to
4  int lmc_rm_init(lmc_robot_model_t* const robot_model, lmc_robot_model_config_t const* const robot_model_config, lmc_robot_model_struct_t struct_type)
5 ### the new added struct_type is used to indicate the structure of robot.

2021-12-03

Add a cartesian admittance controller API:

1 lmc_controller_cartesian_admittance_set_dexterity

Now, cartesian admittance control can support Point frame.(Motion frame is still not supported)

Now, move runs correctly in cartesian admittance control mode.

Optimize the cartesian admittance control.

Update test case.

Update documentation.

2021-11-26

Add a cartesian admittance controller API:

1 lmc_controller_cartesian_admittance_set_force_threshold

This API is used to set the force threshold.

2021-11-19

Add a cartesian admittance controller API:

1 lmc_controller_cartesian_admittance_cleanup

This API is used for deactivate(reset) controller.

2021-11-14

Add cartesian admittance controller functions.

all the lmc_controller_cartesian_admittance _xxx functions are for this controller.

2021-10-20

Change dynamic module. Now the dynamic module contains only basic dynamic algorithm.

Add a new module controller. The controller module contains some control block API.

Change, remove or add some data structures.

For dynamic module:

lmc_dyn_gravity_compensate -> lmc_controller_gravity_compensate

lmc_dyn_computed_torque_control -> lmc_controller_computed_torque

For controller module:

2021-09-18

Add functions: