x10abot: the modular, scalable, extensible robotics architecture
TRANSCRIPT
X10ABOT:
An Architecture for a Modular, Extensible, Inexpensive, Scalable
General Purpose Robotics Platform
Rohan A. [email protected]
Daniel [email protected]
Problem Statement
We want to develop a robotics platform that is:
Simple enough to be used by elementary school students
Powerful enough that professionals would choose to use it.
Motivation:
Available kits for children are too restrictive for professional use
Related Kits
LEGO Mindstorms NXTVex Robotics SystemTetrixxBioloidAiboBoe-botqfix
http://robosavvy.com/RoboSavvyPages/Support/Bioloid/bioloid-300.jpghttp://web.njit.edu/~baltrush/images/boe-bot_assembled.jpghttp://www.ktb-mechatronics.de/images/Crash-Bobby.jpghttp://www.vexforum.com/gallery/files/1/1/tomahawk-02-750_thumb.jpghttp://robotic-explorer.com/Image/N/Full/324-%20.jpghttp://www.itp.net/images/content/579647/article/4539-lego-min_article.jpg
X10ABOT
A modular, extensible, scalable and inexpensive hardware and software platform for general purpose robotics development.
• Supports hundreds of sensors and actuators across several controllers.
• Targetable from a broad range of development tools. (for roboticists from elementary school to graduate level)– Eg: Could be LEGO NXT Software compatible
Design Objectives
• Extensible: Permit Customized commands for peripherals
• Scalable: Support for multiple sensors and actuators.
• Modular: New sensors & actuators can be incrementally added
• Inexpensive: Relatively low initial cost and cost to scale
• User friendly: Usable primary school to graduate level roboticists
• Future Integration with other software eg: LEGO NXT
X10ABOT: Architecture
Peripheral Bus ProtocolI2C – Data Bus
Bus Arbitration Line
RS-232 – Interrupt Bus
Peripheral Bus Protocol(Upgrade)
• I2C – Data Bus
• Multi-master bus arbitration
Main Issue
Typical robotics programming model:
All peripherals connected to a single controller.
Hardware implementation does this literally.
Although the number of peripherals are no longer all connected to a single controller, we want to preserve the abstraction.
Firmware:Microcode Control Interpreter
Ports
http://en.wikipedia.org/wiki/File:SATA_ports.jpg
http://www.blogcdn.com/www.engadget.com/media/2007/04/hdsata2_engadget_howto.jpg
Complete set of hardware operations
Category of commands Operands
Digital Input/Output (I/O) Hi, Low,Read
Analogue Read
Pulse Width Modulation(PWM) Duty Cycle, Frequency
I2CRead, Write
RS-232 Read, Write
Watch/Watch-then-do (stored procedures) Rising, Falling, Threshold,
The X10ABOT Microcode StructureByte 1: 1111XXXX FUNCTION BYTE
Byte 1: XXXX1111 OPERAND BYTE
Byte 2: 11111111 D.B. SELECTION
Byte 3: 1111111X PORT SELECTION
Byte 3: XXXXXXX1 PIN SELECTION
Byte 4: 11111111 FUNCTION SEQUENCE NUMBER
Byte 4+n 11111111 DATA BYTES; n> 0
pwm(byte pwm_select, byte db_address, byte port_number, byte duty_cycle)
Eg: pwm (1,5,1,50):[00100000,00000101,00000011,01010101,00110010]
Command Flow Example
dcmotor.forward()Converted to microcodedigitalOut(HI,db,port,pinA)DigitalOut(LOW,db,port,pinB)pwm(A,db,port,1024*power/100)
[[00100000,00000101,00000011,01010101,00110010],[00110000,00000111,00000011,01010111,00111100],
[00100000,00000101, 00100011,01011000,01110010]]
The DC Motor then begins to rotate forward at 50% power.
Program declares a dc motor(h-bridge) with the instructionActuator dcmotor(5,1,50)
Parameters include: Daughterboard #, Port#, Power
Control bytes are subsequently sent across the PB to the addressed Daughterboard
The daughterboard interprets the sequence of control bytes and asserts the operation on the addressed I/O port
The control bytes represent the sequence of micro instructions needed to complete the task
Hardware implementation
http://www.midsouthmakers.org/wp-content/uploads/2010/05/arduino-diecimila.jpg
Software:X10ABOT Arduino Library
• Sensor and Actuators are defined in libraries
• High Level language definition
Results
Simple example:Single controller with a
force sensor and a DC Motor
Results
Now we add:An extra controller on a
separate board with a push button, and a DC Motor
• Extensibility: Adding new sensors and actuators with device libraries
• Complete set of micro instructions
• Input/Output port design and feature support
• Scalability – Up to 112 daughterboards
• Modularity
• Multitasking – RTOS
• Arduino boards can implement design
Summary