Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document #3

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,65 @@ Create a new pull request from the `Pull Requests` tab on this repo, not the for

Request reviews from at least two people.

---

## Overview

For localisation we decided to implement SLAM ( Simultaneous Localisation and Mapping ). For this we started off with looking into [OpenVSLAM](https://openvslam.readthedocs.io/en/master/ros_package.html).

Some courses for conceptual understanding we found helpful:

1. [Mobile-robotics](http://ais.informatik.uni-freiburg.de/teaching/ss19/robotics/)
2. [Visual Navigation](https://vision.in.tum.de/teaching/ss2013/visnav2013)

### Dependencies:

1. [Eigen](http://eigen.tuxfamily.org/)
2. [g2o](https://github.com/RainerKuemmerle/g2o)
3. [DBoW2](https://github.com/shinsumicco/DBoW2)
4. [OpenCV](https://opencv.org/)
5. [Pangolin](https://github.com/stevenlovegrove/Pangolin)

### Issues:

* Mismatch between OpenCV versions :

Resolved by properly setting up paths and making changes in CMakefiles to enable it to run on required version.

* Video streaming from gazebo :

To make it work with live video feed from gazebo we had to redirect some topics and attach a camera plugin on our model which was kept in the simulation environment with obstalces and walls around it.

Testing OpenVSLAM with a drone moving through a virtual alley:
[Click here for video](https://drive.google.com/file/d/1Y_Hu-au4z2JEkjzrlUlrZw7EljRF2b_A/view)


To test this on a quadruped we tried to stimulate the model we had using [towr](http://docs.ros.org/lunar/api/towr/html/index.html) and [towr_ros](https://github.com/ethz-adrl/towr)

We had to modify the code to make our own node to publish the final pose for the quadruped to reach.

![Image](https://github.com/isro01/PETcat_localization/blob/document/img/towr_code.png)

[Demo video can be found here](https://drive.google.com/open?id=1MN2vm95H1Dhfs8n3qlgd3xLlkyX3Nfzf
)

* Improper friction values for joints:

We didnt have proper friction values for the robot joints and hence the random motion in the demo video.

Moved on to a [repository](https://github.com/chvmp/champ) to implement the model with SLAM.

---

## Benchmarking

Had to benchmark against [OpenVSLAM](https://openvslam.readthedocs.io/en/master/installation.html) and [GMapping](http://wiki.ros.org/gmapping) the following factors:

1. Feature detection
2. Detection rate
3. CPU usage and GPU information
4. Odometry drift

The work done for the same can be found [here](https://github.com/m2kulkarni/PETcat_Benchmark)

---
Binary file added img/towr_code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.