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

Pose SLAM Python examples using iSAM2 #891

Merged
merged 8 commits into from
Oct 29, 2021

Conversation

jerredchen
Copy link
Contributor

Two files to be added to Python examples:

  • Pose2ISAM2Example.py
  • Pose3ISAM2Example.py

Both files are Pose SLAM examples that utilize iSAM2 as opposed to a nonlinear optimizer. The examples both consist of a robot that takes in odometry measurements which are inserted into the factor graph and optimized using iSAM2. Instead of hardcoding an additional loop closure constraint, each pose performs simple loop closure detection. A plot is also generated to demonstrate the incremental nature of iSAM2.

Pose2ISAM2Example Plot:

Pose2SLAMPlot.mp4

Pose2ISAM2Example Output (final pose estimates):

Pose2ISAM2_output

Pose3ISAM2Example Plot:

Pose3SLAMPlot.mp4

Pose3ISAM2Example Output (final pose estimates):

Pose3ISAM2_output

@jerredchen jerredchen added the feature New proposed feature label Oct 13, 2021
@jerredchen jerredchen requested review from dellaert and a team October 13, 2021 15:32
@jerredchen jerredchen self-assigned this Oct 13, 2021
Copy link
Member

@dellaert dellaert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did only do Pose2, pls generalize my comments to Pose3.

python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
Copy link
Member

@dellaert dellaert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Approve after addressing further comments.

python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Outdated Show resolved Hide resolved
python/gtsam/examples/Pose2ISAM2Example.py Show resolved Hide resolved
python/gtsam/examples/Pose3ISAM2Example.py Show resolved Hide resolved
python/gtsam/examples/Pose3ISAM2Example.py Outdated Show resolved Hide resolved
@jerredchen
Copy link
Contributor Author

jerredchen commented Oct 28, 2021

@dellaert I know that you have already approved changes, but would like to request re-review for you to take one last look for good measure. This is what the Pose2ISAM2 visualization may look like, which we discussed is still the converged optimum as long as the initial estimate was within the basin of attraction. The converged optimum when using noisy measurements to create the odometry factors (which is realistic for practical implementation) of course results in an imperfect trajectory for each visualization plot.

new_plot.mp4

@dellaert
Copy link
Member

Please merge after formatting and sort imports w Google style.

@jerredchen jerredchen merged commit 0f8353f into develop Oct 29, 2021
@jerredchen jerredchen deleted the origin/feature/python_examples branch October 29, 2021 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New proposed feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants