Difference between revisions of "Monkeybot"

From Mech
Jump to navigationJump to search
Line 23: Line 23:
==Geometry==
==Geometry==
[[Image:Monkeybot Geometry|thumb|left|200px|Monkeybot Geometry]]
[[Image:Monkeybot Geometry|thumb|left|200px|Monkeybot Geometry]]
The geometry of the monkeybot, and our definitions of angles is shown to the right. The two angles important to us are the angle between the top link and a horizontal reference, and the angle between the two links. The rotary encoders over the magnet provide a measurement of the first angel, while the motor encoder measures the second.
The monkeybot behaves like a double-pendulum system. The geometry, and our definitions of angles is shown to the right. The two angles important to us are the angle between the top link and a horizontal reference, and the angle between the two links. The rotary encoders over the magnet provide a measurement of the first angel, while the motor encoder measures the second.


With these two angles we are able to implement a variety of control laws as described below.
With these two angles we are able to implement a variety of control laws as described below.

Revision as of 22:21, 17 March 2009

Team Members

Nelson Rosa, Nathan Henry

Nathan Henry - Senior, Mechanical Engineering
Nelson Rosa - Ph.D Student, Mechanical Engineering









Overview

The goal of this project was to create a brachiating robot capable of swinging itself side to side or climbing. This two link robot has electro-magnets on each end and a DC motor at the pivot. With one magnet on, the robot swings under gravity and is aided by a input torque from the motor. This torque allows the swinging robot to overcome friction and pump energy into the system. Once the swinging arm has enough energy, the second magnet reaches a point at the same height or above the first magnet. At this point, the second magnet is turned on the motor is turned off. Now the process is repeated, swinging on the second magnet.

We attempted to control the motor using both a closed loop control, with rotary encoders, and an open loop control, using a time based algorithm.

Video of the monkeybot climbing

Geometry

Monkeybot Geometry

The monkeybot behaves like a double-pendulum system. The geometry, and our definitions of angles is shown to the right. The two angles important to us are the angle between the top link and a horizontal reference, and the angle between the two links. The rotary encoders over the magnet provide a measurement of the first angel, while the motor encoder measures the second.

With these two angles we are able to implement a variety of control laws as described below.










Control Method

Closed Loop Control

Laser Rotary Encoder

We first attempted to control the DC motor using feedback from a rotary encoder placed directly over each magnet. From this encoder, using both the A and B channels, we are able to determine the sign of the top link's velocity. We then implemented a simple control law in which the motor is full on in the same direction that the top link is rotating. This causes the lower link to pump in phase with the top link, mimicking the motion of a person on a swing set.

With this control law we were able to pump energy into the system, however, we were never able to add enough energy to get the bottom magnet to a height equal to or above the top magnet. Starting from a resting position, with the lower link dangling straight down, the bottom link pumps in phase with the top link. The bottom magnet gradually gets higher and higher, but seems to stop increasing when it reaches a height slightly below the fixed magnet. Friction seems to be the main reason why the robot can not climb.

We also implemented a control law where the lower link pumped out of phase with the top link. This caused a large increase in the movement of the top link, however, the bottom magnet stays in nearly the same position throughout.



Open Loop Control

Our second approach was an open loop, time based algorithm. It involves no feedback and is just a simple set of commands implemented by the PIC. In order for the monkeybot to climb, the first link must be started with some potential energy. The magnets are both on and at the same height when the algorithm begins. The algorithm is as follows, it can be tuned by changing the values A,B,C,D which are on the order of 500-600 milliseconds.

 Release magnet one
 Motor on counterclockwise for A milliseconds
 Motor off
 Magnet one on
 Release magnet two
 Motor on counterclockwise for B milliseconds
 Motor off
 Magnet two on
 Release magnet one
 Motor on clockwise for C milliseconds
 Motor off
 Magnet one on
 Release magnet two
 Motor on clockwise for D milliseconds
 Motor off
 Magnet two on

This process is repeated, and overtime, the monkeybot climbs. A video of this can be found here.


Mechanical Design

Electrical Design

Code

Results and Reflections