Home Solutions Links About


butlerbot

Butlerbot was built as an experimental vehicle. I wanted a simple model to develop my skills in Bluetooth messaging, vehicular remote control and file processing. I started with the basic Tribot chassis and modified the front end to enable it to carry a cup.

The ultrasonic sensor was for crash prevention. When the distance to an obstacle was less than 40cm, the robot stopped. In this state it could only be driven backwards until the obstacle distance was greater than 40cm at which time forward motion once again became possible.

The sound sensor was programmed to alternately open and close the hand when a loud clap was made. I found that the sensor had to be ignored during robot motion as the noise of the motors continually triggered the sensor. The hand could also be opened and closed using the touch sensor on the remote control.

I spent some time on the design of the remote control unit. I wanted it to be reasonably ergonomic and modelled it after the style of games console controllers. Both the paddle (controls speed and direction) and the steering wheel can be operated with the thumb. The touch sensor is operated with the first finger. It is somewhat of a coincidence that Philippe Hurbain was working on his remote control at the same time that I was.

Probably the greatest challenge in this project was the menu system on the remote control. My original intention was to use the menu to specify which sound file the robot would play. However, I soon realised that it was a very powerful tool to direct the robot to perform a multitude of functions provided that they were not time critical. Some day I plan to fully encapsulate the menu function into a "Myblock" and publish it on the web.

Butlerbot was finished in early February 2007.

Butlerbot is a simple robot. It is based on a Tribot chassis with a modified front end.
A view of the cup carrier with the hand partly open.
A bit more detail - the hand drive train.
I felt that the single support beam on each side of the nxt brick was a bit flimsy so I added a second one. This made the model significantly stronger.
This is the remote control. Moving the paddle controls speed and direction. Moving the steering wheel does the obvious. The steering algorithm reduces the speed of one wheel proportionately to the angle the steering wheel is turned. Turning the wheel further causes the drive wheel to reverse so that ultimately the robot can spin in place. I did not use the steering property of a move block to achieve this as it did not operate smoothly. Rather I wrote my own control algorithm which gave excellent results. Both inputs are programmed with parameterised null zones to prevent motor stall at very slow speeds.
This photo shows the positioning of the touch sensor used to open and close the robot hand.
"Radar on" and "Radar off" controlled motion sound effects on the robot. The remaining menu items triggered the robot to enunciate the selected phrase.

The menu was operated using the three NXT buttons. The left and right buttons moved the selector bar up and down. The orange enter button triggered the selected action. When the selector bar reached the top or bottom of the screen, a subsequent movement in the same direction caused the menu to scroll. Scrolling happened indefinitely, ie, there was no real top or bottom to the menu. The original list was in effect folded over on itself.
The menu list was created in Microsoft Notepad (any text editor will do) and loaded into the NXT as a file using the standard import process in NTX-G.

A pink NXT!!? No. Something strange happened in the photographic process.