CHANGELOG
1. Version 5.0.9
Release date: 2025.04.17
1.1 Control Services
1.1.1 New Features
- Largely optimize the performance of control server, now the CPU usage is reduced to less than half of the original.
- Largely optimize launch time of control server, now the launch time is about 8 seconds with x86_64 host and 15 seconds on X5 RDK.
- New feature: maximum torque protection during arm operation
- This feature is intended to prevent the robot from severely damaging surrounding environment and is NOT a guarantee of absolute safety. It is strongly discouraged to solely rely on this feature to conduct any human-related interactions.
- This feature also prevents motor from entering overload or over-temperature state.
- The maximum torque can be set by the Python SDK:
- The default threshold for motor #1 - #3 is
5.0and for motor #4 - #6 is2.0. - New feature: offline replaying
- Paths recorded in the record-replay app can not be downloaded to AIRBOT Play and be played without external control services.
- Double press base board button in Idle mode (constant cyan light effect)
- During downloading, the light effect is rainbow
- When downloading completes, the light effect returns to cyan
- To replay the path once (in offline mode), long press the base board button when USB cable is unplugged (constant white light effect)
- During replaying, the light effect is rainbow
- When replaying completes, the light effect returns to constant white
- To replay the path indefinitely (in offline mode), double press the base board button when USB cable is unplugged (constant white light effect)
- During replaying, the light effect is rainbow
- To interrupt the replaying, press once on the base board button, AIRBOT Play will wait for the current path to finish and then returns to home position and then stops
- New feature: waypoint control mode:
- Two new control modes are added:
PLANNING_WAYPOINTS_PATHandPLANNING_WAYPOINTSPLANNING_WAYPOINTS_PATH: Perform linear interpolation between waypoints in cartesian space, then execute the path without stopping.PLANNING_WAYPOINTS: Perform local planning between adjacent waypoints, join the planned paths then execute the path. Deceleration may occur near waypoints.
- Two new Python SDK methods are added:
move_with_cart_waypointsandmove_with_joint_waypointsmove_with_cart_waypoints: move the robot arm along a series of cartesian waypoints.move_with_joint_waypoints: move the robot arm along a series of joint space waypoints.- please refer to Python SDK reference for detailed usage.
- Two SDK examples are added:
move_with_cart_waypointsandmove_with_joint_waypointsfor demonstration of newly added SDK methods.python3 -m airbot_examples.move_with_cart_waypointspython3 -m airbot_examples.move_with_joint_waypoints
1.1.2 Bug Fixes
- Replace RNE (Recursive Newton-Euler) with deterministic analytical inverse kinematics solution. This solves the wrist flipping issue in previous versions.
- Add check during launch to ensure that for each robot only one control service is currently running
- Add check during launch to ensure that the same CAN bus is not occupied by multiple processes
- Fix the issue of false alarming zero point reference loss when power is unplugged but USB cable is not unplugged
- Fix the jitter issue when performing offline replay
- Fix the light effect:
- The light effect changes from constant green to constant white when powered on but no USB cable is plugged in
- Fix the issue of incorrect zero point reference reset of E2 when powered on.
- The E2 zero point reference is now calibrate at the factory (using the new production tool) and is not affected by the power on state.
- Fix the precision issue of the URDF model. Lower the possibility of false positive collision detection.
1.2 Python SDK
1.2.1 New Features
1.2.2 Bug Fixes
task_kbd_ctrl: Align the home position of the arm with the home position when cleaning up.
2. Version 5.0.8
Release date: 2025.04.10
2.1 Python SDK
2.1.1 New Features
- Add
airbot_py.arm.SpeedProfileclass to set speed profile for arm. Now the speed of the arm can be altered byrobot.set_speed_profile(SpeedProfile.DEFAULT). Currently supported speed profiles are:SpeedProfile.SLOWSpeedProfile.DEFAULTSpeedProfile.FAST: May move too fast. Use at your own risk!
- Add
get_paramsandset_paramsmethod to read / write parameters for internal nodes. Useful paramters:servo_node.moveit_servo.scale.linear: linear speed scale in servo control modesservo_node.moveit_servo.scale.rotational: rotational speed scale in servo control modesservo_node.moveit_servo.scale.joint: joint speed scale in servo control modessdk_server.max_velocity_scaling_factor: velocity scale in planning control modessdk_server.max_acceleration_scaling_factor: acceleration scale in planning control modes
- Add
get_product_infomethod to obtain internal product information (product type, serial number, etc.) - Add exception handler to print details of exceptions in a human-readable format.
- Add logging config for examples
- Add end effector control in keyboard control example (using
[and]to control) - Add speed profile switch in keyboard control example (using
ENTERto switch) - Add joint-space and cartesian-space switch in keyboard control example (using
SPACEto switch) - Add joint-space control in keyboard control example (using
1,2,3,4,5,6,7,8,9,0,-,=to control) - Add speed profile arguments in examples
-S [fast, default, slow] - Add product infomation print in get examples (
get_joint_posandget_end_pose) - Add position syncing before following in the
task_followexample
2.1.2 Bug Fixes
- Fix
Nonereturned byget_joint_eff - Use enum class
RobotModeto replace plain integer to represent robot mode. Output ofrobot.get_control_mode()is nowRobotModeinstead of integer. - Use enum class
Stateto replace plain integer to represent robot state. Output ofrobot.get_state()is nowStateinstead of integer. - Unify the interfaces of end effector, now
list[float]is passed and returned forget_eef_pos,set_eef_posandservo_eef_pos. - Add support for Python 3.8 (to support Ubuntu 20.04)
- Fix the incorrect always-true return value of
load_appandunload_appmethods. - Fix the exception raised by
servo_eef_posandmove_eff_pos
2.2 Control Service
2.2.1 Bug Fixes
- Slow down the speed of the arm on exit when returning to the starting point
- Add torque limit to end effector controller to prevent motor entering overload or over-temperature state.
- Fix the bugs when trying to load
record_replay_app - Disable internal singularity check in
moveit2, to avoid stuck when in servo control modes. - Fix possible timeout when sending planning request in
PLANNING_POSmode
2.3 Shipping
2.3.1 New Features
Based on the 5.0.8 version of airbot-configure,
airbot_fsmis available now to launch control server in a docker container:-
airbot_iapis available now to upgrade the firmware of the boards.Firmware upgrade must not run simultaneously with control server!
2.3.2 Bug Fixes
- Use
199as the default ROS Domain ID to avoid conflict with other ROS 2 nodes.