Masters Student in Mechanical Engineering and Robotics
Northwestern University, Evanston, Illinois
Ekf Slam from scratch in ROS
This project was built from the ground up and coded using C++ in the ROS platform.
It employs a feature-based SLAM system using Extended Kalman filters and is run on the turtle bot 3 platform.
The entire task is split into parts as follows:
1) A library called rigid2d, which creates useful methods following the modern screw theory approach, detailed in 'Modern Robotics' by Kevin Lynch and Frank Park.
2) Creation of URDF descriptions to match a turtlebot3's dimensions
3) Creating libraries called diff drive and waypoints to create differential drive robot and waypoint follower C++ objects
4) Testing encoders and odometry in simulation and comparing it with the real turtlebot
5) Creating a clustering algorithm for identification of cylindrical landmarks
6) EKF slam
Code source :
Learning a robot's motion model using a neural network
A shallow neural network was trained using the UTIAS Multi-Robot Cooperative Localization and Mapping Dataset, by the ASRL lab.
The network managed to learn the model and could predict the posterior position given a control command. This trajectory matched well to the ground-truth.
The images to the left show performance of the trained model compared to ground truth for both the training and testing set.
robot image source : ASR Lab. Uni Toronto
code source:
https://github.com/vishwajeet-NU/ML-AI-/tree/master/neural_network
Report:
A* path planner for a grid world
Two variants of A* are implemented in a grid based world with obstacles. Data was used from the UTIAS Multi-Robot Cooperative Localization and Mapping Dataset, by the ASRL lab.
1) Offline A*: Paths are planned given a start position and a goal. A robot then follows this path using a simple P-controller. This however assumes the robot will follow the path as is, which is never the case given a noisy real-world.
2) Online A*: Paths are recalculated for each achieved position. Gaussian noise is added to the motion model to simulate motion uncertainty.
code source:
https://github.com/vishwajeet-NU/ML-AI-/tree/master/a_star
Report:
Particle filter localization
Given real-world dynamics, it is close to impossible building a mathematical model that can predict accurately a robot's state given a control signal. Localization using sensor data is thus performed to understand the robot's posterior state.
Particle filter is a non-parametric filter that can be used for the same. This algorithm is used to a high degree of success, again for the UTIAS Multi-Robot Cooperative Localization and Mapping Dataset, by the ASRL lab.
code source:
https://github.com/vishwajeet-NU/ML-AI-/tree/master/particle_filter
Report:
Joint trajectory generation and following for a robotic arm
Using the modern screw theory a you-bot is made to pick and place an object in a V-Rep based dynamic simulation.
A feed-forward based trajectory is generated which is then tracked by a feedback loop to drive the system.
code source: