Home > Ideas, Mindstorms > NXT Killough Platform

NXT Killough Platform

November 4th, 2013 Leave a comment Go to comments

Simple variant of a holonomic Killough platform, controlled by a gaming pad using the NXT unit.  

Datasheet:

Completion date: 03/11/2012
Power: electric (NXT brick)
Language: ROBOTC
Bricks: 1
Motors: 3 x NXT motor
Sensors: none
Dimensions: 34 studs in diameter
Weight: 0.748 kg

A Killough platform is a fascinating vehicle capable of holonomic drive, or, in other words, of driving in any direction. This is possible thanks to the use of at least three separate omniwheels, driven by at least three independent motors. I have built one Killough platform 5 years ago, but it was based on Power Functions system, and thus difficult to control, as no less than two motors have to be working together to move the platform in desired direction. This time I decided to put together a version with the NXT unit at its heart, simplifying steering.

The platform itself was dead simple, with a triangular chassis with three NXT motors around and the NXT unit on top. The omniwheels were simple too, each fitter with 12 rollers spaced 30 degrees apart. This time the rollers were equipped with tires, improving the vehicle’s traction considerably.

The control program, which is included below in full, was making use of the Xbox pad’s joystick to control the direction and speed of driving, and of the Xbox pad’s triggers to control rotating in place. The pad was connected to my PC over WiFi, and the control program was reading commands from it and sending them over Bluetooth link to the NXT unit. The control algorithm, responsible for translating the joystick’s movements to three motors, was fairly simple, and it assumed that the B motor was at vehicle’s front. The code below should be simple enough. Note the joystick position readout being divided by 20, in order to eliminate errors at the start, resulting from the joystick not returning to the perfect zero-zero position.

The model worked as intended, although the ride was kind of shaky due to 30-degrees gaps between the rollers, and it was difficult to control when going sideways, most likely because if uneven weight distribution between the omniwheels resulting from all the shaking. This issue could be solved by using custom LEGO -compatible omniwheels, a number of which is available now, but I have not yet came in possession of any of them.

Platform control program:

#include "JoystickDriver.c"

task main()
{
  bMotorReflected[motorA] = true;
  bMotorReflected[motorB] = true;
  bMotorReflected[motorC] = true;
  while(true)
  {
    getJoystickSettings(joystick);
    int goY = joystick.joy1_y1 /20;
    int goX = joystick.joy1_x1 /20;
    wait1Msec(100);

      if (joystick.joy1_x2 == 126) // rotate left
      {
        motor[motorA] = 100;
        motor[motorB] = 100;
        motor[motorC] = 100;
      }
      else if (joystick.joy1_x2 == -128) // rotate right
      {
        motor[motorA] = -100;
        motor[motorB] = -100;
        motor[motorC] = -100;
      }
      else if (goY == 0 && goX == 0)
      {
        motor[motorA] = 0;
        motor[motorB] = 0;
        motor[motorC] = 0;
      }
      else
      {
        motor[motorA] = (goY - goX) * -40;
        motor[motorB] = goX * -20;
        motor[motorC] = (goY + goX) * 40;
      }

    nxtDisplayCenteredTextLine(0, "BATTERY: %3.1fV", nImmediateBatteryLevel / (float) 1000);
    nxtDisplayTextLine(2, "Y1: %d", goY);
    nxtDisplayTextLine(3, "X1: %d", goX);
  }
}
									

Photos:

1.jpg dsc07115.jpg dsc07117.jpg dsc07118.jpg dsc07123.jpg dsc07129.jpg dsc07131.jpg

Video:

Categories: Ideas, Mindstorms Tags: ,
  1. Sariel
    February 18th, 2015 at 15:22 | #1
  2. February 18th, 2015 at 14:24 | #2

    Hi Sariel,

    You run a great resource, and I look forward to reading your new book. Your initial foray into publishing on paper is a masterpiece. I recommend it to all the budding young (LEGO) engineers I meet.

    You might find this article of mine useful when it comes to Holonomic Platforms and the Maths: http://www.legomindstormsrobots.com/lego-minstorms/controlling-killough-platform/

    I also have a wide range of Holonomic Platforms that can be found here: http://www.legomindstormsrobots.com/holonomic/.

    As an aside, I was the person who originally approached Rotacaster Australia back in 2004 suggesting that their industrial rollers would make great Robot Wheels. After a couple of years of development, a journey I really enjoyed, you can now get my little babies from the LEGO Education shop.

    Please keep your masterpieces coming!

    cheers

    Ray

  3. Sariel
  4. ctw100s
    March 6th, 2014 at 01:44 | #4

    Are there any Killough Platforms in real life? If so, what are they used for? When I look up ‘Killough Platform’ on Google all I see are Lego Killough Platforms.

  5. Sariel
    February 2nd, 2014 at 23:33 | #5

    @O.Goregen
    RobotC.

  6. February 2nd, 2014 at 21:34 | #6

    Hi! Nice work, what complier do you use?

  1. No trackbacks yet.