COMP3431 - Robotic Software Architecture

Nodes and Topics:

  • Topics: Streams of data (e.g. a point)
  • Nodes:
    • They consume or produce data, and can hence publish (produce) to a topic or subscribe (receive/consume) to it
    • Nodelets: Nodes that share a process ID

ROS provides services we can use.


  • Group of Nodes
  • Message/Service Definitions
  • Libraries
  • Dependent on eachother

Probabilistic Robotics
We don't work with exact data in robotics, because there are so many places for data to go wrong.

  • Errors
    • Measurement Errors; Sensors are never 100% accurate
    • Process Errors; Actions never do exactly what's intended


  • Laser scanners (periodic distance and intensity measurements)
  • Cameras (stream images in various encodings. ROS doesn't convert encodings).
  • IR Cameras
  • Depth Cameras (mono16 images turned into point clouds. depth can be radial or axial).
    • Image pipeline: streaming raw images maxes out the network, igoring overheads. ROS image pipeline compresses the images.
    • Throttle: instead of pipelining, you throttle the image stream to a lower frequency (less images per second)
  • Motor
  • Pressure Sensor
  • Compass (which way is North)
  • Accelerometer (which way is Down)
  • IMU
  • GPS
  • Wifi
  • Audio

Frame of Reference: allows data from multiple sensors to be matched.

Euler Angles

  • Roll (X)
  • Pitch (Y)
  • Yaw (Z)