Project 5: Pit Stop

project1 project1

The goal of project 5 “Pit Stop” was to be able to get an IRobot create 3 to navigate a track using remote over the network control, with the assistance of a video feed. This Project involved working with ROS 2 (Robot Operating System), networking sockets, and multithreading.

The Process:

Given that this project did not require any structural design, as we where working with a off the shelf robot, this project involved only programming. To kick off the process, we decided to look into the documentation of ROS 2 and its architecture. Additionally, we researched what functionality came prebuilt along side the create 3 robot. Importantly we found information about key terms and components associated with ROS 2.

  • Node : a modular program that communicates with other nodes. Is the fundamental building block of ROS 2.
  • Action : a function where one node provides a service (server), while the other node requests (client). Actions are initiated with goals from the client, which establish the desired result.

Combining the research of ROS 2 and the Create 3, we decided to make a node to interface with the prebuilt actions: drive_distance, and rotate_angle. These actions allow for changing the position and rotation of the robot, perfect for our case.

The next order of business is designing the mechanism for communicating directions to our program. We decided to create a key listener program on a personal device to control the robot. Up arrow would move forward, left arrow would rotate left, and right arrow would rotate right. This was connected to our main program though the use of a socket (communication channel over the network) , and transferred json data. To handle this network connection on the robot, we used an additional thread to handle the connection and decode the information.

Results:

The success criteria of this project was for the robot to be able traverse a maze like track remotely, through the use of a live video feed. We were successful in this requirement.