How to build Holonomic Robot

From Lofaro Lab Wiki
Jump to: navigation, search

We have used three wheeled Holonomic robots to implement our Trilateration formation keeping method. Here we explain how we have built one from scratch. The robots have 3 Degrees of Freedom (D.O.F), they can move translations X and Y and rotation Z (i.e Yaw).

A Protype of the Holonomic Robot (before PCB)

Required Components

1) 1/16 in. Aluminum Frames (12 in. length x 24 in. width) for 3 frames

2) Rapberry Pi Zero

  • OTG usb hub (with atleast 2 ports for wifi dongle, L-CAS Sensor)
  • 3600 mAh portable power bank
  • 8GB MicroSD
  • Wifi Dongle

4) Arduino Pro Mini (for PWMs)

5) Pololu 200:1 Plastic Gearmotor (

6) Solobotic Gear Mount (

7) VEX IQ 63mm Omni Wheels (

8) L298N Motor Controller (

9) 2000 mAh 6V NiMH Battery (with charger) (

9) GY-271 Magnetometer

10) L-CAS Ranging Sensor

11) Standouts (for mounting components)

(remove links, add ref. at the bottom)

Drilling and Milling of Frames

The CAM design for the drilling and milling of frames was done with AutoDesk Inventor. Then the design was exported to AutoDesk Fusion 360 (.stp file) because Inventor was not able produce the G-code for a linux CNC machine that was available to us at the GMU workshop.


The origin position in the design is at the bottom left corner of the frame shown above. This should be specified in the linux CNC software before running the G-Code.

Files needed:

  • design(60,60,60)_3frames.ipt - this file (inventor design file) could be used to produce the .stp file needed to export data to Fusion 360 where G-code could be generated. Changes to design are recommended to be performed in Inventor as we have found it was harder to do this directly on Fusion 360.
  • design(60,60,60)_3frames.stp (not really needed) - to be opened in Fusion 360.
  • .ngc Files - these files need to be imported on the Linux CNC software controlling the CNC machine.
 - 4001.ngc is for .... Drill bit needed: 
 - 4002.ngc is for .... Drill bit needed: 
 - 4003.ngc is for .... Drill bit needed: 
 - 4004.ngc is for .... Drill bit needed: 
 - 4005.ngc is for .... Drill bit needed: 
 - 4006.ngc is for .... Drill bit needed: 
 - 4007.ngc is for .... Drill bit needed:

As you can see two different drill bits were needed. One was needed to drill holes for the components (2.65 mm diameter) and the other (1/4 in. flat) was needed to cut the edges of the frames, the large 18mm. hole (for passing wire through) and holes for the motors. When the .ngc files are imported it could be useful to run a simulation on the software to double check any errors, although the tool path simulation could also be viewed on Fusion 360.

It should be noted the Linux CNC machine in the workshop controls only the X,Y and Z position of the drill bit, not the speed of the spindle. This is controlled independently from a different controller.