A fully remote controlled Dune Buggy from a single LEGO Mindstorms NXT retail set.
About this creation
This is my first attempt at a Dune Buggy or sandrail.
From the outset the goal was to come up with a reasonably fast vehicle with excellent stability and very sharp turns.
I started with the front wheels and steering motor and worked my way backwards in the model, adding the left and right motors and the NXT brick. Only later i added the roll-cage, bars, spots and front bumper that give it the typical buggy looks.
Note that the model uses all three motors. The model has ""diffdrive"" because both left and right back wheels are driven independently, each has its own motor. The third motor steers both front wheels. As you can imagine this results in a so-called overdetermined system.
To improve driving turns, i derived formulae to control each of the motors. This results in none of the wheels slipping. One assumption underlying the formulae is that in a turn each of the wheels has its own radius and hence speed. The fact that the track width differs from front to back complicates the formulae a bit. Another assumption is that in a turn the outer front wheel determines the actual curve, neglecting the inner front wheel. This seems reasonable, because the model is sloped down towards the front, and the outer wheel moves forward a bit upon steering. It thus carries most if not all weight in sharp turns.
The formulae use the wheel base B, the track width in front Tf and rear Tr, the steering angle alfa, and give the relative speed of the rear outer and inner wheel, dubbed So and Si. I am still figuring out how to best share my findings and formulae. Note that the model does not have Ackermann steering, so both front wheels always stay parallel.
The model is pretty stable as you can see in the pictures here. It can drive an over 30 degree sloped plane without tipping over, regardless what direction it is heading. This is due to the very low center of the masses, notably the brick and the motors.
Luckily you do not need to tear down and rebuild the Dune Buggy after driving it and running out of battery power. The brick can be turned to the back and upwards for changing batteries. Just remove the two diagonal rear bars and turn the brick up, decoupling it from the rear axes. The lid can then be removed from the brick, and batteries be replaced.
As is apparent from the top view here, the front wheels are closer together than the back wheels, which, i think, adds to the sturdy looks.
The bottom view shows that the wheels are geared 3:1 to the motor, giving it a higher speed than mounting the wheels directly on the motors. At the same time however, there is enough power left to make it do a wheelie when switching from driving backwards to forwards.
I have finally made photos when i took it apart, as well as a video of the model in action, see the links on my home page. I have given up on finding a way to share my programs to control it.
Thanks Nathan for your comments!
I really only used a single Mindstorms NXT set, but it was years ago, so what is now known as the Mindstorms NXT 1.0 set, which included the orange teeth and rubber double-axle hole thingies.
Good to hear you had 6 racers :)
How does their speed compare to my racers?
Quoting Nathan Goulding
...it appears as though you used a construction kit along with your retail NXT. I have access to both, and i know that the little orange "teeth" do not come in the normal set, nor do those funky rubber axle holder thingies.
a great build! we actually had to race 6 lego bots in our robotics class, using 6 other NXT bricks as remotes. none of ours looked this nice, but a few were VERY fast. However, the program for the fastest one failed somehow, so it couldn't steer very well.
nonetheless, it appears as though you used a construction kit along with your retail NXT. I have access to both, and i know that the little orange "teeth" do not come in the normal set, nor do those funky rubber axle holder thingies.
It is made from a single LEGO Mindstorms NXT 1.0 retail set, which allows you to go figure the costs i guess. I really need to think hard about how much time it took.... Typically i build in the weekend. And some models lie around unfinished for several months... but i think i did this one in less than three weeks, so perhaps about 5 to 10 hours or so?
That is a really long story.
The principle is the same for all my RC NXT models, see read what i wrote about NXTLiftBoy, for example. In short, i wrote a Java application that takes joystick input, translates into motor speeds and sends Bluetooth commands to the NXT. But i must admit this sounds deceivingly simple.