Team Seven/Final Paper

From Maslab 2015
(Difference between revisions)
Jump to: navigation, search
(Mechanical)
Line 4: Line 4:
  
 
==Mechanical==
 
==Mechanical==
 +
Design Principles:
 +
-Modularity
 +
-Space efficiency
 +
-Leave place for electronic components
 +
-Facilitate wiring
  
We cut out and bent metal to desired shapes for various curved parts of the robot, which was pretty effective. Making things modular and easy to replace was also nice.
+
Our robot consisted of 3 systems: collection, elevation & sort.
 +
 
 +
== Collection ==
 +
 
 +
To collect cubes our robot would run over cubes, which would then be oriented by
 +
 
 +
== Elevation ==
 +
 
 +
== Sort ==
  
 
==Electrical==
 
==Electrical==

Revision as of 21:45, 3 February 2015

Contents

Strategy

We ended up deciding to try to make one stack of each color inside the robot, and then find the purple line at the end of match and position the robot so that the right stack was in the right region. Given the number of blocks and amount of time we would have, this was in theory a pretty well-scoring strategy. To stack the blocks, we used a roller to push blocks up a ramp into a pulley system which would use friction on two sides of the block to pull it up. At the top of the pulley system was a piece of metal that knocked blocks onto a flipper, which would turn left or right with a servo to drop the block into the appropriate tower.

Mechanical

Design Principles: -Modularity -Space efficiency -Leave place for electronic components -Facilitate wiring

Our robot consisted of 3 systems: collection, elevation & sort.

Collection

To collect cubes our robot would run over cubes, which would then be oriented by

Elevation

Sort

Electrical

The electronics were mostly centered around a breadboard for power and the Edison for logic. The 15V battery was wired through a fuse and switch to a 15V rail of the breadboard, and a DC-DC converted connected between the 15V rail and another rail provided all our 5V power.

We shorted the battery once because of bad wiring on the breadboard. Make sure the wires you put into your breadboard are stripped short with no wire exposed, and things with potential of shorting are not placed right next to each other. We made heavy use of male connector pins after the short, and this strategy worked pretty well. Also, we color coded wires (black-ground, red-15V, blue-5V, yellow-PWM, green-GPIO), which made it easy to check if things were wired correctly before powering them. Also, twisting and taping wires in the right ways made things neat.

On the final robot, we put all the electronics on a single piece of MDF that could be easily added or removed from the robot, which was extremely useful for example when one person wanted to work on the mechanical side of the robot while another person wanted to test out sensors using the battery and Edison.

Software

We had a class for each type of sensor/actuator we used (gyro, encoder, IR, motor). These contained all the lines of code required to be able to talk to the components (using libmraa) and functions for loops or commands needed to operate them. On top of this, there was a Sensing class that ran a thread for each sensor and provided functions that returned relevant information from the sensors. On top of this there was a Controller class that translated movement commands such as turning or driving straight into commands to the motors using information from Sensing (we made PID loop using the gyro). We didn't have time to implement much more high-level things like a complicated state machine or localization or using the map information, so we just had a main program that ran a simple wall follower using two front facing IR sensors.

Github repo


Lessons Learned

  • Make sure the wires you put into your breadboard are stripped short with no wire exposed, and things with potential of shorting are not placed right next to each other.
  • Learn how to solder properly earlier rather than later.
  • You can get all the sensors/actuators working and software classes written for them before you have a robot. You should always try to do something productive regardless of the state of other systems of your robot.


Also, we want to say a HUGE thank you to all the staff! They were extremely helpful handling any problem and encouraged us in the right directions throughout.