4WD all terrain robot

This is ongoing project of the mobile robot that can move in a rough terrain

Similar projects worth following
The main goal of this project is to build a mobile robot capable of moving and collect data in rough terrain. Such a robot could be used to patrol the surroundings around your house or hard to reach and hazardous places. The project is open to all hackers and makers who want to build a reliable mobile robot for a reasonable price.
Currently, the robot is controlled from an Android app via bluetooth. The robot can also be controlled by voice commands. In my plans this robot should be able to move in autonomous mode.

Robot parameters:
- External dimensions (LxWxH): 268x270x120 mm
- Total weight 1.7 kg
- Ground clearance: 40 mm

Implemented features:
- faults detection and logging
- overload protection
- reading and writing measurement data on the SD card
- motors current consumption logging
- GPS tracking
- video streaming
- measurements of physical quantities: temperature, humidity, pressure/altitude

he following flowchart shows the connections between the modules of the project. The individual electronic modules are connected via different interfaces i.e.: UART, I2C, SPI. The robot can be controlled wirelessly via bluetooth from your smartphone, tablet or computer. The view from the camera is sent over the wifi network to a device with a web browser (smartphone, PC, etc.).

This mobile robot has been designed to operate in rough terrain. So far I've done two tests shown in the following videos. The robot is controlled from smartphone via bluetooth (here is a link to Google play Android app).

On the first video robot moves at full speed fitted with Dagu wild thumper wheels 120x60mm. The second video shows the tests with reduced speed to about 70 percent of the maximum value (tests with other wheels). The measurement data from the GPS and motors load control system were stored on the SD card during both tests. Follow this project if you want to be kept informed about new posts.

  • 1 × Dual Motor Driver Carrier 12A continuous output current (max 30A) per motor, voltage from 5.5 to 24V
  • 4 × DC motor 6V, 280 RPM, 90 oz-in high-power 6V, 280 RPM free-run, 90 oz-in
  • 1 × Arduino Mega 2560
  • 1 × Bluetooth BTM-222 range up to 100 m in the open ground
  • 1 × GPS position accuracy 2.5m CEP

View all 13 components

  • Face Detection and Tracking, DCS-5020L + OpenCV

    codersilver03/22/2017 at 23:23 0 comments

    Recently I have placed a new D-Link DCS-5020L camera on my mobile robot. This PTZ WiFi IP camera is quite easy to use and suitable for testing with OpenCV.

    Below is a video showing the detection and tracking of face using OpenCV.

    The program has been written in Python and face detection is based on pre-trained Haar cascade classifiers from OpenCV. A simple code example of how to do this for mjpeg compression is under this link. For more information on how to track the movement of any object, see this article.

  • BME280 Atmospheric Sensor

    codersilver03/11/2017 at 15:14 0 comments

    Recently when I was looking for temperature sensor for my mobile robot i found very small and inexpensive module BME280. This tiny sensor is capable of measuring up to three physical quantities: temperature, humidity, pressure/altitude. Its operating temperature range is quite wide: -40C to 85C. It is very energy efficient sensor - it takes measurements at less than 1mA and in a sleep mode less than 1µA. The easiest way to connect this sensor to the Arduino is by using The I2C bus (you do not need a voltage converter as in the case of SPI). You just need to connect four wires:

    BME280 Arduino Mega 2560
    SDASDA (20)
    SCLSCL (21)

    Measurement data can be stored on the micro SD card (you need to connect external micro SD card breakout to your Arduino Mega 2560). I prepared for you a simple program logging measurement data on the SD card.

    Below you can see some charts of measurements taken with the BME280 sensor. The relative humidity can be measured in a range 0 - 100% RH and pressure 30 - 110 kPa.

  • Assembling and installation of portable RPi 0 camera

    codersilver08/15/2016 at 20:15 0 comments

    Finally I managed to buy a RPi 0. To supply RPi 0 I use a small power bank (Blow 4000mAh). Additionally I added a power switch and micro usb port for battery charging. To be able to use standard usb WiFi card you will need a small adapter (micro usb to usb). I closed all the electronics in a black plastic housing with dimensions: 124 x 71 x 38 mm. Because I wanted to be able to easily disconnecting the camera from the robot I've used strong velcro to attach the camera housing to the robot.

  • Getting started with camera

    codersilver05/29/2016 at 01:06 0 comments

    Due to the open interface and favorable price I decided to use in this project RPI camera. I considered two options for installing the camera. In the first case, the camera is stationary placed in a common housing with a RPI (black rectangular casing). In the second case the camera is vertically moveable and placed in a transparent dome. I've used the camera housing from so-called "dummy" camera for a price below 2$. This casing is, however, relatively small and only RPI zero can be easily put into it. So I'm waiting for RPI zero with camera connector and in the meantime I'm using the first option for testing.

  • Power, charging and programming

    codersilver05/28/2016 at 20:53 0 comments

    The robot is equipped with two Li Po batteries (7.4V, 2200 mAh) . One for supplying the DC motors and the other for supplying the rest of electronic components. After opening the rear hood, we have access to two charging connectors and micro USB port for robot programming.

    The DC motors are powered directly from battery with the PWM constraint such that the maximum voltage can not exceed 6V. Other electronic components are powered through the step-down voltage regulator D24V22F5 lowering the voltage from 7.4V to 5V. These regulator have built-in short-circuit protection, reverse-voltage protection, overheating protection (a thermal shutdown feature) and soft-start feature for the reduction of inrush current.

  • Overload Protection

    codersilver04/30/2016 at 13:41 0 comments

    The motor Driver Shield used in this project has current sense voltage output proportional to motor current. This feature has been used to protect DC motors against overload. In a tested case when the current per channel exceeded 9 A (4.5 A per motor) the motors power supply has been turned off. The following figures show the current consumption for the left and right channel during a test drive in rough terrain. The measurement data were recorded with a step of 200 ms.

  • GPS Tracking

    codersilver04/29/2016 at 19:02 0 comments

    Photos as below show the route with a length of about 1.2 km that the robot has driven in both directions. In the meantime, the robot perform various field tests. Generally, the robot moved along a path surrounded by trees.

    Another photo shows an enlarged section of this path. In the lower right corner of this photo I've marked the reference distance of 2m. In these tests, I've used the NEO-6M GPS module working with horizontal position accuracy 2.5 m (CEP 50%) . This accuracy depends on weather conditions and the number of visible satellites. Soon I'm going to test and compare other GPS modules so follow the entries in this log.

  • Hardware description

    codersilver04/29/2016 at 15:13 0 comments

    Under the hood of the robot we can find some interesting electronics parts.

    Chassis of the robot is made entirely from aluminum and duralumin. Four high-power 6 V brushed DC motors (280 RPM, 6.5 kg-cm) with metal spur gearbox (34:1) are controlled from the VNH5019 Dual Motor Driver that operate from 5.5 to 24 V and can deliver a continuous 12 A (and 30 A peak) per motor. In addition, the robot is equipped with bluetooth module BTM222, GPS NEO-6M uBlox and MinIMU-0 v2 module (Gyro L3GD20, Accelerometer and Compass LSM303DLHC).

View all 8 project logs

Enjoy this project?



seilerjacinda925 wrote 11/19/2019 at 15:19 point


Nice to meet you after viewing your profile i am Jacinda, from (jakarta) indonesia,

i have a project discussion with you please email me on: (

  Are you sure? yes | no

Zach Arnold wrote 08/07/2019 at 18:21 point

Nice design, How large of a payload was the design able to move?

  Are you sure? yes | no

jihedabroug wrote 09/16/2016 at 14:52 point

bravo ,great build ;)

  Are you sure? yes | no

Craig Hissett wrote 06/03/2016 at 15:04 point

I love this - such a great build!

  Are you sure? yes | no

codersilver wrote 06/03/2016 at 15:38 point

Thanks Craig, your projects are also great! 

  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