Skip to content

Gripper

The gears are inside the body (drawn see-through).Clamp width20–45 mm (label)Load150 g maximumSize110 × 90 × 60 mm

From the gripper label:

Item Value
Name 自适应夹爪 myCobot_gripper_ag (adaptive gripper)
Type End effector
Clamp width 20–45 mm (the range of object sizes)
Maximum load 150 g
Size 110 × 90 × 60 mm
  • One servo in the body turns a gear. The gear meshes with a second gear, which turns the other way.
  • On each side, the geared link and a parallel link carry the finger (a parallelogram). The finger moves on an arc and stays parallel to the other finger.
  • The finger pads are black rubber. Closed without an object, the pads stay a few millimetres apart; they do not touch. Open, they are about 43 mm apart.
  • The drawing above uses the outlines and pivots of Elephant’s 3D model (see Model). Its gripper matches the photos of this gripper.
Flange faceLEGO-style holes4 threaded brass insertsATOM socket on topgroup 6 (drawing below)Side port3 pins, for thegripper cableflangeLEDmatrixJ5 belowThe hole pattern is schematic. Count the holes on the robot before you design a part for the flange.
  • Mount: two black LEGO Technic-style pins on the back face of the body go into the holes of the flange. The side faces of the body also have LEGO-style holes.
  • Cable: one cable with a 3-pin white plug. It connects to the 3-pin side port at the end of the arm. Without a tool J6 turns without an end stop; with the gripper on, the cable limits J6.

The gripper is mounted at 45° to the flange, so that J6 has the largest range on both sides of zero. Look at the flange face (the LEGO holes) with J6 at 0°:

Part Position on the flange face
Fingers One bottom left, one top right (on a diagonal)
Gripper servo Top left
Cable Leaves the body at the top right and goes to the 3-pin side port at J5

With only J6 limp, the cable stops J6 at −237.1° and +139.9° (scripts/measure_joint_range.jl 6). The J6 limits are −225° to +135° (one full turn; J6 is multi-turn from firmware 4.5, see Robot).

The robot description has the gripper since 2026-10-06. Set the xacro argument gripper:=true. The generator writes the arm with the gripper to mycobot_280_arduino_gripper.urdf.

The model comes from Elephant’s model of this gripper for the 280 M5 arm: mycobot_ros/mycobot_description/urdf/mycobot_280_m5/mycobot_280m5_with_gripper_parallel.urdf. urdf/adaptive_gripper/ in the same package has the same meshes and finger joints, but no mount. The outlines of these meshes match the photos of this gripper. Our model:

Item Our model Elephant’s model
Meshes gripper_base.dae, gripper_left1–3.dae, gripper_right1–3.dae (millimetres, scale 0.001) The same
Mount Fixed joint joint6output_to_gripper_base, 34 mm along the J6 axis, roll 90°, then the mount angle (below) 34 mm, roll 1.579 rad
Actuated joint gripper_controller, −0.70 rad (closed) to +0.15 rad (open) −0.78 or −0.7 to +0.15 rad
Other finger joints Five joints that follow gripper_controller (mimic, multiplier ±1). Their limits are the range that the mimic gives. Limits narrower than the mimic range (urdf-loader then stops the fingers)
Finger joints on the body 7.5 mm nearer the flange than in Elephant’s model —
Mass and inertia None. The masses are not known. Placeholders (0.1 kg on every link)
Collision The visual meshes Small cylinders
  • 7.5 mm shift: in Elephant’s model the finger mechanism is 7.5 mm too far from the body. With the shift, the gears are in the slot of the body and the parallel links are on their pivots, as in the meshes’ own coordinates. The drawing at the top of this page uses the same positions.
  • Pad gap in the model: 6.0 mm closed, 43.4 mm open (the inner faces of the finger tips). This agrees with the gripper (a few millimetres closed, about 43 mm open).
  • Body: the back face of the body touches the flange face (1.7 mm along the J6 axis from the flange frame). The 34 mm offset is not measured on this arm.

The xacro property gripper_mount_deg turns the gripper about the J6 axis. It is 0 for this arm (2026-10-06). It is the angle from Elephant’s mount, positive counterclockwise when you look at the flange face. Change it in steps of 45° (the flange holes).

How the value was found:

  1. At the zero pose the arm is upright and the flange face points forward (+x). To look at the flange face, stand in front of the robot. Up is +z. Your left is −y (the robot’s right).
  2. The user’s report and the model at the zero pose agree with mount angle 0. Elephant’s mount on our flange (which is turned 45°) already puts the fingers on a diagonal.
Part Report (look at the flange face, J6 at 0°) Model, gripper_mount_deg = 0
Fingers Bottom left and top right gripper_right1 at −y −z (bottom left), gripper_left1 at +y +z (top right)
Gripper servo Top left The servo box (+z side of gripper_base) at −y +z
Cable Leaves the body at the top right Not in the meshes, not checked

Other values, from the front of the flange:

gripper_mount_deg Fingers Servo
0 (this arm) Bottom left, top right Top left
45 Bottom, top Left
90 Bottom right, top left Bottom left
180 Bottom left, top right (the two fingers change places) Bottom right

The Control page’s 3D view (viewer3d.ts) shows the opening as a fraction. It sets gripper_controller linearly between its limits:

Opening gripper_controller Pad gap (model)
0 (closed) −0.70 rad 6.0 mm
1 (open) +0.15 rad 43.4 mm
Use How
Julia load_mechanism(urdf=...) with mycobot_280_arduino_gripper.urdf. RigidBodyDynamics.jl ignores mimic: the six finger joints are free joints, so the mechanism has 12 positions instead of 6. The default is the arm without the gripper.
Control page ArmView.setGripper(present) swaps the 3D view (solid arm and goal ghost) to the URDF with the gripper. setGripperOpening(fraction) sets the measured opening, setGoalGripperOpening(fraction or null) the opening of the ghost. urdf-loader applies the mimic tags.

The gripper is a Feetech bus servo, ID 7, model 0x070A (registers 3–4), on the same bus as J1–J6 (checked 2026-10-06). Our firmware:

  • looks for it at power-up and then once a second, so it can be connected later; it reads its position 10 times a second while it is there;
  • reports it in the STREAM (present, opening, load) and takes the GRIPPER command (0x11): opening 0 (closed) to 1000 (open) in 0.1 %, or 0xFFFF to turn its torque off. See WebSocket API;
  • works also during MOVE_TO, JOG and TRACK (Live mode), but not during PLAY or PLAY_SIGNAL.

The opening maps linearly to servo steps (servos.yaml, key gripper):

Item Value
End stops (slow scan at 15 % torque, 2026-10-06) 1462 closed, 2048 open (51.5°; the model joint range is 48.7°)
Opening 0 (closed) 1477 (15 steps inside the stop at 1462)
Opening 1000 (open) 2033 (15 steps inside the stop at 2048)
Goal speed 1000 steps/s: the full stroke in about 0.6 s
Torque (registers 16, 28, 48) 1000 (100 %) from firmware 4.7, set by the ATOM when it finds the gripper (servos.yaml, key gripper, torque). Elephant’s values: 140 / 300 / 300 (30 %). Register 28 (protection current) caps register 48.
Thermal derating Above 70 °C the torque limit drops to 500; below 60 °C it is 1000 again (firmware 4.7). Measured at 1000: 45–53 °C in 1–2 min holds. The servo’s own limit (register 13) is 80 °C.

Checked with the camera on 2026-10-06: at 2033 the jaws are wide open, at 1477 the pads almost touch. The stock calibration point (2048) is the open end.

Servo registers as found (2026-10-06): firmware 3.40, angle limits 0–4095, P/D/I 150/150/0, offset −889 (the stock calibration), torque off, goal speed 0.

On the Control page a J7 strip appears next to J6 when the ATOM finds the gripper.

pymycobot sends these stock-ATOM commands (FE FE frames):

Command Code Data
GET_GRIPPER_VALUE 0x65 Reply: opening, 0–100
SET_GRIPPER_STATE 0x66 flag (0 open, 1 close, 10 release), speed 1–100
SET_GRIPPER_VALUE 0x67 opening 0–100, speed 1–100
SET_GRIPPER_CALIBRATION 0x68 The present position becomes 2048
IS_GRIPPER_MOVING 0x69 Reply: 0 or 1

The gripper is a bus servo with ID 7 (checked 2026-10-06). The evidence before:

  • The stock firmware sends a PING to ID 7 before each angle read. See Stock ATOM protocol.
  • Calibration sets the position to 2048, the centre of a 12-bit Feetech position.

The ATOM controller (above) and the laptop can control it with the same packets as J1–J6.