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.
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.
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.
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.