Project 1: A ROS2 Controller

For this project, you may program an iRobot Create3 robot to do anything you like, subject to the following constraints:

  • The program should use four ROS2 nodes, along the lines of the final part of Module 3:
    • A node that encodes inputs into symbolic values and publishes them.
    • A StateNode.
    • A node that publishes motor commands corresponding to states.
    • A CursesNode to display useful information.
      • It may also handle keyboard commands.
  • The robot must have at least four distinct states and four distinct inputs. It may have more.
  • The robot’s behavior must be influenced in some way by sensor values coming from at least three topics.