Upload
guestd1b4688
View
7.407
Download
11
Embed Size (px)
DESCRIPTION
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.
Citation preview
Building Robots withthe BeagleBoard
Nathan MonsonNovember 19, 2008HomeBrew Robotics Club
Building Robots with the BeagleBoard Nathan Monson
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
AgendaOverview of the BeagleBoard
HardwareSoftwareCommunity
Why Beagle Bots?CommunityEase of developmentPeripheral supportCode reusePerformance/watt
Adding Beagle to your BotExisting robotsNew robotsGotchas
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
OMAP3530 Processor 600MHz Cortex-A8
● NEON+VFPv3● 16KB/16KB L1$● 256KB L2$
430MHz C64x+ DSP● 32K/32K L1$● 48K L1D● 32K L2
PowerVR SGX GPU 64K on-chip RAM
POP Memory 128MB LPDDR RAM 256MB NAND flash USB Powered
2W maximum consumption● OMAP is small % of that
Many adapter options● Car, wall, battery, solar, …
Peripheral I/O HDMI/DVI-D video SDIO/MMC+ S-Video out USB 2.0 HS OTG I2C, I2S, SPI
Note: 1.8v ONLY JTAG Stereo in/out Alternate power RS-232 serial
3”
Overview – Hardware Specs
$149
Building Robots with the BeagleBoard Nathan Monson
Peripheral I/O HDMI/DVI-D video SDIO/MMC+ S-Video out USB 2.0 HS OTG I2C, I2S, SPI
Note: 1.8v ONLY JTAG Stereo in/out Alternate power RS-232 serial
3”
Other Features 4 LEDs
● USR0● USR1● PMU_STAT● PWR
2 buttons● USER● RESET● 4 boot sources● SD/MMC● NAND flash● USB● Serial
Overview – Hardware Specs
Building Robots with the BeagleBoard Nathan Monson
Overview – Desktop PC Software
Stereo inSD
Power
DVI-D
USB HOST
Stereo out
AngstromCommunity supported
Windows EmbeddedSupported by your $$$
Google AndroidNokia MaemoUbuntu
Power
OS
DVI-D
USB HOSTUSB HOSTUSB HOSTUSB HOST
USB Hub
Building Robots with the BeagleBoard Nathan Monson
Overview – Embedded Software
Power + Net
USB DEVICE
Optional
RS232
Angstrom“Minimal” or Gadget imageLinux OMAP RT
OpenWRT
Debian
Bare Metal via U-Boot
> 1000 participants and growing
Open access to hardware
documentation
Wikis, blogs, IRC, forums,
community staff
Freesoftware
Freedom to innovate
Personally affordable
Active & technical
community
Opportunity to tinker and
learn
Instant access to >10 million lines
of code
Addressing open source community
needs
Overview – BeagleBoard Community
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
Beagle Community – Linux + Robots
Linux robots are everywhereMost Linux users shareEasy to find help in forums, wikis, books
Building Robots with the BeagleBoard Nathan Monson
Commercial Community – OMAP3
Hundreds of devices will use OMAP3Shrinking price
Growing commercial community
Tons of dev tools
Building Robots with the BeagleBoard Nathan Monson
Beagle Community – OMAP3 Devices
PandoraArchos 5Google PhonesNokia Maemo-5
Building Robots with the BeagleBoard Nathan Monson
Beagle Community – OMAP3 Boards
Gumstix OveroOpenPandoraMagniel IncMany 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 toolsGCC/GDBPythonJava/Eclipse...hundreds more...
Run complete robot SDKsPyroPlayer/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 hourOr 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 BeagleBotLog 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 USBUp to 16 devices at 480Mbps
Thousands of drivers
Building Robots with the BeagleBoard Nathan Monson
Peripheral Support – Interface Modules
USB-enabled interface modulesHigh 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 SystemLinux-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 LibraryProvide config file and XYZ – get joint positions
OpenCVCalibrate cameras, track blobs, recognize objects and faces
Surveyor Stereo Vision SystemHigh speed 3D stereo correspondence
Player/StageFramework formobile robots
EmbedCVFast, targets ARM
Easy to understand
Building Robots with the BeagleBoard Nathan Monson
Code Reuse – Telepresence via Skype
Marque Cornblatt's SparkyUses 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
ARM®
Cortex™-A8
CPU
L3/L4 Interconnect
C64x+™ DSP and video accelerators (3525/3530 only)
Peripherals
Program/Data Storage
System
I2Cx3
Serial Interfaces
Display Subsystem
Connectivity
MMC/SD/SDIO x3
USB Host Controller
x2
USB 2.0 HSOTG
Controller
GPMC
SDRCUART
x2
UARTw/IRDA
MBSPx5
MSPIx4
TimersGP x12WDT x2
Image Pipe
Parallel I/F
Camera I/F2D/3DGraphics
(3515/3530 only)
HDQ /1-wire
OMAP35x Processor
10 bit DACVideoEnc10 bit DAC
LCDCont-roller
Vision ProcessingUSB Cameras
Up to 2x800x600x25
DSP 8-bit 6.88GMAC/s
ARM FPU 2.4GigaFlops
No wasted bandwidth
DSP programmed in CTI compiler is free*
OMAP3 is VERY fast
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 deviceCameras use around 150mA, wifi can use up to 300mA
Consider a Battery Elimination Circuit for model airplanesTypical 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 UARTAutomatically appears as /dev/ttyUSB0
RS232 Level ShifterUse Beagle's RS232 port
Building Robots with the BeagleBoard Nathan Monson
Existing Roombas via USB
RooStickAutomatically 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 $1094 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 <$40Expandable 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 worksGPIO 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 +$60Half BB size -- 3.1”x1.5”
A “Bioloid” robot module is coming
Different features256MB DRAM (BB has 128MB)
WiFi and Bluetooth on stick
MicroSD (no SDIO)
Lacks S-Video, RS232
Different OMAP3No 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 stuffCorrect serial cable
“Powered” hub
USB mini-A host cable
Use the right kernelAnything 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 2009Adds another USB host portAdds tiny LCD controller padsUses ES3.0 OMAP3 – minor bug fixesMight 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!