Company Logo
  • fibremap_940x230.jpg
  • intro1b_940x230.jpg
  • intro2_940x230.jpg
  • intro3b_940x230.jpg
  • intro4_940x230.jpg

Given a map composed of nxm squares, make the robot go from a Start square to a Goal square while avoiding obstacles. You can see an example of map in Figure 1.

Figure 1: Map example

The robot can only go in the north, south, east and west squares, namely it cannot move diagonally. In the first scenario the map is fixed so you know where the obstacles are. In the second scenario the map can change, so you cannot assume to know it in advance. Videos below show different working procedures to reach the goal.





At the end of the experience...


  • Make the robot reach the goal or report if it is not reachable
  • Use the infrared sensor
  • Use the gyroscope to improve the robot performances
  • Create more then one node (at least three: Robot, Navigation, Mapping)
  • Read the map parameters from a file (.yaml) or the launcher (as args)
  • Understand the basic ROS concepts (node parameters, use of topics)


  • Use the third engine to move the ultrasonic sensor
  • Object Oriented (OO) approach
  • Draw the map (e.g. using OpenCV)
  • Assume that the obstacles are not fixed. That is, if the goal seem not to be reachable, try again paths already tested.


  • Solve a known a priori map, given the start and goal cells
  • The map is unknown (you don't know where the obstacles are, you only know the start and goal cells)

What we want

  • Code (BitBucket)
  • Video (YouTube or BitBucket)
  • Report (PDF using Moodle) containing at least
    • The algorithm overview
    • At each step, how you choose the next cell to move in and why
    • The role of each node you developed
    • The three nodes interaction
    • The parameter file/launcher description
    • The CMakeLists.txt description

Sensors messages

nxt_msgs/Color Message

Header header
float64 intensity
float64 r
float64 g
float64 b

Powered by Joomla!®. Valid XHTML and CSS