Difference between revisions of "ECE597 Project Sumo Robot"

From eLinux.org
Jump to: navigation, search
m (Tasks: Removed duplicate SRF08 task)
(Added to BeagleBoard expansion boards category)
(21 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 kernel.  At minimum, this involves sensors to detect the edge of the ring and the opposing robot.
+
[[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 sideOn top, two circuit boards are mounted with standoffs, the smaller BeagleBoard on top."]]
  
== Team Members ==
+
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.
  
* [[User:Tomwm|Tom Most]]
+
== Sumo Competition Rules ==
* [[User:Batydm|David Baty]]
+
* [[User:Zeta Syanthis|Mark Jacobson]]
+
  
== Tasks ==
+
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. 
 
+
* Build physical robot [On track]
+
** Drivetrain [Mostly complete]
+
*** Water-cut plates [Done]
+
*** Cut corner fasteners [Mostly complete] (front and rear panel corners need work)
+
*** Assemble [Mostly complete]
+
** Electronics box (to be done after electronics have been completed) [Not started]
+
* Construct electronics [In Progress]
+
** Acquire AA NiMH batteries (×12) [Done]
+
** Acquire 2×[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=BH26AAW-ND 6AA battery holders] [Not started]
+
** Acquire Sensors [Mostly complete]
+
*** [http://www.robot-electronics.co.uk/htm/srf08tech.shtml SRF08 sonic rangefinders] (×2) [Done]
+
*** [http://www.acroname.com/robotics/parts/SharpGP2D12-15.pdf GP2D12 IR rangefinders] (×2) [Done]
+
*** [http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf ADXL345 3-axis accelerometer] [Done]
+
*** Edge sensors [Not started]
+
** Manufacture PCB [Not started]
+
*** Create PCB Schematic [Not started]
+
*** Layout PCB [Not started]
+
*** Mill board [Not started]
+
*** Acquire Misc board components [In progress]
+
**** [http://www.st.com/stonline/books/pdf/docs/1773.pdf L298 H-bridges] (×4) [Done]
+
**** [http://www.analog.com/en/analog-to-digital-converters/ad-converters/ad7991/products/product.html ADC] [Not started]
+
*** Place Components [Not started]
+
*** Test Board [Not started]
+
* Interface Beagle with external components
+
** I2C (sonic rangefinders, accelerometer) [In progress]
+
** PWM (motor control) [Completed]
+
** ADC (IR rangefinders, edge sensors) [Completed]
+
** GPIO (LED, buttons, motor control) [In progress - Waiting on MUX]
+
* Write control software [Not started]
+
** Low-level motor control [In progress]
+
** 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]
+
  
 
== Hardware Details ==
 
== Hardware Details ==
Line 48: Line 11:
 
=== Sensors ===
 
=== Sensors ===
  
* IR rangefinders -- Sharp GP2D12
+
* IR rangefinders -- [http://www.acroname.com/robotics/parts/SharpGP2D12-15.pdf Sharp GP2D12]
** Analog voltage output fed to ADC.
+
** Analog voltage output fed to ADC. - [http://www.analog.com/en/analog-to-digital-converters/ad-converters/ad7991/products/product.html AD7991]
 
** Voltage output varies non-linearly with distance.  See datasheet link above for details.
 
** Voltage output varies non-linearly with distance.  See datasheet link above for details.
* Sonic rangefinders (need a way to power-cycle these [http://www.hervanta.com/stuff/Beaglebot#Sensors]) -- SRF08
+
* Sonic rangefinders (need a way to power-cycle these [http://www.hervanta.com/stuff/Beaglebot#Sensors]) -- [http://www.robot-electronics.co.uk/htm/srf08tech.shtml SRF08]
 
** Primary sensing: Distance in in cm/inches/μs up to 6 meters.
 
** Primary sensing: Distance in in cm/inches/μs up to 6 meters.
 
** Secondary sensing: Light Amount [Not used in our application]
 
** Secondary sensing: Light Amount [Not used in our application]
 
** 5V required.  3mA standby, 11mA during ranging.  
 
** 5V required.  3mA standby, 11mA during ranging.  
 
** Communication via I2C bus.
 
** Communication via I2C bus.
* Header for three-axis accelerometer [http://www.sparkfun.com/commerce/product_info.php?products_id=9156 module]
+
* Header for 3-axis accelerometer [http://www.sparkfun.com/commerce/product_info.php?products_id=9156 module] - [http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf ADXL345]
 
** Auto-ranging from +-2/4/8/16 g in z,y,z
 
** Auto-ranging from +-2/4/8/16 g in z,y,z
 
** V<sub>s</sub> = 2.0-3.3V and V<sub>i/o</sub> 1.7V-V<sub>s</sub>
 
** V<sub>s</sub> = 2.0-3.3V and V<sub>i/o</sub> 1.7V-V<sub>s</sub>
Line 62: Line 25:
 
* 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 ===
  
 
* Motor control
 
* Motor control
 +
** Use four H-bridge motor drivers (one for each motor) - [http://www.st.com/stonline/books/pdf/docs/1773.pdf L298]
 
** Two PWM pins used for speed control
 
** Two PWM pins used for speed control
 
** Two GPIO for direction selection
 
** Two GPIO for direction selection
** Use four [http://www.st.com/stonline/books/pdf/docs/1773.pdf L298 motor drivers] (one for each motor)
 
 
* Input button to start 5-second match countdown
 
* Input button to start 5-second match countdown
 
* LEDs
 
* LEDs
Line 76: Line 38:
 
=== Misc ===
 
=== Misc ===
  
* Power conversion
+
* Power requirements
** Motors take 7.2 V, 4A at stall
+
** Motors take 7.2 V, 2A (4A at stall)
 +
** BeagleBoard Requires 5V, 350mA
 +
* Power supply
 +
** [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=BH26AAW-ND 6AA battery holders] (&times;2)
 +
** 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
 +
 
 +
== 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 ==
 +
 
 +
[[File:ECE597SumoRobotPanels.svg|thumb|right|400 px|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 (&times;12) [Done]
 +
** Acquire 6AA battery holders (&times;2) [Done]
 +
** Acquire Sensors [Done]
 +
*** SRF08 sonic rangefinders (&times;2) [Done]
 +
*** GP2D12 IR rangefinders (&times;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 (&times;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 ==
 +
 
 +
* [[User:Tomwm|Tom Most]]
 +
* [[User:Batydm|David Baty]]
 +
* [[User:Zeta Syanthis]]
  
 
== 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:ECE597]]
 +
[[Category:Robotics]]
 +
[[Category:BeagleBoard Expansion Boards]]

Revision as of 02:53, 28 July 2010

"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