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

Adding support for SURF Features #739

Open
wants to merge 519 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
519 commits
Select commit Hold shift + click to select a range
7c3dbb8
Added Zsh Support (#366)
Pedro-Roque Dec 15, 2021
7c2cd4b
Quick docker build (#360)
jdekarske Dec 15, 2021
a5e3f20
Use QT5 in Ubuntu20+ (#307)
marinagmoreira Dec 16, 2021
8c99469
fixing multiple incompatible tests bug (#368)
marinagmoreira Dec 16, 2021
709e7fa
Fix: localization_node was missing ff_util dependency (#369)
albee Dec 20, 2021
2b0f12a
Fix in declared undistorted bounds (#375)
oleg-alexandrov Dec 23, 2021
21f70c8
Changes to bot config files and some minor fixes (#373)
oleg-alexandrov Dec 23, 2021
7171892
added sparse mapping launch script (#374)
rsoussan Dec 23, 2021
9e47d6c
Depth odometry (#361)
rsoussan Dec 29, 2021
6751a87
Teleop marker (#346)
jdekarske Jan 3, 2022
72fe9ab
Framestore can now be called multiple times from different workspaces…
marinagmoreira Jan 3, 2022
097d25e
Add fix for enabling localization from launch file (#382)
oleg-alexandrov Jan 4, 2022
b994706
Minor config fixes (#383)
oleg-alexandrov Jan 4, 2022
be3f540
make image names uniform; fix debian build script (#380)
marinagmoreira Jan 4, 2022
ef98f66
Expand the theia doc (#386)
oleg-alexandrov Jan 6, 2022
c636187
do not cross compile interactive_marker_teleop (#387)
marinagmoreira Jan 6, 2022
63a0c1d
Add a sentence to the doc on the sly. Dont want to make a pull reques…
oleg-alexandrov Jan 6, 2022
a600e1f
Tiny indentation fix
oleg-alexandrov Jan 6, 2022
951f71e
Making mapper nice 10 (#389)
marinagmoreira Jan 7, 2022
736933f
Depth odometry organized icp (#388)
rsoussan Jan 8, 2022
155a967
build_map.md: Update the doc and mention Ryan's tool (#390)
oleg-alexandrov Jan 10, 2022
13be2a3
Pico proxy as nodelet (#379)
marinagmoreira Jan 10, 2022
024adfe
Passing pose arg for each Astrobee (#391)
Pedro-Roque Jan 10, 2022
f6fca88
CPU node load info + Performance scripts (#370)
marinagmoreira Jan 11, 2022
282e0d3
Bugfix in undistort_image (#393)
oleg-alexandrov Jan 11, 2022
f29950a
improve documentation and readability + increase split (#394)
marinagmoreira Jan 12, 2022
d0634f5
Release 0.16.1 (#395)
marinagmoreira Jan 13, 2022
d3b5579
Merge pull request #396 from nasa/develop
bcoltin Jan 13, 2022
3c07f04
Added Unit Tests to Graph Loc Combined Nav State Node Updater (#397)
rsoussan Jan 18, 2022
053b5a4
tensor.cc: Add an optional flag to make image matching much less verb…
oleg-alexandrov Jan 26, 2022
665c330
Added script for analyzing clock skew between LLP/MLP/HLP
trey0 Jan 26, 2022
f09c9da
Add tool for filtering rosbag topics that is robust to malformed rosj…
trey0 Jan 27, 2022
d449b11
Added checking the position error only if the choreographer is in sta…
marinagmoreira Jan 28, 2022
35ac3d7
rosbag_topic_filter.py: Improve speed and warn about likely user erro…
trey0 Jan 31, 2022
8dffea4
Fix contents coverage_painter.py (#407)
amoravargas Feb 1, 2022
a2fb82b
Fix lint errors (#408)
marinagmoreira Feb 2, 2022
7319ebe
Add Python tools for processing Pico Flexx data, reducing redundant l…
trey0 Feb 3, 2022
7313820
pico_driver/scripts/README.md: improved docs
trey0 Feb 3, 2022
65dd021
pico_utils: fix to correctly calculate RMS error
trey0 Feb 3, 2022
0371bb9
pico_utils: Improve documentation and console output
trey0 Feb 3, 2022
699f576
Add distro suffix (#409)
marinagmoreira Feb 3, 2022
7e57124
making the mapper get only one message per cycle (#410)
marinagmoreira Feb 3, 2022
8a7d1bf
Release 0.16.2 (#414)
marinagmoreira Feb 4, 2022
e208f80
Merge pull request #415 from nasa/develop
marinagmoreira Feb 4, 2022
84e481e
Added Inverse depth projection factor (#416)
rsoussan Feb 10, 2022
c4afb0f
Merge pull request #411 from trey0/pico_split
trey0 Feb 15, 2022
043a0b2
Added pose interpolater (#419)
rsoussan Feb 22, 2022
12bc19d
Added scripts for bayer conversion, histogram equalization, and map c…
rsoussan Feb 22, 2022
4d5d9a4
Fix flaky inverse depth tests (#425)
rsoussan Feb 23, 2022
27d1ff6
Adding data share documentation (#424)
marinagmoreira Feb 23, 2022
2df6e72
Warn users about 3D acceleration bug when using VM on Ubuntu 20/Gazeb…
marinagmoreira Feb 23, 2022
0389e2d
public_data.md: greatly expanded
trey0 Feb 24, 2022
d51791f
public_data.md: add common bag processing tasks
trey0 Feb 24, 2022
64c821a
public_data.md: add imagery export
trey0 Feb 24, 2022
8b2ae7d
public_data.md: add potential issues
trey0 Feb 24, 2022
664109d
public_data.md: simplify the install section, get to the point faster
trey0 Feb 25, 2022
bd434d9
public_data.md: document CSV export and how to fix missing bag metadata
trey0 Feb 25, 2022
7b85f07
public_data.md: minor clarification
trey0 Feb 25, 2022
6af1a5d
Merge pull request #427 from trey0/bag_doc
trey0 Feb 28, 2022
670a353
wait for mapper service validator
marinagmoreira Mar 2, 2022
3672ec0
Fixing validator behavior on edges (#433)
marinagmoreira Mar 3, 2022
bbb382b
Use data acquisition timestamps for Pico sensor data per #412 (#413)
trey0 Mar 3, 2022
8e5564e
changing bayer encoding (#435)
marinagmoreira Mar 4, 2022
2b028f4
Disable mapper (#437)
marinagmoreira Mar 4, 2022
e7aa693
take out verbose for gazebo
marinagmoreira Mar 4, 2022
dd80beb
Created bag_processing package (#431)
rsoussan Mar 4, 2022
e2eb015
Added documentation for graph_bag scripts, renamed to localization_an…
rsoussan Mar 4, 2022
3b5469d
Removed sci cam plugin. This is moving to isaac. (#440)
kbrowne15 Mar 7, 2022
b9d8b4d
Removed getting parameters from the server and using the config instead.
marinagmoreira Mar 7, 2022
e76a964
Typo in Install.md (#444)
flowarko Mar 8, 2022
f9e51ea
Add csv_join.py for joining messages by timestamp (#428)
trey0 Mar 9, 2022
4ae7844
Removed the collision distance from flight modes. (#446)
kbrowne15 Mar 9, 2022
73e635f
public_data.md: add and update several topics (#436)
trey0 Mar 9, 2022
5175020
Removed ekf (#314)
rsoussan Mar 10, 2022
0e361ec
Add tool to convert bayer to color image (#443)
marinagmoreira Mar 10, 2022
f82780a
Enable backward compatibility with archived telemetry bags (#447)
trey0 Mar 11, 2022
479fb6c
collect scripts under bag_processing (#450)
trey0 Mar 15, 2022
5e49689
bag migration: add rules and minor fixes (#453)
trey0 Mar 16, 2022
8706c4f
fixing tf warnign for ground truth mode (#454)
marinagmoreira Mar 16, 2022
bb369ab
Make bag migration robust to unindexed input (#455)
trey0 Mar 19, 2022
eddf417
migration rule for collision_radius field (#451) (#456)
trey0 Mar 22, 2022
e1af858
organize docs (#449)
trey0 Mar 22, 2022
81d0636
Update the name of the namespaced body frame for relative motion.
ana-GT Mar 23, 2022
dc138d9
make python interpreter available in focal (#459)
trey0 Mar 23, 2022
2dd4568
Added splice bag tool (#460)
rsoussan Mar 23, 2022
6f9a847
simplify debugging docker image unit tests (#458)
trey0 Mar 25, 2022
ab86851
Drag model fixed for Astrobee sim (#462)
albee Mar 25, 2022
fc665e8
manually trigger some GitHub workflows (#466)
trey0 Mar 28, 2022
ae9cedf
Making mapper start on simulation, allow for enable/disable without r…
marinagmoreira Mar 29, 2022
6724466
unit test for bag migration (#468)
trey0 Mar 29, 2022
7fc86ce
make docs build robust to missing folders (#470)
trey0 Mar 30, 2022
1bf3b58
docker workflows consistently use build.sh (#469)
trey0 Mar 30, 2022
a559a1b
Debayer live (#303)
marinagmoreira Mar 30, 2022
3b85e29
Release 0.16.3 (#471)
marinagmoreira Apr 1, 2022
0b45697
Merge pull request #472 from nasa/develop
marinagmoreira Apr 1, 2022
52f9ffd
fix bionic python version
marinagmoreira Apr 1, 2022
cf97193
Merge remote-tracking branch 'origin/master' into develop
marinagmoreira Apr 1, 2022
b6f77db
Adding the dds to ros ground bridge (#473)
kbrowne15 Apr 4, 2022
1d44468
fix qt5 include lib name (#474)
marinagmoreira Apr 5, 2022
32d1c5c
Splice fixes (#475)
rsoussan Apr 6, 2022
1b5fcee
Fixed start recording data bagger bug. (#478)
kbrowne15 Apr 14, 2022
37200ce
Remove ground bridge from cross compile (#477)
kbrowne15 Apr 14, 2022
a1cb93b
Splice bags enter key fix (#480)
rsoussan Apr 20, 2022
b722295
Made lua table script only work with python 2. (#479)
kbrowne15 Apr 21, 2022
0bdc3f4
Added deploy arm command to the api and executive (#482)
kbrowne15 Apr 28, 2022
fa32561
auto-exposure; remove bayer service and control it only with the conf…
marinagmoreira May 4, 2022
094c6a3
version bump (#485)
marinagmoreira May 9, 2022
05e7647
Merge pull request #486 from nasa/develop
marinagmoreira May 9, 2022
289d17a
Calibrate gripper when deploying arm (#487)
marinagmoreira May 11, 2022
1f19133
Remove low movement images (#439)
rsoussan May 13, 2022
02090cc
Added scripts to build surf maps in parallel (#484)
rsoussan May 13, 2022
16b6935
Build brisk map (#488)
rsoussan May 13, 2022
1be1364
Fix bayer enable (#492)
marinagmoreira May 16, 2022
2c63429
nvm_visualize View Map Poses (#491)
rsoussan May 16, 2022
dad30da
Fix bag rewrite (#493)
trey0 May 17, 2022
95056f4
bumping up version to 0.16.5 (#498)
marinagmoreira May 26, 2022
515f3cc
Merge pull request #500 from nasa/develop
marinagmoreira May 27, 2022
9259f3e
Fixed major typo in apk print version script. (#499)
kbrowne15 May 27, 2022
8f10e3e
test_fix_all.py: refactor so an isaac-specific test can easily inheri…
trey0 May 31, 2022
5434e47
Added Service to Reset Map (#502)
rsoussan Jun 3, 2022
0b4278d
rosbag_fix_all.py: make it easier to clean up failed output bags (#496)
trey0 Jun 3, 2022
e11f84b
Release 0.16.6 (#506)
marinagmoreira Jun 6, 2022
2c2500c
rosbag_verify.py: fix #508
trey0 Jun 10, 2022
5c7893a
Astrobee comms work (#504)
kbrowne15 Jun 15, 2022
57029a9
Added Restart Guest Science APK Command (#503)
kbrowne15 Jun 15, 2022
b8f3a89
Ubuntu20 migration (#511)
rgarciaruiz Jun 21, 2022
ef06738
public_data.md: minor fixes (#505)
trey0 Jun 21, 2022
be88434
update cross compile docker to use catkin build (#514)
marinagmoreira Jun 27, 2022
16365e9
fixing docker run display commands (#515)
marinagmoreira Jun 29, 2022
ad7b45c
GitHub doc image linking (#517)
marinagmoreira Jun 30, 2022
adee667
making some errors debug because they are normal for sim spawning (#516)
marinagmoreira Jul 13, 2022
770f701
Added camera info publisher (#519)
iandouglas96 Jul 13, 2022
947a5f8
update astrobee_media (#520)
marinagmoreira Jul 13, 2022
8b21d28
Hugin auto generate (#518)
marinagmoreira Jul 14, 2022
4f105f9
rosbag_rewrite_types_rules.json: add /command (#523)
trey0 Jul 20, 2022
adddbd4
Added Loc papers to Localization Readme
rsoussan Jul 22, 2022
1b17367
Queen calibration from ISAAC 6 activity (#528)
marinagmoreira Aug 20, 2022
575acd3
Set crop to zero properly (#535)
iandouglas96 Aug 22, 2022
908cba2
Adding image stats script for online image evaluation (#536)
marinagmoreira Aug 23, 2022
7aa76d5
Fix ground truth bug + limit probability of tf warning while maintain…
marinagmoreira Aug 24, 2022
ccf8f4a
Groundtruth fixes (#540)
iandouglas96 Sep 20, 2022
0d55a90
Add a blurb on map merging and registration
oleg-alexandrov Sep 21, 2022
62f202a
Very minor wording changes
oleg-alexandrov Sep 21, 2022
403e412
Change physics engine option (#539)
marinagmoreira Sep 28, 2022
d29c4ae
Add some features to merge_bags, and documentation to merge_bags, imp…
oleg-alexandrov Oct 11, 2022
7b3b7aa
localization/camera/readme.md: Indent text so it renders correctly
oleg-alexandrov Oct 12, 2022
15f3a4c
calibration: Add note for folks who have trouble cloning a repo
oleg-alexandrov Oct 12, 2022
c4f0a7f
make undistort_image more convenient to use during pano stitching (#548)
trey0 Oct 18, 2022
4fcc527
migrate CI workflows to use Ubuntu 20.04 runner images (#551)
trey0 Oct 19, 2022
ce7e93c
Allow maps merged with --fix_fix_first_map to share images, tune expo…
oleg-alexandrov Oct 20, 2022
64b6737
Documentation gen in docker (#552)
marinagmoreira Oct 24, 2022
94e0295
Addd set check zones command to the teleop tool. (#553)
kbrowne15 Oct 24, 2022
13e9f8a
Fix docker image + fix ubuntu 20 install + simplify launchfile + scri…
marinagmoreira Oct 27, 2022
1d8d034
Added Script to Remove Rotation-Only Image Sequences (#555)
rsoussan Oct 28, 2022
99e7e02
Added warning output to system monitor. (#557)
kbrowne15 Oct 31, 2022
f1d961d
Bagfix all (#501)
marinagmoreira Oct 31, 2022
4e09cc4
Removed ground bridge unneeded nodelet plugin file (#560)
kbrowne15 Oct 31, 2022
0afffd5
changing gazebo condition to fix ubuntu 18 docker compile (#563)
marinagmoreira Nov 3, 2022
b006474
rosbag_rewrite_types: add more HLP message topics to fix, try harder …
trey0 Nov 3, 2022
7e86341
tested on a clean native ubuntu machine, needed the --privileged flag…
marinagmoreira Nov 4, 2022
f42f0a7
Added ground bridge documentation (#568)
kbrowne15 Nov 4, 2022
752d83b
Update code auto-generation scripts and docs workflow (#570)
trey0 Nov 10, 2022
2c6d82e
Delete obsolete flycapture node. (#572)
bcoltin Nov 14, 2022
aca22c1
Code auto-generation improvements (#574)
trey0 Nov 15, 2022
0a3a78f
removing xml dds errors at startup (#577)
marinagmoreira Nov 15, 2022
c930cf4
Added wait parameter to restart gs command (#575)
kbrowne15 Nov 15, 2022
fc0f6d2
Convert Simulink Controller to C++ (#565)
bcoltin Nov 17, 2022
78e5352
Multibridge cleanup (#579)
rgarciaruiz Nov 21, 2022
eb83eaf
Partition Image Files into Movement Sequences (#581)
rsoussan Nov 21, 2022
996b1cd
Added script to process images for mapping and updated existing scrip…
rsoussan Nov 29, 2022
0b7cf9f
Better nav cam timestamp. (#604)
bcoltin Dec 1, 2022
d90a790
FAM Converted to C++ (#603)
bcoltin Dec 2, 2022
0c365a5
Fixed ground bridge documentation. (#609)
kbrowne15 Dec 10, 2022
5019d3c
Docker docs (#608)
trey0 Dec 12, 2022
968a3cb
make ubuntu 18 and 20 supported with 20 preferred (#612)
marinagmoreira Dec 12, 2022
f5fe320
adding conversions using tf2 (#617)
marinagmoreira Dec 20, 2022
b7c59d0
Added Low Movement Threshold as Groundtruth Param (#616)
rsoussan Dec 20, 2022
fa097da
Convert Blower Simulator to C++ (#623)
bcoltin Jan 6, 2023
f7ef637
Remove calls to simulink from blower simulation. (#625)
bcoltin Jan 10, 2023
0155e57
Mark PMC header files for installation (#629)
rgarciaruiz Jan 10, 2023
16f7389
Updated localization rviz plugins usage instructions (#631)
rsoussan Jan 12, 2023
2c959e0
Fixed Issues in Calibration Readme (#634)
rsoussan Jan 17, 2023
7be4288
increase version number (#650)
marinagmoreira Jan 26, 2023
70a2242
Merge pull request #651 from nasa/develop
marinagmoreira Jan 26, 2023
536ddda
fix rosbag_topic_filter.py args (#654)
trey0 Jan 27, 2023
9b0d1a6
Additional patches for Ubuntu 20 (#627)
rgarciaruiz Jan 30, 2023
e23750c
Merge pull request #664 from nasa/master
bcoltin Feb 2, 2023
2d2014f
Remove matlab and gnc_autocode. (#665)
bcoltin Feb 2, 2023
59dc31b
Documentation update (#668)
marinagmoreira Feb 3, 2023
6c161f5
fix typo
marinagmoreira Feb 3, 2023
c98948d
replace list with append (#671)
marinagmoreira Feb 6, 2023
c1cfc85
ci: bump to checkout@v3 (#673)
trey0 Feb 7, 2023
82ef6c1
Unlatching topics (#674)
marinagmoreira Feb 8, 2023
9854315
support multiple versions for docs (#675)
trey0 Feb 9, 2023
08ad398
Make coverage_analyzer.py support Python 3 (#680)
trey0 Feb 16, 2023
38e6b10
Release 0.17.0 (#683)
marinagmoreira Feb 17, 2023
2327d4d
Merge pull request #684 from nasa/develop
marinagmoreira Feb 17, 2023
0719a5a
add missing glog flag that caused problems in some systems (#685)
marinagmoreira Feb 20, 2023
81c1645
Make isort repeatable (#694)
trey0 Mar 6, 2023
751a906
moving ff_names to ff_common, updating headers (#696)
marinagmoreira Mar 8, 2023
37da508
add /signals topic to fix_message_definition_topic_patterns (#698)
trey0 Mar 20, 2023
c008ddf
rosbag_fix_all and friends: improve error output, add --no-merge flag…
trey0 Mar 20, 2023
0840c04
vocab db: report memory usage (#702)
trey0 Mar 21, 2023
a06e512
added map matcher
rsoussan Mar 23, 2023
2319b44
added map matcher
rsoussan Mar 23, 2023
493c9b2
Import certificate for Astrobee server SSL support (#710)
rgarciaruiz Mar 29, 2023
2c1fe82
putting ros2 changes back into develop to minimize code differences (…
marinagmoreira Mar 30, 2023
1be0584
updated depth odom nodelet manager (#632)
rsoussan Mar 30, 2023
957dbc3
pico_driver: document missing fields in point cloud metadata (#596)
trey0 Mar 30, 2023
efac5a3
fixing index bug - Trey's PR
marinagmoreira Apr 3, 2023
b7b2fae
Remove old ekf tool (#716)
kbrowne15 Apr 3, 2023
69a0cd5
Release 0.17.1 (#715)
marinagmoreira Apr 4, 2023
3be4eea
Merge pull request #717 from nasa/develop
marinagmoreira Apr 4, 2023
d20b3f3
Map matcher fix and add stats (#13)
rgarciaruiz Apr 13, 2023
f248d71
Map matcher fix and add stats (#13)
rgarciaruiz Apr 13, 2023
c1d2fc9
What I had in my branch. Not sure of the state.
bcoltin Jun 7, 2023
7447d77
What I had in my branch. Not sure of the state.
bcoltin Jun 7, 2023
37af82b
allow plot with no localization topic
luisa-mao Jun 14, 2023
2bc9d7f
allow plot with no localization topic
luisa-mao Jun 14, 2023
a40f985
Merge branch 'surf_features' into develop_surf_features
luisa-mao Jun 14, 2023
53d5785
Merge branch 'surf_features' into develop_surf_features
luisa-mao Jun 14, 2023
3e344de
reformatted with black
luisa-mao Jun 14, 2023
b955875
reformatted with black
luisa-mao Jun 14, 2023
ee63c16
lowered min landmarks for surf
luisa-mao Jun 15, 2023
d126a27
lowered min landmarks for surf
luisa-mao Jun 15, 2023
61c1bab
surf vocab works
luisa-mao Jun 27, 2023
dd4d52b
surf vocab works
luisa-mao Jun 27, 2023
9260515
Merge branch 'develop_surf' of https://github.com/luisa-mao/astrobee-…
luisa-mao Jun 27, 2023
8bf3289
Merge branch 'develop_surf' of https://github.com/luisa-mao/astrobee-…
luisa-mao Jun 27, 2023
2072511
delete profiling
luisa-mao Jun 27, 2023
00d6f13
delete profiling
luisa-mao Jun 27, 2023
8d296f6
removed sanity check code
luisa-mao Jun 27, 2023
6bc17c4
removed sanity check code
luisa-mao Jun 27, 2023
3ecb058
added eval scripts and error message
luisa-mao Jun 29, 2023
419170a
remove groundtruth_creation_output
luisa-mao Jun 29, 2023
8dfd89e
work in progress, fix code quality later
luisa-mao Jul 7, 2023
6e8005d
save changes to map matcher. fix code quality later
luisa-mao Jul 7, 2023
52b2930
save errno. debug later
luisa-mao Jul 8, 2023
f07f790
save errno and submodules stuff
luisa-mao Jul 8, 2023
575e15f
gitignore and remove results.csv
luisa-mao Jul 11, 2023
bf83e17
gitignore
luisa-mao Jul 11, 2023
e44d315
remove pdf
luisa-mao Jul 11, 2023
2a73a2f
resolve conflicts
luisa-mao Jul 11, 2023
d86a9f1
remove submodules
luisa-mao Jul 14, 2023
0794281
Resolve conflict in submodules/android by keeping changes from HEAD
luisa-mao Jul 14, 2023
79188f2
save formatting stuff
luisa-mao Jul 14, 2023
dea2d53
removed extra files
luisa-mao Jul 21, 2023
9747f3c
check there are enough descriptors for flann matchers
luisa-mao Jul 26, 2023
e7002db
Merge branch 'develop' of https://github.com/luisa-mao/astrobee-1 int…
luisa-mao Jul 26, 2023
4f7324e
formatting
luisa-mao Jul 26, 2023
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
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,8 @@ tags
.ctags

.vscode

# submodules/
Copy link
Member

Choose a reason for hiding this comment

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

Should these be here?

tools/localization_analysis/scripts/
localization/sparse_mapping/scripts/
localization/sparse_mapping/tools/
17 changes: 16 additions & 1 deletion localization/interest_point/src/matching.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
// same settings!
// TODO(oalexan1): Ideally the settings used here must be saved in the
// map file, for the localize executable to read them from there.
DEFINE_bool(verbose, false,
"If true, print out information about the localization process.");
DEFINE_int32(hamming_distance, 90,
"A smaller value keeps fewer but more reliable binary descriptor matches.");
DEFINE_double(goodness_ratio, 0.8,
Expand All @@ -50,7 +52,7 @@ DEFINE_int32(max_surf_features, 5000,
"Maximum number of features to be computed using SURF.");
DEFINE_double(min_surf_threshold, 1.1,
"Minimum threshold for feature detection using SURF.");
DEFINE_double(default_surf_threshold, 10,
DEFINE_double(default_surf_threshold, 400,
Copy link
Member

Choose a reason for hiding this comment

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

We should probably make sure this doesn't adversely affect mapping

"Default threshold for feature detection using SURF.");
DEFINE_double(max_surf_threshold, 1000,
"Maximum threshold for feature detection using SURF.");
Expand Down Expand Up @@ -99,6 +101,16 @@ namespace interest_point {
else
break;
}
if (FLAGS_verbose) {
if (keypoints->size() < min_features_)
LOG(WARNING) << "Max retries reached. Found " << keypoints->size()
<< " keypoints which is less than min of " << min_features_
<< " keypoints. Consider decreasing the default threshold.";
else if (keypoints->size() > max_features_)
LOG(WARNING) << "Max retries reached. Found " << keypoints->size()
<< " keypoints which exeeds max of " << max_features_
<< " keypoints. Consider increasing the default threshold.";
}
ComputeImpl(image, keypoints, keypoints_description);
}

Expand Down Expand Up @@ -289,6 +301,9 @@ namespace interest_point {
} else {
// Traditional floating point descriptor
cv::FlannBasedMatcher matcher;
if (img1_descriptor_map.rows < 2 || // at least two are needed for knnMatch, otherwise error
img2_descriptor_map.rows < 2)
return;
std::vector<std::vector<cv::DMatch> > possible_matches;
matcher.knnMatch(img1_descriptor_map, img2_descriptor_map, possible_matches, 2);
matches->clear();
Expand Down
2 changes: 1 addition & 1 deletion localization/localization_node/src/localization.cc
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ bool Localizer::Localize(cv_bridge::CvImageConstPtr image_ptr, ff_msgs::VisualLa
std::vector<Eigen::Vector2d> observations;
if (!map_->Localize(image_descriptors, *image_keypoints,
&camera, &landmarks, &observations)) {
// LOG(INFO) << "Failed to localize image.";
LOG(INFO) << "Failed to localize image.";
return false;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* Copyright (c) 2017, United States Government, as represented by the
* Administrator of the National Aeronautics and Space Administration.
*
* All rights reserved.
*
* The Astrobee platform is licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

#ifndef SPARSE_MAPPING_BRISK_IMAGE_DATABASE_H_
#define SPARSE_MAPPING_BRISK_IMAGE_DATABASE_H_

#include <sparse_map/FBrisk.h>
#include <sparse_map/templated_image_database.h>

namespace sparse_mapping {
using BriskImageDatabase = TemplatedImageDatabase<DBoW2::FBrisk::TDescriptor, DBoW2::FBrisk>;
} // namespace sparse_mapping
#endif // SPARSE_MAPPING_BRISK_IMAGE_DATABASE_H_
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/* Copyright (c) 2017, United States Government, as represented by the
* Administrator of the National Aeronautics and Space Administration.
*
* All rights reserved.
*
* The Astrobee platform is licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

#ifndef SPARSE_MAPPING_IMAGE_DATABASE_H_
#define SPARSE_MAPPING_IMAGE_DATABASE_H_

#include <google/protobuf/io/zero_copy_stream_impl.h>

#include <vector>

namespace sparse_mapping {
class ImageDatabase {
public:
virtual ~ImageDatabase() {}
virtual std::vector<int> Query(const Descriptors& descriptors, const int max_results) = 0;
virtual void SaveProtobuf(google::protobuf::io::ZeroCopyOutputStream* output) const = 0;
virtual void LoadProtobuf(google::protobuf::io::ZeroCopyInputStream* input, int db_type) = 0;
};
} // namespace sparse_mapping
#endif // SPARSE_MAPPING_IMAGE_DATABASE_H_
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* Copyright (c) 2017, United States Government, as represented by the
* Administrator of the National Aeronautics and Space Administration.
*
* All rights reserved.
*
* The Astrobee platform is licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

#ifndef SPARSE_MAPPING_SURF_IMAGE_DATABASE_H_
#define SPARSE_MAPPING_SURF_IMAGE_DATABASE_H_

#include <sparse_map/templated_image_database.h>

namespace sparse_mapping {
// TODO(rsoussan): Make sure we use surf 64!!!
Copy link
Member

Choose a reason for hiding this comment

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

do we need this todo?

Copy link
Member

Choose a reason for hiding this comment

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

I don't remember haha, probably not

using SurfImageDatabase = TemplatedImageDatabase<DBoW2::FSurf64::TDescriptor, DBoW2::FSurf64>;
} // namespace sparse_mapping
#endif // SPARSE_MAPPING_SURF_IMAGE_DATABASE_H_
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/* Copyright (c) 2017, United States Government, as represented by the
* Administrator of the National Aeronautics and Space Administration.
*
* All rights reserved.
*
* The Astrobee platform is licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

#ifndef SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_H_
#define SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_H_

#include <sparse_map/image_database.h>
#include <sparse_map/image_database_params.h>
#include <sparse_map/templated_feature_vocabulary.h>

#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
#pragma GCC diagnostic push
#include <DBoW2/DBoW2.h>
#pragma GCC diagnostic pop

#include <vector>
#include <string>

namespace sparse_mapping {

template <class TDescriptor, class F>
class TemplatedImageDatabase : public DBoW2::TemplatedDatabase<TDescriptor, F>, public ImageDatabase {
public:
TemplatedImageDatabase(const TemplatedFeatureVocabulary<TDescriptor, F>& voc, const ImageDatabaseParams& params);
TemplatedImageDatabase(const DescriptorsSet& descriptors_set, const ImageDatabaseParams& params);
// Return the cids of the images which are most similar to the current image in sorted order
// beginning with the best matching cids
std::vector<int> Query(const Descriptors& descriptors, const int max_results) const override;

// Protobuf Functions
explicit TemplatedImageDatabase(google::protobuf::io::ZeroCopyInputStream* input);
void SaveProtobuf(google::protobuf::io::ZeroCopyOutputStream* output) const override;
void LoadProtobuf(google::protobuf::io::ZeroCopyInputStream* input) override;
};

// Implementation
template <class TDescriptor, class F>
TemplatedImageDatabase<TDescriptor, F>::TemplatedImageDatabase(
TemplatedFeatureVocabulary<TDescriptor, F> const& vocabulary, const ImageDatabaseParams& params)
: DBoW2::TemplatedDatabase<TDescriptor, F>(vocabulary, params.use_direct_index, params.direct_index_levels) {}

template <class TDescriptor, class F>
TemplatedImageDatabase<TDescriptor, F>::TemplatedImageDatabase(const DescriptorsSet& descriptors_set,
const ImageDatabaseParams& params)
: DBoW2::TemplatedDatabase<TDescriptor, F>(params.use_direct_index, params.direct_index_levels) {
const TemplatedFeatureVocabulary<TDescriptor, F> vocabulary(descriptors_set, params.vocabulary);
setVocabulary(vocabulary);
for (const auto& descriptors : descriptors_set) {
add(descriptors);
}
}

template <class TDescriptor, class F>
std::vector<int> TemplatedImageDatabase<TDescriptor, F>::Query(const Descriptors& descriptors, const int max_results) {
std::vector<int> matching_cids;
DBoW2::QueryResults results;
this->query(descriptors, results, max_results);
for (const auto& result : results) {
matching_cids.push_back(result.Id);
}
return matching_cids;
}
} // namespace sparse_mapping
#endif // SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_H_

#include <sparse_mapping/templated_image_database_protobuf.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/* Copyright (c) 2017, United States Government, as represented by the
* Administrator of the National Aeronautics and Space Administration.
*
* All rights reserved.
*
* The Astrobee platform is licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

#ifndef SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_PROTOBUF_H_
#define SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_PROTOBUF_H_

#include <sparse_map.pb.h>
#include <google/protobuf/io/zero_copy_stream_impl.h>

// Implementation
template <class TDescriptor, class F>
TemplatedImageDatabase<TDescriptor, F>::TemplatedImageDatabase(google::protobuf::io::ZeroCopyInputStream* input)
: DBoW2::TemplatedDatabase<TDescriptor, F>() {
LoadProtobuf(input);
}

template <class TDescriptor, class F>
void TemplatedImageDatabase<TDescriptor, F>::LoadProtobuf(google::protobuf::io::ZeroCopyInputStream* input) {
TemplatedFeatureVocabulary<TDescriptor, F>* voc = new TemplatedFeatureVocabulary<TDescriptor, F>();
voc->LoadProtobuf(input);
this->m_voc = voc;

sparse_mapping_protobuf::DBoWDB db;

if (!ReadProtobufFrom(input, &db)) {
LOG(FATAL) << "Failed to parse db file.";
}

this->clear(); // resizes inverted file

this->m_nentries = db.num_entries();
this->m_use_di = 0;
this->m_dilevels = 0;

for (int i = 0; i < db.num_inverted_index(); ++i) {
sparse_mapping_protobuf::DBoWInvertedIndexEntry entry;
if (!ReadProtobufFrom(input, &entry)) {
LOG(FATAL) << "Failed to parse index entry.";
}
DBoW2::WordId wid = entry.word_id();
DBoW2::EntryId eid = entry.entry_id();
DBoW2::WordValue v = entry.weight();

this->m_ifile[wid].push_back(typename DBoW2::TemplatedDatabase<TDescriptor, F>::IFPair(eid, v));
}
}

template <class TDescriptor, class F>
void TemplatedImageDatabase<TDescriptor, F>::SaveProtobuf(google::protobuf::io::ZeroCopyOutputStream* output) const {
(dynamic_cast<TemplatedFeatureVocabulary<TDescriptor, F>*>(this->m_voc))->SaveProtobuf(output);

sparse_mapping_protobuf::DBoWDB db;

db.set_num_entries(this->m_nentries);

int num_inverted_index = 0;
typename DBoW2::TemplatedDatabase<TDescriptor, F>::InvertedFile::const_iterator iit;
for (iit = this->m_ifile.begin(); iit != this->m_ifile.end(); ++iit) num_inverted_index += (*iit).size();
Copy link
Member

Choose a reason for hiding this comment

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

Can this be changed to a range loop? (for (const auto& ifile: m_ifile)

db.set_num_inverted_index(num_inverted_index);
if (!WriteProtobufTo(db, output)) {
LOG(FATAL) << "Failed to write db to file.";
}
typename DBoW2::TemplatedDatabase<TDescriptor, F>::IFRow::const_iterator irit;
int word_id = 0;
for (iit = this->m_ifile.begin(); iit != this->m_ifile.end(); ++iit) {
Copy link
Member

Choose a reason for hiding this comment

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

(range loop for these?)

for (irit = iit->begin(); irit != iit->end(); ++irit) {
sparse_mapping_protobuf::DBoWInvertedIndexEntry index;
index.set_word_id(word_id);
index.set_entry_id(irit->entry_id);
index.set_weight(irit->word_weight);
if (!WriteProtobufTo(index, output)) {
LOG(FATAL) << "Failed to write db index entry to file.";
}
}
word_id++;
Copy link
Member

Choose a reason for hiding this comment

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

Not important but prefer ++x over x++, x++ adds a tmp variable and is a little slower (probably compiled out here though)

}
}
} // namespace sparse_mapping
#endif // SPARSE_MAPPING_TEMPLATED_IMAGE_DATABASE_PROTOBUF_H_
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ namespace sparse_mapping {
// - DBoW2 binary descriptors (e.g., BRISK, BRIEF)
// Only one of these is active at one time.
BinaryDB * binary_db;
FloatDB * float_db;

int m_num_nodes;
VocabDB();
Expand Down
13 changes: 13 additions & 0 deletions localization/sparse_mapping/scripts/copy_bag_topics.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import rosbag
Copy link
Member

Choose a reason for hiding this comment

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

You might not know about rosbag filter, with that do we need this?

Copy link
Author

Choose a reason for hiding this comment

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

oops didn't mean for that to be part of the commit. It was just more convenient for me than rosbag filter

import sys

if len(sys.argv) < 3:
print("Usage: python copy_bag_topics.py <input_bag> <output_bag>")
sys.exit(1)

input_bag = sys.argv[1]
output_bag = sys.argv[2]

with rosbag.Bag(output_bag, 'a') as outbag:
for topic, msg, t in rosbag.Bag(input_bag).read_messages():
outbag.write(topic, msg, t)
Loading