Monkeybot

From Mech
Jump to navigationJump to search
Moneybot Picture




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 two
 Motor on clockwise for C milliseconds
 Motor off
 Magnet two on
 Release magnet one
 Motor on clockwise for D milliseconds
 Motor off
 Magnet one on

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

Mechanical Design

Parts List

The robot contains:

           Two acrylic links
           Two rotational ball-bearings
           Two electro-magnets
           Two rotary encoders
           One Pittmann GM8224 DC Motor with 19.5:1 Gear Head

Design Considerations

The two links, made of 1/8” thick acrylic, create the body of the robot and create a mount for both bearings and the motor. The thickness and the material was chosen to minimize weight, and thus the torque required to swing the robot. The links were produced using a laser cutter. The rotational ball bearings mount on the links and hold the magnets, allowing the robot to swing around a fixed point. The encoders are mounted above the magnets on a bridge, so that they are capable of measuring the rotation of the link around the magnet.

The Pittman motor was chosen to provide enough torque to the links to overcome friction. The gear head is also needed to get the necessary torque. With the gear head, the Pittmann is capable of providing 2.1 Nm of torque, which is more than enough for this application. However, the motor is rather large and thus increases the overall weight of the system.

The data sheet for the Pittamnn motor can be found here.

Electrical Design

Code

Results and Reflections

We successfully created a climbing robot, however, the monkeybot was not as intelligent as we had originally hoped. It was unable to swing itself up from rest using a variety of closed loop control laws, most likely due to the large amounts of friction. To combat the high friction, we started the swinging link with some potential energy. From that point, it was relatively simple to design and tune an open loop time based algorithm which causes the robot to climb.

A closed loop control system using encoders on both the magnets and the motor would improve this project. With this feedback, all of the necessary angles are known and thus the state of the robot is known at all times. If the robot knows its own position, it is better able to adjust to errors, such as a magnet slipping or variations in friction. An open loop time based algorithm can not adjust itself, as the timing of the sequence is hard coded.