These assignments and project work were done under the curriculum of the following course, all the details are provided below.
University and Department
This Course was offered by College of Computer and Information Science at Northeastern University.
Instructor
Prof. Marsette Vona conducted this course which included various Lab Sessions and Lectures. Professor Vona is Post Doctorate from MI T, Boston, MA. Details about him can be found in his webpage.
Course Structure
Course Structure was divided in o 5 lab sessions including a final project. All of these were done on OHMM Robot that is fully developed by Professor Vona and his team.
Each lab introduced a new challenge starting from designing basic movements, like moving robot forward, in circle etc to huge challenges like detecting a ball using camera and grabbing it using arm movements. Programming for these was done using JAVA and C. Gist of all the Lab work is provided under.
LAB 1 - Implementation of Differential Drive:
This lab introduced a basic challenge of making functions for the robot for moving straight and turning using Differential Drive.
Functions to move the right wheel and Left wheel in a particular speed was already provided and main challenge was to use those for implementation of differential drive.
Further, tasks were given to set the Linear and the Angular Velocity of the Robot by using functions which can be called from dos prompt like interface.
Concepts of P, PD, PID control was also introduced and certain tasks were given which urged to make functions for making the Robot to move to a certain distance, trace a square, circle etc.
For moving the Robot to a particular distance, “trapezoidal control” was used. This lab was written in C programming language and was very vital as it introduced various basic concepts and it was base for further future lab assignments.
Videos below show the successful implementation of these:
LAB 2 - Obstacle Avoidance and Navigation:
Lab 2 was one of the most challenging part of the whole curriculum. It assigned two tasks which included Local Navigation and Global Navigation.
Local Navigation introduced some of the most frequently used algorithms in the world of Robotics Systems and Science. It introduced various Obstacle avoidance algorithm including “Bug algorithm”, “Bug 2 algorithm”, “Distance Bug algorithm” and “GESTALED algorithm”
For this assignment Robot was added with bump switches in front and IR sensors on one side which were used to accomplish some of these algorithms. Various line fitting algorithms like RANSAC and Least Square Line fitting algorithms were also used for accomplishment of this task.
Global Navigation was one of the most exciting part of the course work where Robot was supplied with a map and starting and destination pose. Job of the Robot was to figure out the shortest path and to travel to the destination without hitting the obstacles. Video below shows successful implementation of this.
Dijkstra’s algorithm was used to compute the shortest distance from source to the destination and then simple navigation between two world coordinates was achieved in steps to complete this assignment.
LAB 3 - Arm Kinematics and Grasping:
This section of the curriculum introduced to the Robotic Arm concepts and further stimulated towards implementing of it using various Arm Kinematics and Arm Inverse Kinematics.
First part of this lab motivated towards developing a remote control for the Arm so that it can be controlled by mere key press. Functions to set various angles of the arm were given and main assignment was to use Arm Inverse kinematics so that arm movements can in particular direction, forward, backward, upward and downward. Also capability of the robot to turn-in-place was used to add another Degree of Freedom by adding “YAW” to the robotic arm. Video below shows the implementation.
Second part of this lab asked to use the functions created in previous part to go to a particular place, grab an object and come back to the original place. This was also successfully implemented and the video below shows the implementation
LAB 4 – Visual Servoing:
This section intended towards detection of objects as the first part and then grabbing the object in space by moving near to it.
First part was done using openCV libraries. The video below shows a part of the lab where a pink blob is selected by mere mouse click and then the object features are stored for detection.
Plus sign over the blob follows the ball movement, this is further extended in the next part where Robot is made to move so as to bring the blob into a particular pixel coordinate and then arm movement is used to grab the object. The video for this is shown below,
LAB 5 – Final project:
This part motivated towards selecting any project that relates to some of the research areas. It was found that Localization is a huge problem that persists in the Robot Systems now-a-days. Hence an effort was put to improve this with the help of a newly evolved tag detection system called “April Tags”. These are very much similar to QR tags but are more compatible with Robotic Systems.
Error was computed using the fixed April Tag position and then was resolved using robot movement.
The research papers used for th is project were:
“Position Estimation for a Mobile Robot using Data Fusion – E. Stella, G. Cicirelli, A. Distante” & “AprilTag: A robust and flexible visual fiducial system – Edwin Olson”
Also, an extra capability was add ed to the Robot during this project work that w as to play certain interactive games with children.
One was the Dancing Robot, where Robot used to perform different dancing steps when it was shown different ID of April Tag. Another exciting game playing capability that was adde d to it was “Rock paper Scissor” which was really apprec iated; video for this is shown below.