:robot: Robotic Arm Manipulation

:robot: Robotic Arm Manipulation

Autonomous pick-and-place

This project used a ReactorX 200 robot arm paired with a Realsense RGB-D camera to pick, place, sort, and stack colored blocks of various shapes and sizes. To control the motion of the robotic arm, we utilized the product of exponentials (POE) method to map the links of the spatial kinematic chain and obtain the position and velocity of the end effector. We also developed an inverse kinematics geometric algorithm to find all possible solutions for joint angles. The camera was suspended above the board, and the block detection algorithm used the RGB image and depth information to detect block geometry and color. All of this information was fed into a state machine with motion planning and transitional logic to address task requirements.

Skills and Learnings:

Block Stacking Robot

We chose to use a Lynx robot arm to perform actions of locating, picking up, and stacking small blocks. In doing so, we explored several functions: orienting the gripper and grasping the blocks, accounting for droop and weight of the block and Lynx arm itself, and continuously updating the planner to reflect the changing environment for ensured collision prevention. By developing a solution to this problem using Matlab, we gained a stronger understanding of how to finely tune a planner with both velocity, weight, and obstacle considerations.

PseudoCode

  1. Load custom map
  2. Generate Configuration space (C-space)
  3. Execute A* path planning to a reachable configuration within a set tolerance of the block, orienting the gripper at end position
  4. Utilize velocity inverse kinematics to lower the gripper. Close and raise using IK velocity
  5. Execute A* path planning to a viable configuration within tolerance of the target stack location, once again orienting the gripper at the end position
  6. Use IK velocity to lower the block onto the stack, open to release and raise end effector vertically up
  7. Update obstacles in C-space
  8. Repeat, starting with A* to reach next block
Lynx Robot Arm Stacking 5 Blocks

Project Paper

Skills and Learnings: