Nathan Monson introduces the BeagleBoard, focusing on the hardware and software features that make it popular among robot hobbyists. This talk was given at the Homebrew Robotics Club in Silicon Valley on Nov 19 2008.
2. Beagle Bot Demos
Tony Pratkanis, Cataglyphis Bicolor
Ralph Gnauck, Ralph's Roomba Bot
Nathan Monson, Snappy
Building Robots with the BeagleBoard Nathan Monson
3. Tony Pratkanis – Cataglyphis Bicolor
Building Robots with the BeagleBoard Nathan Monson
4. Ralph Gnauck – Ralph's Roomba Bot
Building Robots with the BeagleBoard Nathan Monson
5. Nathan Monson – Snappy
Building Robots with the BeagleBoard Nathan Monson
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. Why Build a Beagle Bot?
Community
Ease of development
Peripheral support
Code reuse
Performance/watt
Building Robots with the BeagleBoard Nathan Monson
14. 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
15. 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
16. Beagle Community – OMAP3 Devices
Pandora
Archos 5
Google Phones
Nokia Maemo-5
Building Robots with the BeagleBoard Nathan Monson
17. Beagle Community – OMAP3 Boards
Gumstix Overo
OpenPandora
Magniel Inc
Many more...
Building Robots with the BeagleBoard Nathan Monson
18. Why Build a Beagle Bot?
Community
Ease of development
Peripheral support
Code reuse
Performance/watt
Building Robots with the BeagleBoard Nathan Monson
19. 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
20. 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
21. 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
22. Why Build a Beagle Bot?
Community
Ease of development
Peripheral support
Code reuse
Performance/watt
Building Robots with the BeagleBoard Nathan Monson
23. 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
24. 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
25. Why Build a Beagle Bot?
Community
Ease of development
Peripheral support
Code reuse
Performance/watt
Building Robots with the BeagleBoard Nathan Monson
26. 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
27. 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
28. 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
29. Code Reuse – Telepresence via Skype
Marque Cornblatt's Sparky
Uses Skype via WiFi
Building Robots with the BeagleBoard Nathan Monson
30. Why Build a Beagle Bot?
Community
Ease of development
Peripheral support
Code reuse
Performance/watt
Building Robots with the BeagleBoard Nathan Monson
31. 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
32. 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
33. Peak Performance Example
OMAP35x Processor
Vision Processing C64x+™ DSP and
video accelerators
Display
Subsystem
(3525/3530 only)
USB Cameras ARM®
LCD
Cont-
Video bit DAC
10
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
34. Adding Beagle to Your Bot
Existing Robots
New Robots
Gotchas
Building Robots with the BeagleBoard Nathan Monson
35. 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
36. 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
37. Existing Roombas via USB
RooStick
Automatically appears as /dev/ttyUSB0
Roomba SCI libraries work with BeagleBoard
Building Robots with the BeagleBoard Nathan Monson
38. Adding Beagle to Your Bot
Existing Robots
New Robots
Gotchas
Building Robots with the BeagleBoard Nathan Monson
39. 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
40. 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
41. 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
42. Advanced OMAP3 Hacking – ZynBot
Gumstix Overo
Building Robots with the BeagleBoard Nathan Monson
43. 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
44. Adding Beagle to Your Bot
Existing Robots
New Robots
Gotchas
Building Robots with the BeagleBoard Nathan Monson
45. 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
46. 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
47. 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
48. 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