Building Robots with the Beagleboard -- HBRC Nov 19, 2008

Post on 26-Aug-2014

7406 Views

Category:

Technology

11 Downloads

Preview:

Click to see full reader

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.

Transcript

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!

top related