Introduction: Remote Controlled 6WD All Terrain Robot

Picture of Remote Controlled 6WD All Terrain Robot

Most of the robots I built so far were 4 wheeled robots with a load capacity of several kilograms. This time I decided to build a bigger robot that will easily overcome various obstacles on its way and will be able to move with a load of at least a dozen kilos. I also assumed that the robot should be able to cope in difficult terrain such as sand, snow and rubble. To make it possible, I built a 6-wheel chassis equipped with 6 motors of sufficient high power and suitable motor driver and power supply. I also wanted my robot to be controlled from a long distance (at least 200 meters) so I used a good quality 2.4GHz transmitter and receiver.

Robot parameters (basic version):

  • External dimensions (LxWxH): 405x340x120 mm
  • Total weight: 5 kg
  • Ground clearance: 45 mm

Extended version (with a manipulator and a camera):

  • External dimensions (LxWxH): 405x340x845 mm
  • Total weight: 6.1 kg

Step 1: The List of Parts and Materials

Picture of The List of Parts and Materials

Chassis of the robot is made entirely from aluminum and duralumin. In this project I used 6 Monster Truck wheels with a diameter of 125 mm which makes it easy to overcome small obstacles. The robot is driven by 6 high-power 12 V brushed DC motors (180 RPM, 27 kg-cm) with metal gears. As a motor driver you can use any driver that is able to provide a continuous current of at least 10A per motor e.g.: VNH2SP30, BTS7960B.

Parts needed in this project:

  1. High Torque Gear Reducer DC Motor 12V 180RPM x6
  2. 6mm Hex DC Gear Motor Connector x6
  3. Emergency Stop Switch x1
  4. Stainless Steel Power Push Button Switch x2
  5. 7.4V 2700mAh 10C Lipo Battery x1
  6. 11.1V 5500mAh 3S 45C Lipo Battery x1
  7. VL53L0X Laser ToF Sensor x1
  8. Motor Driver e.g.: VNH2SP30 x6 or BTS7960B x2
  9. Arduino mega 2560 x1
  10. Wheel Rim & Tires HSP 1:10 Monster Truck x2
  11. Micro USB Board x1


  1. FrSky TARANIS Q X7 2.4GHz 7CH Transmitter x1
  2. FrSky V8FR-II 2.4GHz Receiver x1

Materials (chassis):

  1. Duralumin sheet 2mm thick (LxW): 345x190 mm x2
  2. L-shaped aluminum angle bracket 2mm thick: 190x40x20 mm x2
  3. C-shaped aluminum angle bracket 2mm thick: 341x40x20 mm x2
  4. Nuts and bolts:
    • M3 10 mm x10
    • M2 6 mm x8


  1. HILDA Electric Mini Drill

Extended version:

  1. RunCam Split camera x1
  2. 2 axis gimbal x1
  3. Robotic Arm x1
  4. Robot metal gripper x1

Step 2: Assembling the Robot Chassis

Picture of Assembling the Robot Chassis

Assembling of robot chassis is quite easy. All steps are shown in the photos above. The order of the main operations is as follows:

  1. Screw the DC motors to the side aluminium profiles
  2. Screw the side aluminium profiles with DC motors to the base
  3. Screw the front and rear profile to the base
  4. Install the necessary power switches and other electronic component (see in the next section)

Step 3: Connection of Electronic Parts

Picture of Connection of Electronic Parts

The main controller in this electronic system is Arduino Mega 2560. To be able to control six motors I used two BTS7960B Motor Drivers (H-Bridges). Each of the Motor Driver can be loaded by the current up to 43A that gives a sufficient margin of power even for the mobile robot moving over rough terrain.

The connections of electronic modules are the following:

BTS7960 -> Arduino Mega 2560

  • MotorRight_R_EN - 22
  • MotorRight_L_EN - 23
  • MotorLeft_R_EN - 26
  • MotorLeft_L_EN - 27
  • Rpwm1 - 2
  • Lpwm1 - 3
  • Rpwm2 - 4
  • Lpwm2 - 5
  • VCC - 5V
  • GND - GND

FrSky V8FR-II 2.4GHz Receiver -> Arduino Mega 2560

  • ch2 - 7 // Aileron
  • ch3 - 8 // Elevator
  • VCC - 5V
  • GND - GND

If you don't know how to bind 2.4GHz Receiver to Taranis Q X7 2.4GHz Transmitter please see my video.

Step 4: Arduino Mega Code

Picture of Arduino Mega Code

I've prepared the following sample Arduino programs:

The first program "RC 2.4GHz Receiver Test" will allow you to easily start and check the 2.4 GHz receiver connected to Arduino, the second "6WD Robot Control" allows to control the robot's movement. Before compiling and uploading the sample program, make sure that you have chosen "Arduino Mega 2560" as the target platform as shown above (Arduino IDE -> Tools -> Board -> Arduino Mega or Mega 2560). The commands from Taranis Q X7 2.4 GHz transmitter are sent to the receiver. Channels 2 and 3 of the receiver are connected to the Arduino digital pins 7 and 8 respectively. In the Arduino standard library we can find function "pulseIn()" that returns the length of the pulse in microseconds.We will use it to read the PWM (Pulse Width Modulation) signal from the receiver which is proportional to the tilt of the transmitter's control stick. The pulseIn() function takes three arguments (pin, value and timeout):

  • pin (int) - the number of the pin on which you want to read the pulse
  • value (int) - type of pulse to read: either HIGH or LOW
  • timeout (int) - optional number of microseconds to wait for the pulse to be completed

The read pulse length value is then mapped to a value between -255 and 255 that representing forward/backward ("moveValue") or turn right/left ("turnValue") speed. So, for example if we push the control stick fully forward we should get the "moveValue" = 255 and pushing fully back get "moveValue" = -255. Thanks to this type of control, we can regulate the speed of the robot's movement in the full range.

Step 5: Testing of Mobile Robot

Picture of Testing of Mobile Robot

These videos show tests of mobile robot based on program from the previous section (Arduino Mega Code). The first video shows tests of 6WD robot in my room. This robot is able to carry a load of several kilos very easily, on the video it transports 8 bottles of water equivalent to 12 kg. The robot can also easily overcome obstacles encountered on its way like curbs on parking what you can see in the second video. At the beginning of this instruction you can also see how well it cope in difficult terrain.

Step 6: Examples of Design Improvements

Picture of Examples of Design Improvements

You can extend this project with additional components such as:

Above you will find two videos presenting the mentioned improvements.

If you like this project do not forget to vote and write in the comment what would you like to see in the next post as a further improvement of this robot :)

Check out my other projects related to robotics, just visit:

Step 7: Robot Arm Tuning

Picture of Robot Arm Tuning

I made the robot arm earlier and described it in this instruction. However, I decided to slightly modify the original project and add another degree of freedom (wirst) and FPV camera. The robot currently has 4 rotary joints:

  • Wirst
  • Elbow
  • Shoulder
  • Base

Rotation in 4 axes allows easy gripping and manipulation of objects in the robot's workspace. A rotating gripper that performs the role of the wrist allows you to pick up objects placed at different angles. It was made of the following parts:

The camera is placed directly above the gripper to make it easier for the operator to grab even small objects.


WELLINGTONS11 (author)2018-01-17

y got your message,thanks for the feedback

WELLINGTONS11 (author)2018-01-11

Boa noite.como conectar o arduino no receptor 24GHz?

silver_a (author)WELLINGTONS112018-01-17

Hi, You just need to connect only signal pins of 2.4GHz receiver (ch2, ch3) and power supply (VCC, GND) as I mentioned in the description:

FrSky V8FR-II 2.4GHz Receiver -> Arduino Mega 2560
ch2 - 7 // Aileron
ch3 - 8 // Elevator
VCC - 5V

And don't forget to bind your Receiver to the 2.4GHz Transmitter (Taranis Q X7) for the first time - please see the video in the description (Step 3)

bpark1000 (author)2018-01-12

You could improve the terrain handling of this robot by using lever equalization on the wheels. (Look up "steam engine wheel equalization"). if you allowed 1/2 inch vertical movement of each wheel from its nominal position, you could climb even higher curbs, and navigate irregular terrain. Neither electrical nor software changes would be required, except to allow some flexibility in the wiring harness to the wheel motors. The trick is to make the robot equivalent to a tripod-wheeled vehicle. You could equalize the front wheel pair left-right, and the other left-side, right-side pairs front-back.

silver_a (author)bpark10002018-01-15

Thanks for the idea, I'll think about it.

WELLINGTONS11 (author)2018-01-11

Boa noite.tem um desenho da parte eletronica?

GregS261 (author)2018-01-11

could you put a tilt pan on the grabber?

silver_a (author)GregS2612018-01-11

I will put the fpv camera over the gripper ;)

AlB1 (author)2018-01-11

Nice job! We did something similar, but using an UAV instead. Cheers!

silver_a (author)AlB12018-01-11

I like it, a very nice project! Thx!

BrianH383 (author)2018-01-11

What size is your aluminum chassis? It would be great if you could post the exact dimensions so people could have a better idea on the size of the Rover......

silver_a (author)BrianH3832018-01-11

Updated, please check Step1 - Materials (chassis).

freddy rafaels1 (author)2018-01-11

1.parece bien , experimentare ,saludos y, gracias

RO Mechanic (author)2018-01-11

Because the attached movies do not say much, could you be so kind and tell me what is the use of this expensive assembly? Please detaliate the way you prepare it for each task.

JeremySCook (author)2018-01-03

I see you note: "To be able to control four motors I used two BTS7960B Motor Drivers (H-Bridges)." Aren't you controlling 6 motors?

silver_a (author)JeremySCook2018-01-03

I'm sorry for the mistake I have already corrected it ;) Thx

JeremySCook (author)silver_a2018-01-03

Ah, OK, great!

About This Instructable




Bio: I'm an enthusiast of robotics :)
More by silver_a:Remote Controlled 6WD All Terrain RobotVoice and Gesture Controlled Mecanum Wheel RobotRemote Controlled Smart Robotic Arm
Add instructable to: