top of page

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 :

https://github.com/vishwajeet-NU/slam_project

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:

https://github.com/vishwajeet-NU/robotic_manipulation

© 2023 by Web-Designer. Proudly created with Wix.com

  • GitHub-Mark
  • YouTube
bottom of page