Vous êtes sur la page 1sur 48

Building Robots with

the BeagleBoard

Nathan Monson
November 19, 2008
HomeBrew Robotics Club
Beagle Bot Demos
Tony Pratkanis, Cataglyphis Bicolor
Ralph Gnauck, Ralph's Roomba Bot
Nathan Monson, Snappy

Building Robots with the BeagleBoard Nathan Monson


Tony Pratkanis – Cataglyphis Bicolor

Building Robots with the BeagleBoard Nathan Monson


Ralph Gnauck – Ralph's Roomba Bot

Building Robots with the BeagleBoard Nathan Monson


Nathan Monson – Snappy

Building Robots with the BeagleBoard Nathan Monson


Agenda
Overview of the BeagleBoard
Hardware
Software
Community

Why Beagle Bots?


Community
Ease of development
Peripheral support
Code reuse
Performance/watt

Adding Beagle to your Bot


Existing robots
New robots
Gotchas

Resources and Conclusion

Building Robots with the BeagleBoard Nathan Monson


Overview – What is a BeagleBoard?

PC-like computer in 3”x3”


BYO USB Peripherals

TI OMAP 3 evaluation kit

Under 2 watts

Just $149!

Building Robots with the BeagleBoard Nathan Monson


Overview – Hardware Specs

OMAP3530 Processor
 600MHz Cortex-A8
$149 Peripheral I/O
 HDMI/DVI-D video

NEON+VFPv3 3”

16KB/16KB L1$  SDIO/MMC+

256KB L2$  S-Video out
 430MHz C64x+ DSP  USB 2.0 HS OTG

32K/32K L1$  I2C, I2S, SPI

48K L1D Note: 1.8v ONLY

32K L2  JTAG
 PowerVR SGX GPU
 Stereo in/out
 64K on-chip RAM
 Alternate power
POP Memory  RS-232 serial
 128MB LPDDR RAM
 256MB NAND flash USB Powered
 2W maximum consumption

OMAP is small % of that
 Many adapter options

Car, wall, battery, solar, …
Building Robots with the BeagleBoard Nathan Monson
Overview – Hardware Specs

Other Features
 4 LEDs
3”

USR0 Peripheral I/O

USR1
 HDMI/DVI-D video

PMU_STAT
 SDIO/MMC+

PWR
 2 buttons  S-Video out

USER  USB 2.0 HS OTG

RESET  I2C, I2S, SPI

4 boot sources Note: 1.8v ONLY

SD/MMC  JTAG

NAND flash  Stereo in/out

USB
 Alternate power

Serial
 RS-232 serial

Building Robots with the BeagleBoard Nathan Monson


Overview – Desktop PC Software
Angstrom
Community supported

Windows Embedded
Supported by your $$$

Google Android
Nokia Maemo
Ubuntu

DVI-D

USB Hub
Power Stereo out
SD
Stereo in
OS
USB HOST
Building Robots with the BeagleBoard Nathan Monson
Overview – Embedded Software
Angstrom
“Minimal” or Gadget image
Linux OMAP RT

OpenWRT

Debian

Bare Metal via U-Boot

Power + Net
USB DEVICE

Optional
RS232

Building Robots with the BeagleBoard Nathan Monson


Overview – BeagleBoard Community
Wikis, blogs,
Personally IRC, forums,
> 1000 participants affordable community staff
and growing
Active &
technical Freedom to
community innovate
Addressing
Open access to
open source Instant access to
hardware community >10 million lines
of code
documentation needs
Opportunity Free
to tinker and software
learn
Why Build a Beagle Bot?
Community

Ease of development

Peripheral support

Code reuse

Performance/watt

Building Robots with the BeagleBoard Nathan Monson


Beagle Community – Linux + Robots
Linux robots are everywhere
Most Linux users share
Easy to find help in forums, wikis, books

Building Robots with the BeagleBoard Nathan Monson


Commercial Community – OMAP3
Hundreds of devices will use OMAP3
Shrinking price
Growing commercial community
Tons of dev tools

Building Robots with the BeagleBoard Nathan Monson


Beagle Community – OMAP3 Devices
Pandora
Archos 5
Google Phones
Nokia Maemo-5

Building Robots with the BeagleBoard Nathan Monson


Beagle Community – OMAP3 Boards
Gumstix Overo
OpenPandora
Magniel Inc
Many more...

Building Robots with the BeagleBoard Nathan Monson


Why Build a Beagle Bot?
Community

Ease of development

Peripheral support

Code reuse

Performance/watt

Building Robots with the BeagleBoard Nathan Monson


Ease of Development – HLLs
Natively run full development tools
GCC/GDB
Python
Java/Eclipse
...hundreds more...
Run complete robot SDKs
Pyro
Player/Stage

BeagleBoard is “unbrickable”
At least at 5V...

Building Robots with the BeagleBoard Nathan Monson


Ease of Development – Debugging
Realtime remote debug via WiFi

Video output for vision debugging

Log 8KB data at 1KHz for 1 hour


Or uncompressed 640x480 at 25FPS
Or every run your robot ever made...

Building Robots with the BeagleBoard Nathan Monson


Ease of Development
Dale Wheat's “3pi” is a BeagleBot
Log data from runs
Wirelessly debug between runs

Building Robots with the BeagleBoard Nathan Monson


Why Build a Beagle Bot?
Community

Ease of development

Peripheral support

Code reuse

Performance/watt

Building Robots with the BeagleBoard Nathan Monson


Peripheral Support – USB
USB peripherals are:
Cheap
Everywhere
Low power
Noise resistant
Often better than kits or modules

BeagleBoard loves USB


Up to 16 devices at 480Mbps
Thousands of drivers

Building Robots with the BeagleBoard Nathan Monson


Peripheral Support – Interface Modules

USB-enabled interface modules


High voltage/power I/O
Servo, DC, stepper motor
(Optional) Local processing
Many under <$100

Building Robots with the BeagleBoard Nathan Monson


Why Build a Beagle Bot?
Community

Ease of development

Peripheral support

Code reuse

Performance/watt

Building Robots with the BeagleBoard Nathan Monson


Code Reuse – Open Source Robotics
Linux-based open source covers:
SLAM
Simulation
Kinematics
Path Finding
Teleoperation
Sensor Fusion
Visual Servoing
Laser Scanning
Computer Vision
Speech Synthesis
Machine Learning
Object Recognition
Speech Recognition
Stereo Correspondence
Building Robots with the BeagleBoard Nathan Monson
Code Reuse – ROS Project
Willow Garage is creating the Robot Operating System
Linux-based “distro” of best OSS
Code cleaned up and wrapped to common API
Tested on real robots

Tony might be the first to use ROS on his BeagleBot

Building Robots with the BeagleBoard Nathan Monson


Code Reuse – My Favorites
Kinematics and Dynamics Library
Provide config file and XYZ – get joint positions

OpenCV
Calibrate cameras, track blobs, recognize objects and faces

Surveyor Stereo Vision System


High speed 3D stereo correspondence

Player/Stage
Framework for
mobile robots

EmbedCV
Fast, targets ARM
Easy to understand

Building Robots with the BeagleBoard Nathan Monson


Code Reuse – Telepresence via Skype

Marque Cornblatt's Sparky


Uses Skype via WiFi

Building Robots with the BeagleBoard Nathan Monson


Why Build a Beagle Bot?
Community

Ease of development

Peripheral support

Code reuse

Performance/watt

Building Robots with the BeagleBoard Nathan Monson


Performance/Watt – Comparison

Board Single FP 16-bit Int Peak Idle Watt/GF


Blackfin N/A 1 GMACs 1.4W 1.4W N/A
BeagleBoard 2.4 GFlops 2.4 GMACs 2W 1W 0.83
Atom/N8044 2.2 GFlops 2.2 GMACs 10W 5W 4.54
Core 2 Duo 38.4 GFlops 38.4 GMACs 55W 30W 1.43

Building Robots with the BeagleBoard Nathan Monson


Performance/Watt – With DSP

Board Single FP 16-bit Int Peak Idle Watt/GF


Blackfin N/A 1 GMACs 1.4W 1.4W N/A
BeagleBoard 2.4 GFlops 5.84 GMACs 2W 1W 0.83
Atom/N8044 2.2 GFlops 2.2 GMACs 10W 5W 4.54
Core 2 Duo 38.4 GFlops 38.4 GMACs 55W 30W 1.43

DSP adds “bonus”


3.44 GMACs
(6.88 GMACs 8-bit)

Building Robots with the BeagleBoard Nathan Monson


Peak Performance Example
OMAP35x Processor
Vision Processing C64x+™ DSP and
video accelerators
Display
Subsystem
(3525/3530 only)
USB Cameras ARM®
LCD
Cont-
Video10 bit DAC
roller Enc 10 bit DAC
Up to 2x800x600x25 Cortex™-
A8 2D/3D
DSP 8-bit 6.88GMAC/s Graphics
Camera I/F
CPU (3515/3530 only) Image Parallel I/F
ARM FPU 2.4GigaFlops Pipe

No wasted bandwidth L3/L4 Interconnect

DSP programmed in C Peripherals Connectivity


USB 2.0 HS
System
Timers
USB Host
TI compiler is free* OTG
Controller
Controller
x2
GP x12
WDT x2
Serial Interfaces Program/Data Storage
OMAP3 is VERY fast MBSP
x5
IC
2

x3
UART
x2
HDQ /
1-wire
SDRC
MMC/SD/
UART GPMC SDIO x3
MSPI
x4 w/IRDA

Some CMUcam enthusiasts already on BeagleBoard

Building Robots with the BeagleBoard Nathan Monson


Adding Beagle to Your Bot
Existing Robots

New Robots

Gotchas

Building Robots with the BeagleBoard Nathan Monson


Adding Beagle to an Existing Robot
Power input must be 4.75V-5.25V (ideally 5.0V)
USB hub must have a power cable, can't use USB cable
Requires 400mA for board plus up to 500mA per USB device
Cameras use around 150mA, wifi can use up to 300mA

Consider a Battery Elimination Circuit for model airplanes


Typical BECs deliver 5.0V at 3-5A with input from 5.5V-25V for $25
Output supply is well-isolated from motors

Building Robots with the BeagleBoard Nathan Monson


Existing Robots via TTL UART
FTDI USB to TTL UART
Automatically appears as /dev/ttyUSB0

RS232 Level Shifter


Use Beagle's RS232 port

Building Robots with the BeagleBoard Nathan Monson


Existing Roombas via USB
RooStick
Automatically appears as /dev/ttyUSB0
Roomba SCI libraries work with BeagleBoard

Building Robots with the BeagleBoard Nathan Monson


Adding Beagle to Your Bot
Existing Robots

New Robots

Gotchas

Building Robots with the BeagleBoard Nathan Monson


Make Controller-Based BeagleBot
Make Controller is $109
4 2A DC motors, 4 servos, 8 ADC
Speaks OSC over USB
OSC ported to most languages
Robot-friendly community
Runs custom firmware

Building Robots with the BeagleBoard Nathan Monson


Arduino-based BeagleBot
Arduino is widely available for <$40
Expandable via daughterboards
Speaks MIDI over USB
MIDI support in all languages
Very large community
Runs custom firmware

Building Robots with the BeagleBoard Nathan Monson


BeagleBoard Hacking
GPIO on 28-pin header includes:
UARTs, I2C, I2S, SPI, MMC/SDIO, GPIO
All pins are 1.8V – level converters required for 3.3V/5V
All features except I2S work in user mode (no drivers required)

Daughterboards in the works


GPIO level conversion
ATmega GPIO/servo board
Dave?
None available yet...

2 LEDs available for status

Building Robots with the BeagleBoard Nathan Monson


Advanced OMAP3 Hacking – ZynBot
Gumstix Overo

Building Robots with the BeagleBoard Nathan Monson


Gumstix Overo Pros and Cons
Requires expansion module +$60
Half BB size -- 3.1”x1.5”
A “Bioloid” robot module is coming

Different features
256MB DRAM (BB has 128MB)
WiFi and Bluetooth on stick
MicroSD (no SDIO)
Lacks S-Video, RS232

Different OMAP3
No DSP
No 3D graphics

Building Robots with the BeagleBoard Nathan Monson


Adding Beagle to Your Bot
Existing Robots

New Robots

Gotchas

Building Robots with the BeagleBoard Nathan Monson


BeagleBoard Gotchas
Order the right stuff
Correct serial cable
“Powered” hub
USB mini-A host cable

Use the right kernel


Anything older than 2.6.27 has buggy USB
Some kernels lack comprehensive device support

Be careful with power supply!


Use USB power or precision regulator

Building Robots with the BeagleBoard Nathan Monson


Should I wait for Rev C?
“Rev C” Beagle is coming February 2009
Adds another USB host port
Adds tiny LCD controller pads
Uses ES3.0 OMAP3 – minor bug fixes
Might offer 256MB DRAM version (+$25)
Otherwise identical – mounting is the same

Building Robots with the BeagleBoard Nathan Monson


References
Your main source – purchase, research, Q&A

HBRC Wiki – edit as you learn


http://www.hbrobotics.org/wiki/index.php5/Beagle_Board

Trossen Robotics – buy parts, join community


http://www.trossenrobotics.com/

Makezine – inspiration and controllers


http://makezine.com/controller/

Building Robots with the BeagleBoard Nathan Monson


Thank you!

Send your questions/ideas to the list:


http://www.wildrice.com/HBRobotics/Subscribe.html

Can't wait to see more Beagle Bots!

Building Robots with the BeagleBoard Nathan Monson

Vous aimerez peut-être aussi