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

Development v2.0 - ROS Free Builds #45

Merged
merged 26 commits into from
Apr 3, 2020
Merged

Development v2.0 - ROS Free Builds #45

merged 26 commits into from
Apr 3, 2020

Conversation

goldbattle
Copy link
Member

@goldbattle goldbattle commented Mar 27, 2020

Large Breaking Changes:

  • Moved types into their own namespace ov_core -> ov_type
  • Moved simulator class to ov_msckf
  • Simulator and VioManager now share parameter struct
  • FeatureRepresentation is moved to ov_msckf since FeatureInitializer is independent of it, and renamed to LandmarkRepresentation.
  • Covariance can no longer be accessed non-pragmatically, use the StateHelper for all covariance management!
  • Removed unneeded boilerplate access to state elements

Key Changes (in no particular order):

  • Removed the need to build the system with ROS (will not have any visualization, but the simulator works without ROS build system and packages)
  • Non-ROS builds can use command line to pass arguments to run the system
  • Tried to improve KLT stereo tracking by allowing for monocular tracks also (will first try to initialize a stereo track, if it can't it will track the feature as a monocular track).
  • Added single inverse depth representation (will have reduced accuracy, but is very fast)
  • Updated dataset scripts to be more complete
  • Added example launch file for uzh-fpv dataset
  • Added example script on how to run on EurocMav machine hall datasets (need to skip the initial part of each dataset, see this)
  • Example tracking main file which uses your webcam
  • Added fast odometry output at rate of the IMU (only the mean, the covariance isn't propagated) to support deployment on robots (right now this can't be asynchronously published)
  • Support smaller updates by limiting amount of features to be included in msckf/slam updates.
  • Other small formatting changes
  • More timing utilities including flameplots and comparison of total time
  • Expanded evaluation documentation on how to perform timing analysis

- now extract in the left and will try to track over to the right
- if the right image already has a feature there we keep tracking the left feature as a mono feat
- otherwise, we have a feature with the same id (and thus a stereo track)
- monocular right features are then extracted as necessary
- we then temporally track forward the left and right sets (no cross tracking is done)
- eurocmav groundtruths from their asl-format zip files
- tum-vi groundtruths from their asl-format zip files
- uzh-fpv is the /groundtruth/pose topic in their bag files
…the zip) and updated documentation for what datasets we support and how to run them
…tamp, limiting msckf per-frame feature count, fixed binocular flag being set incorrectly
@therishidesai
Copy link
Contributor

For the non-ROS builds do you have an example as to how it is done?

@goldbattle
Copy link
Member Author

Some untested commands that might work for you:

git clone https://github.com/rpng/open_vins/
cd open_vins
git fetch origin pull/45/head:pr_45
git checkout pr_45
mkdir build 
cd build
cmake ..
make -j8

@therishidesai
Copy link
Contributor

When trying to build without ROS here is the cmake error:

CMake Warning at ov_core/CMakeLists.txt:28 (message):
  CATKIN NOT FOUND BUILDING WITHOUT ROS!


-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Performing Test COMPILER_SUPPORTS_CXX0X
-- Performing Test COMPILER_SUPPORTS_CXX0X - Success
CMake Error at ov_eval/CMakeLists.txt:7 (find_package):
  By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "catkin", but
  CMake did not find one.

  Could not find a package configuration file provided by "catkin" with any
  of the following names:

    catkinConfig.cmake
    catkin-config.cmake

  Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set
  "catkin_DIR" to a directory containing one of the above files.  If "catkin"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/home/apache8080/open_vins/build/CMakeFiles/CMakeOutput.log".
See also "/home/apache8080/open_vins/build/CMakeFiles/CMakeError.log".

Seems like it is still looking for catkin settings.

@goldbattle
Copy link
Member Author

Go ahead now and give it a try.

@PetWorm
Copy link

PetWorm commented Mar 28, 2020

Hi, Patrick, great work!
I notice that you've added single inverse depth in dev 2.0. We also have implemented in LARVIO, where we called it 1D IDP (One-Dimensional Inverse Depth Parametrization).
I haven't go into openv-vins deeply, but in my experiment, 1D IDP will improve efficiency as well as precision, especially in larger scenario like MH_XX in EuRoC.
Maybe we can discuss the details and try to improve its performance in open_vins?
Have a good day!

@therishidesai
Copy link
Contributor

@goldbattle the non-ROS build worked. Thanks for the new features.

Copy link
Member

@WoosikLee2510 WoosikLee2510 left a comment

Choose a reason for hiding this comment

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

Comments been sent through email.

…rt all times in the imu clock frame of reference)
@goldbattle
Copy link
Member Author

@PetWorm I found in our simulation that the performance drop using the single depth is very noticeable. It is important to note that we ensure that we have consistent estimation by removing the bearing through nullspace. Check out the documentation for more details, and feel free to inspect to see if there are any implementation issues you see. Open a separate issue if you find anything.
https://github.com/rpng/open_vins/blob/develop_v2.0/docs/update-feat.dox#L470-L492

Copy link
Member

@yangyulin yangyulin left a comment

Choose a reason for hiding this comment

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

Looks OK to me.
I test it on newly generated mav trajectory, looks ok.

@goldbattle goldbattle merged commit e169a77 into master Apr 3, 2020
@goldbattle goldbattle deleted the develop_v2.0 branch April 3, 2020 15:35
@goldbattle goldbattle changed the title Development v2.0 Development v2.0 - ROS Free Builds May 18, 2020
@goldbattle goldbattle restored the develop_v2.0 branch December 20, 2020 06:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants