Skip to content

arm_calibration

Rodrigo Serra edited this page Nov 28, 2023 · 1 revision

Calibration files:

  • Arm first joint position on body: mbot_description/xacro/mbot_with_left_ist_arm.urdf.xacro

  • Joint offsets: mbot_drivers/cyton_gamma_1500_driver/ros/launch/dynamixel_joint_state_republisher.launch

Procedure:

  1. rosrun mbot_rqt mbot_rqt to point the head camera to the arm and visually adjust (looking at the pointcloud and the robot model in rviz) map the offsets in mbot_with_left_ist_arm.urdf.xacro. The head camera must be well calibrated.

  2. Accurately move the arm so that each joint is in its zero position, and set to zero each joint_offset param in dynamixel_joint_state_republisher.launch. Keep the arm with all joints in zero position until the calibration is finished.

  3. execute (or re-execute) bringup_mbot, moveit, and rosrun moveit_commander moveit_commander_cmdline.py

  4. in the moveit_commander_cmdline.py command line, execute these commands:

use left_arm
current

The command current prints the current angle of each joint (starting from joint 0).

  1. set the joint_offset param to the opposite value printed by current for each joint in dynamixel_joint_state_republisher.launch.

E.g.: if the current joint 2 angle is 0.012, set

<param name="joint_offset" value="-0.012"/>
...
<param name="motor_id" type="int" value="2"/>
  1. re-launch bringup_mbot to update the offset parameters, and check again the current joint angles. If the calibration is correct, every angle measured with command current should be very close to zero if the arm is positioned in its zero configuration.

Clone this wiki locally