Hardware‎ > ‎The Critterbot Robot‎ > ‎

Sensorimotor Layout

This page is meant to provide a brief, easy-to-access overview of the Critterbot's sensorimotor layout.

Sensor Layout

The table below provides a summary of the locations of particular orientation-dependent sensors on the robot.  Additional detail on the Critterbot's accompanying sensors available on the Critterbot Interface page.

Sensor Num Range Sim Robot
Light Sensor 4 (0,700) Y

Higher values are brighter. Expect 20-200 in dim light, 400+ in sunlight.
IR Distance Sensor 10 (0,255) Y

See response curves for value/distance relationship. Sensitive only in a very narrow field of view, reflective and dark objects are not detected as well as matte white ones. Important real-word considerations: With no detectable object in range these have a value of 2-3, not 0; noise is in no way gaussian, when an object is just on the edge of detection values will jump wildly between 2-3 and ~50; when an IR sensor on the robot is pressed against an obstacle it will likely read greater than 100 but less than 255, see response curves.
Thermal Sensors 4 (11748,19908) N

Each sensor provides two values, the first is the ambient temperature (Ta) of the sensor itself, the second is the average temperature in it's field of view (To). Kelvin temperatures are value / 50.
Bump Sensors 32? (0,255) Y

Orientations to be determined.

Provided in the simulator for now as a function of collision force, the value is not instantanious but decays from a maximum value for several observations after the impact.

Motor and Wheel Layout

This subsection gives a brief summary of the orientation of the Critterbot's wheels (additional detail is available on the Critterbot Interface page).  Consider the following orientation diagram:

Wheel-specific commands are ordered according the diagram above. The motor index indicates the order of the wheel in the command packet, the wheel value is the angle of the wheel relative to the positive X axis.

Mode 0 Wheel Velocity Control
Each of the three value fields represent the velocity of one of the robot's three wheels, in the range -100 to 100.
Set motor_mode to WHEEL_SPACE in CritterControlDrop, set values for m100_vel, m220_vel, and m340_vel.
Mode 1 Robot Velocity Control
The first value is the robot's forward or x velocity, the second value the robot's sidways or y velocity, and the third is the robot's rotational velocity. Again in the range -100 to 100.
Set motor_mode to XYTHETA_SPACE in CritterControlDrop, set values for x_vel, y_vel, and theta_vel.
Mode 2 Wheel Voltage Control
Each value represents the relative voltage sent to each wheel. This can roughly be viewed as the force exerted by the wheel, in the range of -127 to 127. This is the lowest level of control possible.
Unimplemented at this time.

For instance, the command ['1', '25', '0', '-10'] tells the robot to move forward at 1/4 velocity and turn slowly to the right. Actions sent in Modes 0 and 2 are not as intuitive as the cartesean velocities sent in Mode 1. Most combinations of wheel velocities in Mode 0 will result in the robot spinning in eccentric circles. Linear motion occurs with a small subset of commands, the simplest of which are any ordering of 0, X, and -X. Actions in Mode 2 produce similar results, due to the lack of feedback in the low-level control the resulting motion will be less precise.

Thomas Degris-Dard,
Mar 15, 2010, 11:24 AM
Thomas Degris-Dard,
Mar 15, 2010, 11:22 AM
Thomas Degris-Dard,
Mar 15, 2010, 11:23 AM