Your shopping cart is empty.

Inside the SLAMbot

09 Jul, 2014

Inside the SLAMbot

Meet Derek "The Great SLAMboni" Kartoffel


The Great SLAMboni hanging out at the TechStars office. 

Derek "The Great SLAMboni" Kartoffel is our current low-cost research robot, costing less than $600 to build but capable of the same tasks that many multi-thousand dollar robots are typically used for in robotics research. Much thanks to Brian and Evan for naming Derek! During his time at Aerospace Robotics, The Great SLAMboni will be constantly improving his slam, learning to drive on his own, be decked out in silly costumes, and serve as a platform for many of our robotics tutorials and lessons. That's right - we're unveiling an official LEARN section for Aerospace Robotics next Monday! To avoid being incredibly redundant with the scores of electronics and code guides, we hope to provide higher-level instruction for the introductory concepts with pointers to our favorite in-depth explanations made by others. Beyond helping sort through the waters of introductory tutorials, we'll be posting in-depth lessons on more advanced robotics concepts and implementations. 

Derek the SLAMboni's Guts


The inside of the robot is a little messy, so we've highlighted where parts sit regardless of whether they're visible.

  1. Chassis & included motors w/ encoders: We chose to get a chassis (the Dagu 5) from Pololu that came with installed motors and encoders. Buying decent DC motors with encoders is not a small challenge, and usually to get components that work well both individually and together, you need plenty of time, money, and know-how. Even if you designed and made your own chassis, you wouldn't save much money; if you're not trying to design a novel mechanical system, it's worth it to buy this. It ships fully assembled; all you have to do is put on the treads.
  2. DC Motor Driver: We don't need to drive our motors particularly fast or move very heavy objects, and our system voltage and current is modest, so we went with a cheap-yet-reliable dual motor driver (also from Pololu). A big advantage of this particular driver is that it doesn't require inverted PWM inputs, which would require us to add an inverter chip to the already-busy innards of our robot. Instead, this driver uses a single PWM signal to control speed, and a digital signal to control direction. This is fully documented on the Pololu product page.
  3. XBee: A classic hobbyist wireless communication method, we wanted to walk the roads of well-documented code and error messages. The XBee also plays nicely with serial connections - in fact, once set up, you just initialize an XBee as a serial port and it behaves as one. While not the cheapest wireless transmitters/receivers out there, low-range XBee's are at the sweet spot of cost for reliability and ease-of-use (though they require special configuration to run at their fastest).
  4. XBee Breakout Board: We already had a serial-to-USB converter that was included with the RP LIDAR, so all we really needed was a voltage regulator to allow the 5V MEGA and 3.3V XBee to get along. We didn't need a breakout with the built-in serial, but didn't want to deal with the hassle of loose components, so we thought it was reasonable to get these boards - which also conveniently let us use our 0.1" jumper cables for hooking everything up (the XBee pins are 2mm pitch).
  5. Seeeduino MEGA: The biggest reason for us choosing to use the MEGA is that it boasts 4 UARTs (serial ports). This was necessary for us as we were planning to use sensors (like the RP LIDAR) that communicate via serial. The MEGA also has a fast enough processor for us to move data around and preprocess at the speeds required by our sensing and algorithmic needs. Finally, we chose the Seeeduino because it has a beautiful small form factor (the size of an Arduino Uno!), and despite all the merits of the Dagu, it is a bit cramped for space. An important thing to note is that it does not at this time come with a USB mini cable, which you'll need to communicate with the board.

  6. RP LIDAR: An inexpensive and reliable 2D ranging sensor! It is the biggest-ticket item on our list, but it's the whole reason for the robot and allows for awesome things like SLAM. See our blog post about it for more details about the sensor.
    Code: Open source, evolving and live on Github!

"Base Station"


The "base station" - more like a command center now, this will eventually evolve into a device with a function more like a base station.

The base station is comprised of a laptop computer (we're using a Dell Latitude e6420), a serial-USB converter, an XBee and breakout board, and a NiMH battery charger. These parts and our rational for choosing them are all listed above already, so let's move on to the pricing and sourcing breakdown!

Bill of Materials

While $600 may seem like a lot of money, it's truly awesome that we can make a research robot of this quality for such a small budget. Additionally, the majority of the cost is the LIDAR, which we're hoping to be able to underwrite by making homebrewed interfaces for the Neato LIDAR sensors more reliable (stay tuned!). Here's a breakdown of our costs as they are - if we find ways to cut them or make a better robot for the same price, expect another blog post!

Total Robot Cost*

158.63

Base Station Cost**

26.95

RP LIDAR

399.00

Total Project Cost

584.58

*Using approximate estimates for miscellaneous wires, etc. Not including RP LIDAR.
**Not including cost of laptop computer.

Parts Breakdown

Pololu Dagu 5 Chassis

59.95

Robot chassis with built-in motors and 1000 count / 3 rev. quadrature encoders

Dual Motor Driver Carrier

4.49

A basic motor driver capable of ~1A / channel, completely sufficient for our speed and power needs

Seeeduino MEGA

42.95

A well-built Arduino-MEGA-compatible microcontroller with the formfactor of an Arduino Uno! Small, slightly better processing and memory, and four serial ports.

RP LIDAR

399.00

A 2D-rangefinder. See our post reviewing it for details!

NiMH Battery Pack

17.29

Although the chassis comes with a 6 AA battery holder, we plan on using this robot frequently for a long time, making rechargeables a must.*

Misc. Hardware

~7.00

Switches, jumper wires, headers, LEDs, etc. We had these floating around the office, so we don't have any particular source. The jumper wires from Pololu are pretty nice, though.

2x XBee

17.00 ea.

Wireless serial extenders to allow us to stream data from and control the robot wirelessly

2x XBee Breakout Board

9.95 ea.

Breakout board allowing us to use the 5V serial-to-USB included with the RP LIDAR with an XBee

*While it's not technically part of the robot, in order to charge the battery, we bought a Tenergy Smart Universal Charger for 17.99. Technically, this brings the total cost to 602.57, but since the robot can be run with ordinary AA's and people may have miscellaneous hardware on hand already, we think it's fair to call this a sub-$600 robot.

We also needed a soldering iron and solder to put the headers on the Seeeduino MEGA and form a few other connections, and electrical tape to be particularly certain that a few contact points didn't short.

Leave a comment
3 comments

Richard

January 02, 2015

Holy crap this is amazing. Just wanted to drop you a note letting you know I’ll be building a robot inspired by yours, and pulling your code for some of my own slam learning/hacking. Keep it up!

James

March 20, 2015

Have same equipment. Have downloaded all from Github and installed as much as I can of the Python files. But I don’t know what actually needs to be ‘run’ in order for it to load the SLAM interface. Which .py script starts it off with the GUI, please?

Michael

March 23, 2015

Hi James!

The top of the README.md briefly describes how to install the package and how to test it with readLogData.py. Did those steps work for you? readLogData.py should bring up a GUI for you and is designed as a software test to make sure your install is good.
baseStationMain.py is the script you’d call once your robot is running and connected to your computer via serial (XBee or straight wired connection). That should perform live SLAM on the data from your LIDAR sensor.

Best of luck,
Michael

is added to your shopping cart.
Go to Cart
is added to your wishlist.
Go to Wishlist