Advanced Floor Robots

This chapter covers advanced floor robots that are tightly coupled to a screen turtle. Such a floor robot repeats every movement that the screen turtle does. There are a few extra commands that each floor robot interprets differently.

The InO-Bot

inobot.jpgThe InO-Bot is the latest addition to our expanding family of floor robots. This robot does not have any buttons like Bee-Bot or Blue-Bot. Instead, Logo controls the robot directly. This is our first true Logo floor turtle!

The InO-Bot comes with a pen holder and a large collection of built-in sensors. Like a bat, it has an ultrasound emitter and receiver that makes it able to measure the distance to an obstacle. It also has an infrared emitter and a corresponding sensor. Whenever an InO-Bot switches on its infrared beam, other InO-Bots can sense that beam.

Furthermore, it has two headlights, and set of 8 full-color LEDs. Finally, it has an extra jack where you could connect a small motor, a fan, a light, or the like.

Did we mention that it can play sounds and even play music?

The Root Robot

This is an advanced floor robot that we do not sell directly. Please visit https://www.rootrobotics.com to buy a Root robot.

Having said this, we like the concept, and because is it so close to a Logo turtle, we decided to offer support for that robot as well.

The Root robot supports precise movements with or without a pen. On a magnetic surface like a whiteboard, it can even move vertically, and it can erase a drawing. It supports a long line of sensors, among them a color sensor to track colored lines, and a sensor that should keep the robot from falling off a table.

Connecting via Bluetooth

All of these floor robots have a Bluetooth radio built in so your computer or tablet can connect. Logo can only communicate with floor robots when connected. Therefore, you need to connect your robot first.

Select “Connect to Bluetooth device…” from the Tools menu to select the robot device to connect to. Please keep in mind that your browser needs to understand Web Bluetooth to connect. The desktop version connects to Bluetooth just fine. The dialog lists all devices known to Logo.

On Windows, the Root robot sometimes does not list correctly; instead an unknown device is listed. Just select that device, and Logo connects if the device is a Root robot.

Once Logo has connected to a robot, it flashes and beeps, and Logo creates a special turtle for you and sets the TELL list to the name of that turtle so commands like FORWARD or RIGHT work with that turtle. The special turtle forwards all commands it knows to the floor robot.

The name of the turtle corresponds to the Bluetooth name of the device.

You should not create more than one special screen turtle. If you need to re-create the turtle, erase it first with the ERASE command.

The Special Turtle

At first sight, the special turtle is just another turtle with the shape of the floor robot, but there are quite a few subtle differences.

  • When you move or turn the turtle, the robot moves and turns in exactly the same way. Also, the PENUP and PENDOWN commands makes the robot raise and lower its pen.
  • The SETSPEED command affects the robot's speed.
  • Several additional properties have been added to the turtle's proeprty list.
  • Some commands like SETWIDTH to set the pen's width affect the screen turtle, but not the robot.
  • The screen turtle silently ignores all commands that the robot cannot execute. It cannot, for example, fill an area, or draw an ellipsis with STAMPOVAL.

Properties

All advanced floor robots have a number of additional properties that cover the robot's sensors. Use the PLIST and GPROP commands to access these properties, and PPROP or PPROPS to modify them.

WHEN values

If you want to process sensor input, it is a great idea to issue a WHEN command to handle ths input.

Robots usually begin to send input to Logo as soon as the robot has been connected, so your program should be prepared to process the data if required. This example checks the status of InO-Bot's left front obstacle sensor. When triggered, Logo prints “OUCH”, backs up and turns right.

WHEN [INOBOT FRONTLEFT = TRUE] [
    PRINT "OUCH
    BK 10
    RT 45
]

See the page WHEN Something Changes page for more details.

The InO-Bot in Depth

This section explains all special commands and properties available for InO-Bot.

Movements

InO-Bot moves in units of centimeters (cm). the command FORWARD 10 would cause InO-Bot to move forward 10 cm. The maximum distance that InO-Bot can move is 127 cm. If you need InO-Bot to move further, you need to issue multiple movement commands.

InO-Bot can turn in degrees. Each unit is a single degree, so the command RIGHT 20 turns InO-Bot right by 20 degrees. The maximum movement is 180 degrees in either direction.

LEDs

InO-Bot has 8 full-color LEDs that you can program either individually or together.

Please refer to the LED command for details.

Sounds and Music

You can make InO-Bot play simple melodies. Its note range is limited, and the accuracy of the notes is not too good, but sufficient. It can also play a number of predefined sounds.

Please refer to the PLAY.SOUND, PLAY.NOTES and SAY commands for details.

Properties

InO-Bot has a number of additional properties that cover the robot's sensors. Use the PLIST and GPROP commands to access these properties, and PPROP or PPROPS to modify them.

If you want to process sensor input, it is a great idea to use the WHEN command to monitor these properties - see below.

BATTERY Reports the battery level in Volts. 0-9
CALIBRATION Movement calibration, see below.
CONNECTOR Controls the external connector. FORWARD, BACK, STOP
DISTANCE Reports the distance to an obstacle. 0-255 cm
INFRARED Controls the infrared emitter and receiver. 0-1
LIGHT Reports the the value of the ambient light sensor. 0-1
LIGHTS Controls the brightness of the headlights. 0-1
LINELEFT Reports the status of the left line sensor. TRUE/FALSE
LINERIGHT Reports the status of the right line sensor. TRUE/FALSE
NOISELEVEL Reports the noise level that InO-Bot's microphone records. 0-255
FRONTLEFT Reports the status of the front left obstacle sensor. TRUE/FALSE
FRONTRIGHT Reports the status of the front right obstacle sensor. TRUE/FALSE
REARRIGHT Reports the status of the rear left obstacle sensor. TRUE/FALSE
FRONTLEFT Reports the status of the rear right obstacle sensor. TRUE/FALSE

For a detailed description, please see the InO-Bot properties page.

Calibration

Do not expect InO-Bot to do exact movements, though! Most often, Ino-Bot needs to be calibrated somewhat. You can use InO-Bot's CALIBRATION property to make the bot's movements and turns more accurate. This property i s a two-element list. The first element is a turn adjustment factor, and the second element is a movement adjustment factor. Initially, both values are set to 1.

Now, tell InO-Bot to turn right 90 degrees, and measure the number of degrees that InO-Bot actually turned. Let us say that InO-Bot actually turned 95 degrees. In that case, you would issue the following command:

PPROP "INOBOT "CALIBRATION [90/95 1]
Error: 90 is not between -5 and 5

Oops! What happened? Well, Logo treats everything inside square brackets literally; it does not calculate the expression “90/95”. Instead, Logo created a list with 4 elements: [90 / 95 1]. If you want Logo to calculate the expression, use the LIST command to have Logo construct the list:

PPROP "INOBOT "CALIBRATION LIST 90/95 1

Now, try again, and see if InO-Bot turns 90 degrees. You may need to repeat the procedure a few times.

Try to send InO-Bot forward 10 cm, and measure the actual distance. If InO-Bot actually moved 9.5 cm, for example, you enter this command:

PPROP "INOBOT "CALIBRATION LIST 90/95 10/9.5

Does InO-Bot advance 10 cm now?

If you measure in inches instead of cm, you can use the same method. 10 cm are 3.937 inches; now, measure the actual distance (9.5 cm would in this example be 3.74 inches), and enter this command:

PPROP "INOBOT "CALIBRATION LIST 90/95 3.937/3.74

The Root Robot in Depth

This section contains all info that is specific to the Root robot.

Movements

The Root robot is capable of very precise movements; it moves in millimeter units, so FORWARD 10 causes a movement of 10 mm = 1 cm. It can turn in units of single degrees. The PENERASE command activates the eraser.

LEDs

The Root robot has four LEDs that can change color, and that have a few blinking effects.

Please refer to the LED command for details.

Sounds and Music

The Root robot can play notes as beeps. Additionally, the SAY command causes it to talk robot gibberish.

Please refer to the PLAY.SOUND, PLAY.NOTES and SAY commands for details.

Properties

BATTERY Reports the battery level in percent. 0-100
BUMPERLEFT Reports the state of the left bumper sensor. TRUE/FALSE
BUMPERRIGHT Reports the state of the right bumper sensor. TRUE/FALSE
CLIFF Reports the state of the cliff sensor. TRUE/FALSE
COLORS Reports the state of the color sensor array. 5-element list
LIGHT Reports the light sensors. NONE, BOTH, LEFT, RIGHT
STALLED Reports whether a motor is stalled. NONE, LEFT, RIGHT, MARKER
TOUCHFRONTLEFT Reports the status of the top front left touch sensor. TRUE/FALSE
TOUCHFRONTRIGHT Reports the status of the top front right touch sensor. TRUE/FALSE
TOUCHREARLEFT Reports the status of the top rear left touch sensor. TRUE/FALSE
TOUCHREARRIGHT Reports the status of the top rear right touch sensor. TRUE/FALSE

For a detailed description, please see the Root properties page.

Calibration

The Root robot does not need any calibration.