Skip to content

System Sensor Integrations

Gabriel Blomberg edited this page Apr 29, 2024 · 11 revisions

Laser Distance Sensor

The TurtleBot3 Waffle Pi features an LDS-01 laser distance sensor that is used for robot localisation. The laser distance sensor can be integrated with the system using a USB adaptor that plugs into the USB2 ports of the raspberry pi onboard, or by direct serial communication over UART.

Data Type

The ROS message type of the laser distance sensor emits the following message:

# Single scan from a planar laser range-finder
#
# If you have another ranging device with different behavior (e.g. a sonar
# array), please find or create a different message, since applications
# will make fairly laser-specific assumptions about this data

Header header            # timestamp in the header is the acquisition time of 
                         # the first ray in the scan.
                         #
                         # in frame frame_id, angles are measured around 
                         # the positive Z axis (counterclockwise, if Z is up)
                         # with zero angle being forward along the x axis
                         
float32 angle_min        # start angle of the scan [rad]
float32 angle_max        # end angle of the scan [rad]
float32 angle_increment  # angular distance between measurements [rad]

float32 time_increment   # time between measurements [seconds] - if your scanner
                         # is moving, this will be used in interpolating position
                         # of 3d points
float32 scan_time        # time between scans [seconds]

float32 range_min        # minimum range value [m]
float32 range_max        # maximum range value [m]

float32[] ranges         # range data [m] (Note: values < range_min or > range_max should be discarded)
float32[] intensities    # intensity data [device-specific units].  If your
                         # device does not provide intensities, please leave
                         # the array empty.

Hence each message contains the ranges between the start and end angles at various increments.

The precision and accuracy of the measurements are:

  • Distance range: $120\text{mm to }3500\text{mm}$
  • Distance accuracy:
    • $120\text{mm to }499\text{mm}$: $\pm 15\text{mm}$
    • $500\text{mm to }3500\text{mm}$: $\pm 5\%$
  • Distance precision:
    • $120\text{mm to }499\text{mm}$: $\pm 10\text{mm}$
    • $500\text{mm to }3500\text{mm}$: $\pm 3.5\%$
  • Scan rate: $300 \pm 10\text{ rpm}$
  • Angular resolution: $\pm 1^\circ$
  • Angular range: $360^\circ$

Integration

The laser distance sensor is attached to the TurtleBot3 Waffle Pi using the USB2 adaptor. The ROS node for the laser distance sensor is launched alongside the main ROS node on the Turtlebot3. Each laser data message is handled for localisation. The localisation data and distance measurements are emitted over MQTT to be displayed on the dashboard.

Foot Pedal

The foot pedal sensor is used to control the velocity of each of side of the robot. Pressing the left pedal increases the velocity of the left wheels, and pressing the right pedal increases the velocity of the right wheels.

Data Type

The foot pedal produces the magnitude to which each pedal is pressed. The specific data type is yet to be determined.

Integration

The foot pedal sensor is attached via USB to a Nucleo-429ZI that handles incoming packets. The magnitude of each pedal press will be parameterised between zero and one and sent over serial to a local computer, which emits them over MQTT to the robot and dashboard.