Difference between revisions of "ECE597 Project Sumo Robot"

From eLinux.org
Jump to: navigation, search
m (Sensors)
m
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The goal of this project is to create a BeagleBoard-powered robot capable of competing in an autonomous sumo competition in the 3.0 kg weight class ([http://www.youtube.com/watch?v=V3OR_sHrOJM an example]).  This would have minor hardware and electronics elements, but would focus on communication with sensors using the BeagleBoard and the Linux kernelAt minimum, this involves sensors to detect the edge of the ring and the opposing robot.
+
[[Category:ECE597Spring2010 |P]]
 +
 
 +
[[File:ECE597SumoRobotBase.jpg|thumb|right|300 px|alt="A four-wheeled robot composed of bolted-together aluminum plates with wide black tires protruding from either side.  On top, two circuit boards are mounted with standoffs, the smaller BeagleBoard on top."]]
 +
 
 +
The goal of this project was to create a [[BeagleBoard]]-powered robot capable of competing in an autonomous sumo competition in the 3.0 kg weight class ([http://www.youtube.com/watch?v=V3OR_sHrOJM an example]).  A chassis was constructed of aluminum and an expansion board created to allow the Beagle to control the motors and connect to the sensors[[BeagleBoardPWM | Software]] was also created to allow PWM control of the motors, but a problem acquiring an important component (an ADC chip to allow reading infrared rangefinders and edge detectors) meant that control was fairly crude, relying on a single ultrasonic rangefinder.  Before the robot could meaningfully compete in a sumo competition this issue would need to be corrected and a plow attached to the front.  The robot is currently being used for general robotic experimentation.
  
 
== Sumo Competition Rules ==
 
== Sumo Competition Rules ==
Line 23: Line 27:
 
* Edge sensors (used to detect the white lines at the edge of the ring)
 
* Edge sensors (used to detect the white lines at the edge of the ring)
 
* USB camera (eventually; low priority)
 
* USB camera (eventually; low priority)
* Contact sensors (Cherry roller leaf switches)
 
  
 
=== Other I/O ===
 
=== Other I/O ===
Line 39: Line 42:
 
* Power requirements
 
* Power requirements
 
** Motors take 7.2 V, 2A (4A at stall)
 
** Motors take 7.2 V, 2A (4A at stall)
** Beagleboard Requires 5V, 350mA
+
** BeagleBoard Requires 5V, 350mA
 
* Power supply
 
* Power supply
 
** [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=BH26AAW-ND 6AA battery holders] (×2)
 
** [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=BH26AAW-ND 6AA battery holders] (×2)
 
** 1A Low Dropout 5 volt regulator - [http://www.national.com/ds/LM/LM2940.pdf LM2940]
 
** 1A Low Dropout 5 volt regulator - [http://www.national.com/ds/LM/LM2940.pdf LM2940]
 
** Voltage divider into ADC (same AD7991 as IR sensors) for low-voltage shutdown
 
** Voltage divider into ADC (same AD7991 as IR sensors) for low-voltage shutdown
 +
 +
== Interface Board ==
 +
An interface board was designed that implements many of the core features listed above.  The board was designed in OrCAD.  The schematic, board, and artwork is available [[Media:Sumo.zip|here]].  Please see the included readme.  Ideally, the board would be enlarged or everything switched to surface mount components to allow for more features to be added.  This design can easily be milled so long as the holes can be plated.
 +
 +
Here are the features that were implemented:
 +
 +
*Power
 +
**5V Low Dropout (LDO) Linear Regulator
 +
**3.3V LDO Linear Regulator
 +
**Phoenix connector for power input
 +
*Beagleboard connector (ribbon cable to Beagleboard)
 +
*Motor drivers
 +
**4x L298, one for each motor
 +
**Flyback diodes
 +
**Logic gates (74HC04 and 74HC08) to control high and low side drivers in L298
 +
*Connectors
 +
**2x Phoenix connectors for motors
 +
**2x headers for GP2D12
 +
**2x headers for USF08
 +
**2x headers for optical sensors
 +
**2x headers for bump switches
 +
*Components
 +
**2x MAX3378 level shifters
 +
**Analog to Digital Converter (for IR and optical sensors)
 +
**2x 5v header
 +
**5v I2C header
 +
 +
=== Power ===
 +
The power input is used directly for the motors and regulated down to 5v and 3.3v.  7.2V rechargeable battery packs can be used.
  
 
== Tasks ==
 
== Tasks ==
 +
 +
[[File:ECE597SumoRobotPanels.svg|thumb|right|400 px|Drawing of the robot's aluminum panels (click for details).]]
  
 
* Build physical robot [On track]
 
* Build physical robot [On track]
 
** Drivetrain [Mostly complete]
 
** Drivetrain [Mostly complete]
 
*** Water-cut plates [Done]
 
*** Water-cut plates [Done]
*** Cut corner fasteners [Mostly complete] (front and rear panel corners need work)
+
*** Cut corner fasteners [Done]
*** Assemble [Mostly complete]
+
*** Assemble [Done]
 
** Electronics box (to be done after electronics have been completed) [Not started]
 
** Electronics box (to be done after electronics have been completed) [Not started]
 
* Construct electronics [In Progress]
 
* Construct electronics [In Progress]
 
** Acquire AA NiMH batteries (×12) [Done]
 
** Acquire AA NiMH batteries (×12) [Done]
** Acquire 6AA battery holders (×2) [Not started]
+
** Acquire 6AA battery holders (×2) [Done]
** Acquire Sensors [Mostly complete]
+
** Acquire Sensors [Done]
 
*** SRF08 sonic rangefinders (×2) [Done]
 
*** SRF08 sonic rangefinders (×2) [Done]
 
*** GP2D12 IR rangefinders (×2) [Done]
 
*** GP2D12 IR rangefinders (×2) [Done]
 
*** ADXL345 3-axis accelerometer [Done]
 
*** ADXL345 3-axis accelerometer [Done]
*** Edge sensors [Not started]
+
*** Edge sensors [Done]
 
** Manufacture PCB [Not started]
 
** Manufacture PCB [Not started]
*** Create PCB Schematic [Not started]
+
*** Create PCB Schematic [Done]
*** Layout PCB [Not started]
+
*** Layout PCB [Done]
*** Mill board [Not started]
+
*** Mill board [Done]
 
*** Acquire Misc board components [In progress]
 
*** Acquire Misc board components [In progress]
 
**** L298 H-bridges (×4) [Done]
 
**** L298 H-bridges (×4) [Done]
**** Level shifter
+
**** Level shifter [Done]
 
**** ADC [Not started]
 
**** ADC [Not started]
*** Place Components [Not started]
+
*** Place Components [Partially done]
*** Test Board [Not started]
+
*** Test Board [Partially done]
 
* Interface Beagle with external components
 
* Interface Beagle with external components
** I2C (sonic rangefinders, accelerometer) [In progress]
+
** I2C (sonic rangefinders, accelerometer) [Done]
** PWM (motor control) [Completed]
+
** PWM (motor control) [Done]
** ADC (IR rangefinders, edge sensors) [Completed]
+
** ADC (IR rangefinders, edge sensors) [Done]
** GPIO (LED, buttons, motor control) [In progress - Waiting on MUX]
+
** GPIO (LED, buttons, motor control) [Done]
* Write control software [Not started]
+
* Write control software [Partially done]
** Low-level motor control [In progress]
+
** Low-level motor control [Done]
 
** Detect and prevent exit from arena [Not started]
 
** Detect and prevent exit from arena [Not started]
 
** Detect and ram competitor [Not started]
 
** Detect and ram competitor [Not started]
Line 91: Line 125:
 
== Links ==
 
== Links ==
 
* [http://circ.mtco.com/competitions/2010/rules/sumo Sumo rules].
 
* [http://circ.mtco.com/competitions/2010/rules/sumo Sumo rules].
 +
* [[Media:Sumo_Robot_Presentation.pdf|Sumo Robot Presentation]]
  
[[Category:ECE597]]
 
 
[[Category:Robotics]]
 
[[Category:Robotics]]
 +
[[Category:BeagleBoard Expansion Boards]]

Latest revision as of 16:10, 21 July 2014


"A four-wheeled robot composed of bolted-together aluminum plates with wide black tires protruding from either side.  On top, two circuit boards are mounted with standoffs, the smaller BeagleBoard on top."

The goal of this project was to create a BeagleBoard-powered robot capable of competing in an autonomous sumo competition in the 3.0 kg weight class (an example). A chassis was constructed of aluminum and an expansion board created to allow the Beagle to control the motors and connect to the sensors. Software was also created to allow PWM control of the motors, but a problem acquiring an important component (an ADC chip to allow reading infrared rangefinders and edge detectors) meant that control was fairly crude, relying on a single ultrasonic rangefinder. Before the robot could meaningfully compete in a sumo competition this issue would need to be corrected and a plow attached to the front. The robot is currently being used for general robotic experimentation.

Sumo Competition Rules

The goal of a sumo competition is to force an opposing robot out of a circular ring without being either being pushed out or running out of the ring accidentally. In the 3kg weight class, the two opposing robots begin approximately 20 cm from each other in the middle of a 154 cm diameter black dohyo (raised cylinder) with white lines painted along its edge to designate the boundary. The robots may not use any methods other than simple motive force to force their opponent out of the ring and must operate completely autonomously. The robot that forces its opponent off of the dohyo wins the match.

Hardware Details

Sensors

  • IR rangefinders -- Sharp GP2D12
    • Analog voltage output fed to ADC. - AD7991
    • Voltage output varies non-linearly with distance. See datasheet link above for details.
  • Sonic rangefinders (need a way to power-cycle these [1]) -- SRF08
    • Primary sensing: Distance in in cm/inches/μs up to 6 meters.
    • Secondary sensing: Light Amount [Not used in our application]
    • 5V required. 3mA standby, 11mA during ranging.
    • Communication via I2C bus.
  • Header for 3-axis accelerometer module - ADXL345
    • Auto-ranging from +-2/4/8/16 g in z,y,z
    • Vs = 2.0-3.3V and Vi/o 1.7V-Vs
    • Communication via I2C bus
  • Edge sensors (used to detect the white lines at the edge of the ring)
  • USB camera (eventually; low priority)

Other I/O

  • Motor control
    • Use four H-bridge motor drivers (one for each motor) - L298
    • Two PWM pins used for speed control
    • Two GPIO for direction selection
  • Input button to start 5-second match countdown
  • LEDs
    • "Ready" LED (blinks when counting down to match start)

Misc

  • Power requirements
    • Motors take 7.2 V, 2A (4A at stall)
    • BeagleBoard Requires 5V, 350mA
  • Power supply
    • 6AA battery holders (×2)
    • 1A Low Dropout 5 volt regulator - LM2940
    • Voltage divider into ADC (same AD7991 as IR sensors) for low-voltage shutdown

Interface Board

An interface board was designed that implements many of the core features listed above. The board was designed in OrCAD. The schematic, board, and artwork is available here. Please see the included readme. Ideally, the board would be enlarged or everything switched to surface mount components to allow for more features to be added. This design can easily be milled so long as the holes can be plated.

Here are the features that were implemented:

  • Power
    • 5V Low Dropout (LDO) Linear Regulator
    • 3.3V LDO Linear Regulator
    • Phoenix connector for power input
  • Beagleboard connector (ribbon cable to Beagleboard)
  • Motor drivers
    • 4x L298, one for each motor
    • Flyback diodes
    • Logic gates (74HC04 and 74HC08) to control high and low side drivers in L298
  • Connectors
    • 2x Phoenix connectors for motors
    • 2x headers for GP2D12
    • 2x headers for USF08
    • 2x headers for optical sensors
    • 2x headers for bump switches
  • Components
    • 2x MAX3378 level shifters
    • Analog to Digital Converter (for IR and optical sensors)
    • 2x 5v header
    • 5v I2C header

Power

The power input is used directly for the motors and regulated down to 5v and 3.3v. 7.2V rechargeable battery packs can be used.

Tasks

Drawing of the robot's aluminum panels (click for details).
  • Build physical robot [On track]
    • Drivetrain [Mostly complete]
      • Water-cut plates [Done]
      • Cut corner fasteners [Done]
      • Assemble [Done]
    • Electronics box (to be done after electronics have been completed) [Not started]
  • Construct electronics [In Progress]
    • Acquire AA NiMH batteries (×12) [Done]
    • Acquire 6AA battery holders (×2) [Done]
    • Acquire Sensors [Done]
      • SRF08 sonic rangefinders (×2) [Done]
      • GP2D12 IR rangefinders (×2) [Done]
      • ADXL345 3-axis accelerometer [Done]
      • Edge sensors [Done]
    • Manufacture PCB [Not started]
      • Create PCB Schematic [Done]
      • Layout PCB [Done]
      • Mill board [Done]
      • Acquire Misc board components [In progress]
        • L298 H-bridges (×4) [Done]
        • Level shifter [Done]
        • ADC [Not started]
      • Place Components [Partially done]
      • Test Board [Partially done]
  • Interface Beagle with external components
    • I2C (sonic rangefinders, accelerometer) [Done]
    • PWM (motor control) [Done]
    • ADC (IR rangefinders, edge sensors) [Done]
    • GPIO (LED, buttons, motor control) [Done]
  • Write control software [Partially done]
    • Low-level motor control [Done]
    • Detect and prevent exit from arena [Not started]
    • Detect and ram competitor [Not started]
    • Recover from a competitor's attack [Not started]
  • Build or print sumo ring [Not started]

Team Members

Links