English | 中文
Secure both sides of the platform with G-clamps.
Each robotic arm base has two ports: power and signal.
XT30 is the 24V power input.
The Type-C port is the CAN signal interface.
Each arm base contains a CAN signal board, identified by its CAN device ID.
Recommended device ID assignment is shown below; refer to the single-arm manual when configuring.
| Left arm | CAN1 |
|---|---|
| Right arm | CAN3 |
| Head arm | CAN0 |
sudo apt update
./01_global_nopasswd_sudo.sh.x
./setup.sh
If the device has not been changed, configuration is only needed once.
When setting up multiple devices, configure them one at a time. After one device is configured, you can plug in the next one and configure it directly, without unplugging and re-plugging.
Plugging them in one at a time is how you tell which arm is which. Recommended: left arm can1, right arm can3.
Double-click /ARX_CAN_doctor to launch it.
Recommended: left arm can1, right arm can3.
After clicking Configure, wait for the log to report a successful configuration.
Repeat the same steps for the other CAN devices.
In the doctor, click the Configure button next to each CAN device you need; this configures and starts the device. The setting remains effective as long as the CAN device stays connected to the computer.
Go to the /start_CAN directory and start the corresponding channel:
./arx_can1
//For dual arms, also start
./arx_can3
Single arm:
python3 single_arm_demo.py
Dual arm:
python3 A5_dual_arm_demo.py
set_gripper_pos()
set_ee_pose_xyzrpy(xyzrpy, duration=0) //duration is the time to reach the target in seconds; 0 means reach it at maximum speed
set_joint_positions(positions=positions, duration=0) //duration is the time to reach the target in seconds; 0 means reach it at maximum speed
Joint feedback (position, velocity, torque) + pose feedback
get_joint_positions()
get_joint_velocities()
get_joint_currents()
get_ee_pose_xyzrpy() — Euler angle form
gravity_compensation()
The default value accounts for the gripper only. If you mount a camera or other equipment on the end effector and it drops or lifts, change the end-effector mass as described in <5>.
If it lifts, decrease the value.
If it drops, increase the value.
Go to bimanual/models/
Change link6 mass
Remember to save
If it lifts, decrease the value.
If it drops, increase the value.
| Unit: deg | J1 |
J2 | J3 | J4 | J5 | J6 | 2025-gripper rad |
|---|---|---|---|---|---|---|---|
| min | -150 | 0 | -180 | -90 | -90 | -120 | -3.4 |
| max | 180 | 210 | 0 | 90 | 90 | 120 | 0.1 |
Joint rotation follows the right-hand rule: point your thumb along the joint axis, and your four fingers curl in the positive direction of motor rotation.
The position shown below is the zero position of every joint.
Example for motor 01 on can0:
cansend can0 7FF#00010003
| joint | 1 | 2 | 3 | 4 | 5 | 6 | gripper |
|---|---|---|---|---|---|---|---|
| Motor ID | 1 | 2 | 4 | 5 | 6 | 7 | 8 |
The gripper requires a separate calibration command. Example for can1:
cansend can1 008#FFFFFFFFFFFFFFFE










