NXT Wheel: remote control for mobile robots
Remember the NXT Switchboard, the NXT-based remote control I posted some weeks ago about? It allows you to remotely control each motor of a NXT robot independently. However, it turned out that it's better suited for immobile robots as it's usually pretty difficult to actually steer a mobile robot when you need to control each of the driving motors on your own.
So I decided to create another remote control particularly aimed at such car-like mobile robots, called NXT Wheel; as a consequence, it has a large hand wheel and a speed throttle:
The response time is somewhat low, though...
So I decided to create another remote control particularly aimed at such car-like mobile robots, called NXT Wheel; as a consequence, it has a large hand wheel and a speed throttle:
The response time is somewhat low, though...
Comments
Also, I like the steering on the Mesarati - the worm --> turntable gearing.
However, like Brian, I dont understand the sluggishness re response time either - It can be one of three things:
(1) Cheshire Cat had a bit too much to drink or had too many Easter eggs over the holidays
(2) leJOS not very good at Bluetooth polling
(3) The extra lag in the stepped steering - thanks to the worm to turntable gearing.
Just my 2c.
Tim
nice robot its a cool litle steering whel but unfortunately not everyone gets those giant green wheels which are great for steering :(
By teh way, the worm gear is rather robust (I'm decidedly a fan of worm gears and turntables), but naturally, it's not very suited for triggering fast turns...
I wouldn't consider that a shortcoming of the remote controls you mention - it's just the way the wheel in any car works: when you turn the wheel say 20 degrees, your car's front axis will turn 20 (or another associated number of) degrees also and then stop turning (this is exactly what the NXTerati's front axle is doing); but of course, the car itself will continue to turn when you drive on in that state, as the front wheels are not facing forward then. Consequently, the car will keep turning until you bring back the wheel into straight position.
The behavior you want to see can be programmed, no question - but it's somewhat exotic and decidedly different from the way people usually steer cars.
The reason why most remote programs (like Philo’s Brians, and mine) are not the way you would want it because we created a general functioning remote, that uses the input angle as an measurement for the output speed and not the output angle.
Otherwise the car, only drives so far as the throttle would turn, about have a turn…..
Since you can explain to us in words what the program for steering should do I think you also can program it in NXT-G.
Keep in mind that:
The receiving program (the car) should keep track of the wheel position (store this in a variable (turn_angle)) and compare that to the input position (from the BT sender). Only when the two are different the car should move the motor in the direction to match the input (angle) value, and while moving store the current output value back into the turn_angle.
Now this requires a loop and the only way to jump out of this loop is when the two values are equal.
There is a catch!
1) The output turn_angle is bound to limits (not possible to turn further then the max turn angle.)
2) Due to gearing the ratio might not be 1:1, but if you move the remote a small bit, the motor on the car should move 4 times
3) You want a small centre bandwidth to make the car more stable when driving straight, and not so nervous.
4) Due to measurement errors, your center can shift a bit, you should therefore initialize the turning radius before you start driving by turning first full to the left, until the motor goes into stall, and then full to the right, again until stall. Then calculate the difference, and divide it by 2 to determine the center.
I hope this helps you in getting your car program running like a proportional remote car.
Martyn
The reason why most remote programs (like Philo’s Brians, and mine) are not the way you would want it because we created a general functioning remote, that uses the input angle as an measurement for the output speed and not the output angle.
Otherwise the car, only drives so far as the throttle would turn, about have a turn…..
Since you can explain to us in words what the program for steering should do I think you also can program it in NXT-G.
Keep in mind that:
The receiving program (the car) should keep track of the wheel position (store this in a variable (turn_angle)) and compare that to the input position (from the BT sender). Only when the two are different the car should move the motor in the direction to match the input (angle) value, and while moving store the current output value back into the turn_angle.
Now this requires a loop and the only way to jump out of this loop is when the two values are equal.
There is a catch!
1) The output turn_angle is bound to limits (not possible to turn further then the max turn angle.)
2) Due to gearing the ratio might not be 1:1, but if you move the remote a small bit, the motor on the car should move 4 times
3) You want a small centre bandwidth to make the car more stable when driving straight, and not so nervous.
4) Due to measurement errors, your center can shift a bit, you should therefore initialize the turning radius before you start driving by turning first full to the left, until the motor goes into stall, and then full to the right, again until stall. Then calculate the difference, and divide it by 2 to determine the center.
I hope this helps you in getting your car program running like a proportional remote car.
Martyn