Featured image of post d'Arbeloff Crane

d'Arbeloff Crane

I completed an Undergraduate Research Project in the MIT d’Arbeloff lab to automatically manipulate objects with gantry cranes, for use in environments such as a Boeing warehouse. Cranes are underactuated and hard to control. My specific goal was to autonomously hook onto a fixture.

I wrote up the analysis of this project here.

Hook Design

I brainstormed 16 possible hook design ideas, because this structure would be the foundation of the hooking strategy. I narrowed down to 3 potential candidates, which I tested physically. I learned that the simplest one was most effective, and I added some more features to make it more stable.

Code

I cleaned up the codebase immensely by making utilities for common code patterns. I put those utilities in a public python package so that other projects in the lab could make use of them. The package exposes a Coord class that represents an Affine coordinate, or homogeneous coordinate. It represents a complete pose, and can be manipulated very readably. I also cleaned up the ROS setup so that it was more tightly integrated and could be started from a single command.

Sample code snippet using old patterns

Equivelant code snippet using my library

Results

The final system used computer vision to find the target to hook to. It then moved the gantry crane to the correct location using a PID control loop and an IR positioning system, and attached onto the target object by moving the hook across a target. It detects that the hook is properly caught by measuring current draw on the winch. This detection was finicky due to noise in the current readings, and the O-drive motor controllers did not expose more legible sensor data. In the future, this detection would be done with IMU feedback from the hook itself.

Built with Hugo
Theme Stack designed by Jimmy