Movement types

Almond Bot can move in 3D space by setting the Pose of the robot or setting the Joints of the robot.

Pose Control

Pose control let’s you specify the position and orientation of the end effector relative to the base frame. You can specify the pose in absolute or relative coordinates.

Set absolute pose

In this example, we’re setting the robot’s end effector to be 100mm in the x direction, 100mm in the y direction, and 100mm in the z direction from the base frame.

await client.set_tool_pose(Pose(x=100, y=100, z=100, roll=0, pitch=0, yaw=0))

Set relative pose

In this example, we’re moving the robot 100mm in the x direction from it’s current position.

await client.move_relative(Pose(x=100))

Joint Control

Joint control let’s you specify the position of the robot in joint space. You can specify the joints in absolute or relative coordinates.

Set absolute joint

In this example, we’re setting each joint to 0 degrees.

await client.set_joints(Joints(j1=0, j2=0, j3=0, j4=0, j5=0, j6=0))

Set relative joint

In this example, we’re moving the robot’s base joint 10 degrees from it’s current position.

await client.move_relative(Joints(j1=10))

Gripper Control

Almond Bot has a gripper that can be opened and closed with a given force.

Open/Close gripper

# Open the gripper
await client.open_gripper()

# Close the gripper
await client.close_gripper()

Set gripper stroke

# Set the gripper stroke to 50% of the maximum stroke with 20% of the maximum force
await client.set_gripper_stroke(stroke=0.5, force=0.2)