PS2 Controlled Holonomic Platform Using RobotC

PDF24    Send article as PDF   
Yes, another Holonomic Platform. My son, Anthony requested a Holonomic robot to take to school for show-and-tell. So here it is with a few scholarly extras, including the [robotc] code.
A Holonomic platform is one of the many types of Holonomic drive trains — it can move forward and backward as well as left or right without turning. The Holonomic platform can move in any direction instantaneously unlike conventional four wheeled vehicles.

LEGO Mindstorms NXT Holonomic Platform

The Holonomic platform is based on 3 wheels offset 120 degrees from each other,  using omni wheels (wheels with horizontal rollers on the side so they can slide left or right but be powered forward).

Holonomic refers to the relationship between controllable, and total degrees of freedom of a robot. If the controllable degree of freedom is equal to total degrees of freedom, then the robot is said to be Holonomic. A robot built on castor wheels or Omni-wheels is a good example of Holonomic drive as it can freely move in any direction and the controllable degrees of freedom is equal to total degrees of freedom.

LEGO Mindstorms NXT Holonomic Platform

A three wheel Holonomic design offers great traction, as any reactive force is distributed through only three points and the robot is well balanced even on uneven terrain. This design also reduces an additional wheel compared to a 4 wheeled robot which makes it cost effective (yes, these wheels are expensive). A three wheeled Holonomic robot can drive more straight than a conventional four wheeled robot.

Now for Some Math:

In a rigid body translation without rotation means that every point on the body has the same velocity as the center of mass of the whole body. Thus, for each motor we have two equations relating the velocity (e.g. V1) and the perpendicular velocity (e.g. V1′) with the projections of Omni velocity in the X and Y directions have – V sin(θ) and V cos(θ), respectively. In the following we denote these two velocity components simply as Vx and Vy.

Controlling a Tri-wheel Killough Platform

For the first motor (the one in the forward direction) we have:
  • Vx=V1

  • Vy=–V1

For the second wheel:

  • Vx=–V2 cos(60°) – V2′ cos(30°)

  • Vy=–V2 sin(60°) + V2′ sin(30°)

And finally for the third wheel:
  • Vx=–V3 sin(30°) + V3′ cos(30°)

  • Vy=V3 cos(30°) + V3′ sin(30°)

These set of 6 unknowns (V1, V2, V3 and the three primed velocities) and 6 equations has exactly one solution:
  • V1=Vx

  • V2=–Vx / 2 – Sqrt(3)/2 Vy

  • V3=–Vx / 2 + Sqrt(3)/2 Vy     {Where Sqrt(3) is just the squared root of 3.}

In previous posts I have shown Holonomic platforms based on 3 wheels offset 120 degrees from each other,  using [rotacaster]. Those robots where coded with the [nxc]. After a few requests for help with [robotc] code for Holonomic platforms, I decided to through some code together, which I hope will help people new to the [robotc] & wanting to build their own Holonomic platforms.

LEGO Mindstorms NXT Holonomic Platform

The Holonomic platform is controlled with a [mindsensors] ‘Sony PlayStation 2 Controller interface for NXT (PSP-Nx-v4)‘, and a PS2 Game Controller. Also the Robot can be controlled from the RobotC IDE (programming environment) via BlueTooth, using a generic  PC type ‘Game Controller’.

The following RobotC Code shows an example of how to code for Killough & Holonomic Platforms:

Download Source Code



Previous Post

'Melon Factor' - Conclusion

This was to be Part 4/5 of my Melon Factor Project, for the NXTLog FoodFactor Competition for May 2012. It's unfortunate, but time has not been kind. I had more ... Read more

Next Post

RobotC: Using Multiple Ultrasonic (Sonar) Sensors

When using Multiple Ultrasonic (Sonar) Sensors together, you need to configure the Sensors to use 'Single Shot Mode', so only ONE Sensor is taking a measurement at any time. If ... Read more

Short URL:

Leave a Reply

Your email address will not be published. Required fields are marked *

Do NOT follow this link or you will be banned from the site!
error: Content is protected !!