RAZBOT is a 3D printable Rasberry Pi Rover running the Robot Operating System

Similar projects worth following
This is a 3D printable robot using a Raspberry Pi and the Robot Operating System. All the design files and documentation are available on Github. It uses four gearmotors to drive the robot in a skid steer configuration. It uses a Raspberry Pi camera which users can view through a web browser. The robot can be controlled with a gamepad joystick or by publishing the drive topic with any other software. The Razbot can be built by assembling a custom PCB containing 2x 2 channel motor drivers, an ATMega 328 running ROSserial, a voltage regulator and lithium protection or users can use off the shelf components. The bot is powered by a 3S 2200 LiPo pack. A neopixel LED at the top lets you know what the robot is thinking. Multiple units have been built and tested.

This project aims to deliver access to robotics with high-quality software through a low cost platform that people can build at home. The platform is expandable with many of the free, open sources ROS packages available and through adding your own sensors, hardware and software to the bot.


 Raspberry Pi with Raspbian Jessie

 ROS Indigo

205mm L x 166mm W x 80mm H

 Independent Motor Control of each wheel

 WS2812b Status LED

 Raspberry Pi camera

 Lithium Battery: Turnigy Nanotech 3S 2200mAh,

 2 hour or greater run time

 USB ports, Wifi

 Logitech F710 Game pad expandable

Coming soon.

Most details can be found in the build documentation in the razbot github repo.

  • 1 × Raspberry Pi B, B+, 2
  • 1 × Raspberry Pi Camera
  • 1 × Turnigy 3S 2200mAh Lithium Polymer Pack
  • 4 × 25mm 100rpm 12V DC Gearmotor
  • 1 × PCB and Electronics Components or OTS motor controller & voltage regulator

View all 9 components

  • Razbot Security

    Robbie11/18/2015 at 18:47 0 comments

    Check out Razbot with a Kinect2 stopping criminals at the Princeton Hackathon.

  • Simulate it!

    Robbie04/27/2015 at 02:04 0 comments

    Our friend Paul B has created a simulation model of the Razbot. You can take it for a test drive before you build one.

    To run the simulation, install ROS, Gazebo and the Gazebo ROS packages on your Ubuntu system.

    Clone the following repository into your catkin workspace and build the workspace

    There may be a few more dependencies to install. When finished, you can launch the simulation with:

    roslaunch gazebo_razbot simulator.launch

    To control the robot, run rosrun rqt_robot_steering rqt_robot_steering in a separate terminal. Set the output topic

    to /razbot_diff_drive_controller/cmd_vel, and use the sliders to drive the robot. If you have a joystick, you can also use the teleop_twist_joy package. Just be sure to remap the cmd_vel topic to /razbot_diff_drive_controller/cmd_vel

    The simulator software is actually ahead of the software being run on the Razbot itself. One of the next steps is to re-write a razbot control node to subscribe to cmd_vel and output the motor control topic that the MCU is listening for.

    I'll add some detailed instructions into the manual on running the simulator the next time it is updated.

  • MCU board update

    Robbie04/20/2015 at 00:24 0 comments

    The robot first MCU boards are assembled, flashed and working nicely. Now a comparator circuit detects low voltage and shuts off power to the robot before the battery is drained and damaged.

  • New MCU boards are in!

    Robbie04/11/2015 at 19:24 0 comments

    Time to start populating

  • First Video

    Robbie04/11/2015 at 17:15 0 comments

    Here is a quick video of the green Razbot parking with his friends. Control is with a F710 gamepad joystick.

  • Bringing up the RPi2 with Razbot

    Robbie04/07/2015 at 01:22 1 comment

    The Green Razbot now has an RPi 2B installed inside with one of the original MCU boards.

    I updated the Razbot image to support the RP2 2 according to the following:

    On the first shot it worked great. The robot started the MJPG-Streamer for the camera as well as the ROSCORE and required packages. The robot drove around and streamed video as normal. Using Putty to ssh into the Pi was much faster on the Pi2.

    The catch: the Pi 2 appears to be much more sensitive to SD card corruption when interrupting the power supply. (Powering off the Razbot by hitting the switch). This makes sense, if you kill the power while writing to the SD card, goodbye SD card. SSH-ing into the robot everytime you want to shut down sort of sucks

    For now I'll have to lock down the boot partition as read only to ensure it doesn't corrupt.

    In the long run it looks like we might wanted a larger capacitor on the MCU board (which has the 5V power supply). Using a GPIO pin to detect primary power loss, issue a sync command before losing secondary power (thanks Greg J for the suggestion) .

    Hammering out all the minor details related to mech / elec / software and getting things to run smoothly and reliably is has got to be one of the biggest challenges in robotics. Before you can go implementing the latest sensors and SLAM algorithms you need a platform that works reliably and finding / building one is not always an easy task.

  • first log post

    Robbie03/29/2015 at 18:08 0 comments

    I've been working on variations of this for just over a year now slowly in my spare time. Although the project is labelled complete, there are still lots of improvements and upgrades to carry out to make the Razbot more capable and reliable.

    The 2nd generation of the printed circuit board has been designed and is currently being assembled and tested. This is the version is found in the documentation. It has a few corrections and a few more features than the initial 4 working prototypes.

    Now that there is a reliable working hardware platform, we can begin adding features to both the hardware and software. A list of 'to-do' items is found at the end of the Build a Raspberry Robot.pdf document. Some examples include:

    Mecanum wheels for omni-directional driving.

    A web interface using ROSlibjs

    Publishing the instructions and files to use the GAZEBO physics simulator and a virtual Razbot

View all 7 project logs

  • 1
    Step 1

    Detailed build instructions are available in the Build a Raspberry Robot.pdf document in the razbot Github repository. This document also contains bills of materials, diagrams and instructions for operating the robot.

View all instructions

Enjoy this project?



Marin B. wrote 02/15/2017 at 10:23 point


Im planing on making this. Could you edit the disign so i can use a raspberry pi 3?

The source is in solidworks and i have no idea on how to use solidworks. Is it possible for you to edit?

Its proboby a easy job. Its just one extra hole for extra usbs and a smaller hole on the other side for sd card. Also the mount holes are diffrent.

  Are you sure? yes | no

Robbie wrote 03/29/2015 at 21:54 point

Yes, I'm looking forward to the Mecanum wheels. I added dimensions to the details. The current wheels are 80mm. You could go down to about 60mm and still have a little ground clearance. You could also go larger. I was thinking of the sparkfun wheels but they are too small. There seem to be a few printable designs on Thingiverse which I might scale at some point for the razbot.

Why do you find you need encoders? Are you doing closed loop velocity control? Encoders were too expensive for this (I'm hoping to experiment with a mouse sensor for odometry). My biggest worry was that It doesn't have an form of suspension and maintain 4 wheel contact on non-perfectly-smooth surfaces would result in funny motions with Mecanum. 
Thanks for the tips!

  Are you sure? yes | no

Duane Degn wrote 03/29/2015 at 21:11 point

I see you're considering using Mecanum wheels. I'm a fan of Mecanum wheels myself and I've tried a couple of different kinds. My favorite by far are Vex Mecanum wheels. I have a Mecanum wheeled Rover 5 which uses the Vex wheels. Here's a link:

It's hard to tell how large your robot is so I'm not sure what size of wheels it uses. The Vex wheels may be larger than optimal for your robot. The Vex wheels a bit too large for the Rover 5 but they work much better than the more appropriately sized Fingertech wheels.

In my experience having encoder feedback on the wheel speed is very important when using Mecanum wheels. If the motors you're using don't have encoders, you might want to consider finding an alternative with encoders.

I look forward to any future updates you may make.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates