Rex: The Brain For Robots
Rex: The Brain For Robots
Rex is a single-board computer with a full OS that was designed for robots. Combine Rex + Arduino for the ultimate robot!
Rex is a single-board computer with a full OS that was designed for robots. Combine Rex + Arduino for the ultimate robot! Read more
About this project
The biggest leaps in robotics and AI will come from makers and enthusiasts building their own awesome projects and sharing their progress. Like PCs, robotics will rapidly evolve once it's in the hands of developers. With 3D printers becoming more accessible, a great development platform for robots is the next step. And that's what we set out to build!
Hack a Day - "It’s an impressive bit of hardware, capable of speech recognition, and machine vision tasks with OpenCV."
TechCrunch - "In short, Rex has it all. It makes it easy to build great robot projects and, at about the same price as a few really nice stepper motors, the total cost isn’t very high."
LinuxGizmos - "The Rex is targeting hardware hackers who have tried to build robots based on the Arduino or Raspberry Pi platforms, or perhaps attempted the more challenging task of hacking together a robot that uses both."
EE Times - "You have to admit that REX looks very, very tempting."
1/24 - New reward tiers! We've added the Starter-Rex kit packages that include additional sensors and actuators. We'll also have instructions on our website for how to build a robot out of the kit (with and without a 3D printer) by the time the rewards ship. The Arctic Rexes are still a limited supply, so get 'em while they're hot!
1/19 - We just uploaded a quick video demo of Rex and Alphalem OS' MCP! Check it out in the Alphalem OS section below, or on our YouTube channel here.
1/11 - GPIOs! 14 of them! From the feedback we've been getting, it sounds like you guys want GPIOs and it'd be a shame if we didn't take it seriously. So we've decided to repurpose the JTAG header footprint (in our prototypes) for GPIO pins in the production version of Rex. We'll include more details about this in the next project update.
What is it?
Rex is a palm-sized, single-board computer designed specifically for DIY robots. It provides high-level control over microcontrollers (such as Arduino), sensors, and motor drivers in a robot that you've designed and built yourself whether 3D printed or built out of sheet metal, nuts, and bolts. Rex will fit into any robot you can imagine.
Our examples are typically small autonomous robots, but there's no reason why you couldn't use Rex in your large Beer-fetching/Laundry-folding robot!
Every package will ship with a:
- microSD card
- serial cable
- 5V power supply
- copy of the latest release of Alphalem OS, pre-installed
Why do you want Rex?
There are two general classes of electronics used in robot hardware: microcontrollers (ex. Arduino) and single-board computers. Microcontrollers are great for projects that only require a single program to be run, quickly and without overhead, like controlling LEDs and motors (here's a video of Mike using one in a robot). Single-board computers are great for anything you'd need a cheap, small computer for - like networking applications and image processing.
Advanced autonomous robots require the strengths of both. We liked the way that Arduino was implemented, but felt like there needed to be more options on the other side. Rex was designed to be a modular solution that provides the ARM processor, along with other advanced features, and lets you choose what microcontroller you want to use for low-level control via the I2C expansion ports. This keeps Rex nice and small without the bloat of a development board that has more connections than you'd actually use in a robot. It's the perfect solution if your robot chassis has size or weird mounting constraints. Hexapods/humanoids, anyone?
If you've ever built a robot using a microcontroller (like Arduino) and wished you could:
- connect a webcam
- plug in a USB WiFi or Bluetooth adapter
- hook up speakers/microphone to it
- install a 32-bit operating system
- run a software package like OpenCV or ROS
... then pair one with Rex!
OR, if you've already built one using a single-board computer (like Raspberry Pi) and wanted:
- more user-friendliness
- a modular design for robots with size or mounting constraints
- easier hook-ups for offboard sensors and devices
- better software support for robot-centric projects
... then Rex and Alphalem OS is for you!
- The dedicated camera and audio ports can be used for advanced algorithms like object and speech recognition.
- Other single-board computers are for general purpose-use and include extra features that are unnecessary for robots. We started with something small and let you add on what you need.
- Hooking up a lot of servos and motors is really easy with Rex. You can use the dedicated I2C ports to add servo/motor drivers. The ports support both 3.3V and 5V logic levels ensuring compatibility with many devices.
- Most robots are mobile and need batteries. With Rex, power routing is simple. A 6-12V battery goes in one end, powers the board itself, and powers anything connected to the outputs on either side. Note: the terminal blocks are only rated for 15A, so it's important to distribute the supply and load across both sides. The PCB's tolerance is higher.
- If you feel that your robot might do something crazy or go haywire while you test your new software, you can add a kill-switch to the special header to cut power to the motors without shutting down the rest of the system.
- Here's a diagram of how the power routing and switch headers work
- Texas Instruments DM3730
- 1GHz 32-bit ARM Cortex-A8 Processor core
- 800MHz DSP core
- 512MB LPDDR RAM
- USB Host port
- MicroSD slot
- Camera Module port
- 3.5mm Stereo Audio-in jack
- 3.5mm Stereo Audio-out jack
- 14-pin GPIO header
- 6-12V Battery Pack Input for mobile development
- 5V Regulated Input for desktop development
How do you use Rex?
Rex is designed to work out of the box with a self-contained development environment. You interact with it through a command-line terminal interface over a PC serial port, so if you have a newer computer you may need to purchase a USB-to-Serial adapter.
Each Rex will come pre-installed with Alphalem OS, a FOSS custom linux distribution. It includes a core set of built-in device drivers - ones that we've hand-picked as being the most useful for robots (like USB WiFi adapters and cameras). We'll publish the list in a wiki on our website.
Here are the other main features:
- An Arduino-style programming environment with support for multiple programming languages (C, C++, Python).
- A special task manager called the Master Control Program (MCP).
- An API for message passing in multi-process applications.
- A standard Linux filesystem which will allow you to install just about any Linux software that can be cross-compiled for ARM.
- Libraries for common processes such as I2C communication, face detection, and sensor reading.
Step-by-step instructions for getting up and running will be available on our website by the time we ship Rex.
Mike has been interested in robots all his life. He used 8-bit microcontrollers to build them as a hobby. When he wanted to get into more advanced features, he felt that he needed something more that could leverage the power of a 32-bit computer, operating system, and a whole library of applications in areas of computer vision and voice recognition.
Kartik grew up watching and getting inspired by the likes of R2D2, C3PO and Rosie the Robot. His passion for robots did not end there, and he soon realized the pivotal role these machines will play in the future. Although huge advances have been made in robotics, they are still far away from being commonplace in our homes. And that's what he's working toward.
Former software and mechanical engineers, they met each other when studying robotics at Carnegie Mellon University in 2013. They teamed up with the amazing idea for a low-cost, advanced development package for robots.
Rex is our first step toward the goal of providing a great platform to the makers around the world to build cooler and more capable robots.
How far we've come with Rex...
Our project began 6 months ago when we started building robots using existing solutions, like the Beagleboard xM and identified all the pain points - the worst one being the wiring nightmare. From there, everything took off!
- Initial draft of software API written.
- We got most of Rex working on the first try with a single iteration of prototypes! Still, some issues with USB and Audio.
- Received quotes from manufacturing houses for medium to high volume production. Our funding goal is a reflection of these costs.
How you can help us
With your support, we will be able to:
- Iterate on hardware design to correct current issues like malfunctioning USB and audio ports.
- Conduct appropriate functional tests.
- Get bulk order discounts on hardware manufacturing to achieve reasonable costs.
- Refine Alphalem OS.
- Evaluate performance of existing software packages.
- Add additional software packages.
- Stay fed and out of the rain :)
- Take the next steps toward making "ubiquitous robots" a reality.
Remember, Kickstarter is all-or-nothing! Please pledge and help us make it happen!
Our schedule after this campaign will look like this:
- Jan - Mar '14 - Hardware revisions (most likely 2 or 3) for refining the design.
- Jan - Apr '14 - Polishing Alphalem OS and building new features into the included libraries.
- Feb - Apr '14 - Finalizing vendors for accessories in Asia.
- Mar - Apr '14 - Pre-production run and quality testing.
- Apr - Jun '14 - Preparing rewards and streamlining the shipment process.
- May '14 - Start shipping Rex to its proud owners.
Here are the other main features:
An Arduino-style programming environment with support for multiple programming languages (C, C++, Python). A special task manager called the Master Control Program (MCP). An API for message passing in multi-process applications. A standard Linux filesystem which will allow you to install just about any Linux software that can be cross-compiled for ARM. Libraries for common processes such as I2C communication, face detection, and sensor reading.
Risks and challenges
We're both engineers with backgrounds in software, electrical hardware, robotics, control systems, operations, and supply-chain management. We're confident with our current prototype and are taking all possible steps to mitigate risk. Our highest priority is to remain honest in our commitment toward the people who showed faith in us.
But it won't be fun if there are no unexpected challenges along the way. These can be issues such as scaling for mass production, coordinating lead times for interdependent components, and technical problems with hardware. The delivery time for each of the rewards has been calculated with appropriate buffering to ensure delivery on or before the deadlines we've set.Learn about accountability on Kickstarter
Yes! Alphalem OS is a free linux distribution that we are rolling ourselves. You can view our development progress on Github: https://github.com/alphalem
Rex uses the Texas Instruments DM3730 - the same one used in the Beagleboard xM. It's well-documented and very powerful.
No there isn't - sorry! It was a sacrifice we made to keep the board simpler and cheaper.
The hardware design is currently not open to the point where someone would be able to reproduce Rex itself. However, we'll be publishing enough information that you would be able to build compatible devices and adapt any other Linux distribution to it.
We'll be supplying a 3.5mm to DB9 serial cable with Rex. If your PC doesn't have a standard serial port, you'll need one of these: http://amzn.com/B0007T27H8
Though onboard micro USB is convenient when things are working fine, a basic serial cable is much more reliable and provides access to the system from the very beginning of the boot process - crucial if you're messing around with the bootloader/kernel.
The PCB has been designed to support 20A of current running through it - we wanted it to be able to handle robots with a lot of servos, like small humanoids and hexapods. That said, serious testing must still be done between now when we ship. Toby, the larger robot in the video (seen walking toward the end) was actually running off a Rex when we filmed it.
The one caveat is that the 20A load needs to distributed evenly between the two sides - so 10A each. The limitation is due to the rating of the terminal blocks, not the PCB's design. We felt that this was acceptable since most robots are fairly symmetrical.
Also, here's a quick diagram of the power routing setup and how the switch headers work: http://i.imgur.com/eFHqYSI
Support this project
- (30 days)