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

Release 0.19.1 #799

Merged
merged 23 commits into from
Jul 3, 2024
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5bd721d
updated registration timeout
rsoussan Jun 29, 2024
dd7fb6f
updated gl duration
rsoussan Jun 29, 2024
8ab2585
updated brisk params
rsoussan Jun 30, 2024
a20db25
added vl runtime to msg
rsoussan Jun 30, 2024
d1a8d7a
fixed loc nodelet read params bug
rsoussan Jun 30, 2024
2f42f6d
Release 0.19.1
marinagmoreira Jun 30, 2024
e755e18
don't publish haz cam in sim by default
marinagmoreira Jul 1, 2024
aafe4f2
added scaling when changing threshold ratios for teblid
rsoussan Jul 1, 2024
a212bb1
added rounding when casting interest point dynamic thresholds
rsoussan Jul 1, 2024
e46cc9e
updated teblid default thres
rsoussan Jul 1, 2024
78e97db
added toomany/toofew ratios as params
rsoussan Jul 1, 2024
438c825
adding adjusting num similar images
rsoussan Jul 1, 2024
f22f1fe
fixed loc header
rsoussan Jul 1, 2024
5f57b47
remove else for adjust num similar
rsoussan Jul 2, 2024
4d14463
Merge pull request #20 from rsoussan/teblid_tuning_updateS
marinagmoreira Jul 2, 2024
9604467
visual landmarks adding field bmr rule
marinagmoreira Jul 2, 2024
508d85b
updated loc min success rate config
rsoussan Jul 2, 2024
7691d1f
set valid to true
marinagmoreira Jul 2, 2024
ef342c7
Merge branch 'release-0.19.1' of https://github.com/marinagmoreira/as…
marinagmoreira Jul 2, 2024
017aa42
localizer parameter in test changed
marinagmoreira Jul 2, 2024
ccbc4bc
fixing release spaces and #
marinagmoreira Jul 2, 2024
07e874a
fixed recording toomany and toofew ratios during mapping
rsoussan Jul 2, 2024
4a29e63
avoid adjusting thresholds if success history size is 0
rsoussan Jul 2, 2024
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
4 changes: 4 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Releases

##Release 0.19.1
marinagmoreira marked this conversation as resolved.
Show resolved Hide resolved

* Updated Map Matching with TEBLID and CLAHE

## Release 0.19.0

* New split localizer
Expand Down
2 changes: 1 addition & 1 deletion astrobee.doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ PROJECT_NAME = "NASA Astrobee Robot Software"
# control system is used.


PROJECT_NUMBER = 0.19.0
PROJECT_NUMBER = 0.19.1

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion astrobee/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
cmake_minimum_required(VERSION 3.0)
project(astrobee)

set(ASTROBEE_VERSION 0.19.0)
set(ASTROBEE_VERSION 0.19.1)

## Compile as C++14, supported in ROS Kinetic and newer
add_compile_options(-std=c++14)
Expand Down
36 changes: 21 additions & 15 deletions astrobee/config/localization.config
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ brisk_num_ransac_iterations = 100
brisk_early_break_landmarks = 100
brisk_histogram_equalization = 1
brisk_check_essential_matrix = false
brisk_essential_ransac_iterations = 2000
brisk_essential_ransac_iterations = 0
marinagmoreira marked this conversation as resolved.
Show resolved Hide resolved
brisk_add_similar_images = false
brisk_add_best_previous_image = false
brisk_hamming_distance = 90
brisk_goodness_ratio = 0.8
brisk_goodness_ratio = 10000
brisk_use_clahe = false
brisk_num_extra_localization_db_images = 0
-- Detection Params
Expand All @@ -42,14 +42,16 @@ brisk_default_threshold = 90.0
brisk_max_threshold = 110.0
brisk_min_features = 200
brisk_max_features = 800
brisk_too_many_ratio = 1.25
brisk_too_few_ratio = 0.8
brisk_detection_retries = 1
-- Localizer Threshold Params
brisk_success_history_size = 10
brisk_min_success_rate = 0
brisk_max_success_rate = 1
brisk_adjust_hamming_distance = false
brisk_min_hamming_distance = 90
brisk_max_hamming_distance = 90
brisk_adjust_num_similar = false
brisk_min_num_similar = 20
brisk_max_num_similar = 20

-- TEBLID512
teblid512_num_similar = 20
Expand All @@ -69,19 +71,21 @@ teblid512_num_extra_localization_db_images = 0

-- Detection Params
teblid512_min_threshold = 20.0
teblid512_default_threshold = 60.0
teblid512_default_threshold = 72.0
teblid512_max_threshold = 110.0
teblid512_min_features = 1000
teblid512_max_features = 3000
teblid512_too_many_ratio = 1.05
teblid512_too_few_ratio = 0.95
teblid512_detection_retries = 1

-- Localizer Threshold Params
teblid512_success_history_size = 10
teblid512_min_success_rate = 0.3
teblid512_min_success_rate = 0.5
teblid512_max_success_rate = 0.9
teblid512_adjust_hamming_distance = false
teblid512_min_hamming_distance = 85
teblid512_max_hamming_distance = 85
teblid512_adjust_num_similar = true
teblid512_min_num_similar = 15
teblid512_max_num_similar = 20

-- TEBLID256
teblid256_num_similar = 20
Expand All @@ -101,16 +105,18 @@ teblid256_num_extra_localization_db_images = 0

-- Detection Params
teblid256_min_threshold = 20.0
teblid256_default_threshold = 60.0
teblid256_default_threshold = 72.0
teblid256_max_threshold = 110.0
teblid256_min_features = 1000
teblid256_max_features = 3000
teblid256_too_many_ratio = 1.05
teblid256_too_few_ratio = 0.95
teblid256_detection_retries = 1

-- Localizer Threshold Params
teblid256_success_history_size = 10
teblid256_min_success_rate = 0.3
teblid256_min_success_rate = 0.5
teblid256_max_success_rate = 0.9
teblid256_adjust_hamming_distance = false
teblid256_min_hamming_distance = 85
teblid256_max_hamming_distance = 85
teblid256_adjust_num_similar = true
teblid256_min_num_similar = 15
teblid256_max_num_similar = 20
2 changes: 1 addition & 1 deletion astrobee/config/localization/graph_localizer.config
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ gl_na_pose_starting_prior_translation_stddev = 0.02
gl_na_pose_starting_prior_quaternion_stddev = 0.01
gl_na_pose_huber_k = world_huber_k
gl_na_pose_add_priors = true
gl_na_pose_ideal_duration = 4
gl_na_pose_ideal_duration = 15
gl_na_pose_min_num_states = 3
gl_na_pose_max_num_states = 5
gl_na_pose_model_huber_k = world_huber_k
Expand Down
2 changes: 1 addition & 1 deletion astrobee/config/localization/localization_manager.config
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ pipelines = {
{ id = "ml", name = "Sparse map", ekf_input = 0,
needs_filter = true, optical_flow = true, timeout = 1.0, max_confidence = 0,
enable_topic = "loc/ml/enable", enable_timeout = 20.0,
reg_topic = "loc/ml/registration", reg_timeout = 3.0,
reg_topic = "loc/ml/registration", reg_timeout = 30.0,
feat_topic = "loc/ml/features", feat_timeout = 600.0, feat_threshold = 3 },
-- AR Tags
{ id = "ar", name = "AR Tags", ekf_input = 1,
Expand Down
4 changes: 2 additions & 2 deletions astrobee/config/simulation/simulation.config
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ disable_cameras_on_speedup = true;

nav_cam_rate = 0.0;
dock_cam_rate = 0.0;
perch_cam_rate = 5.0;
haz_cam_rate = 5.0;
perch_cam_rate = 0.0;
haz_cam_rate = 0.0;
205 changes: 205 additions & 0 deletions communications/ff_msgs/bmr/2023_07_01_VisualLandmarks_add_field.bmr
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
class update_ff_msgs_VisualLandmarks_bc9fc09f69d7758225ed41ee26f6375e(MessageUpdateRule):
old_type = "ff_msgs/VisualLandmarks"
old_full_text = """
# 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.
#
# The observation from a camera image, of image coordinates
# and associated 3D coordinates. Used for sparse mapping and AR tags.

Header header # header with timestamp
uint32 camera_id # image ID, associated with registration pulse
geometry_msgs/Pose pose # estimated camera pose from features
ff_msgs/VisualLandmark[] landmarks # list of all landmarks

================================================================================
MSG: std_msgs/Header
# Standard metadata for higher-level stamped data types.
# This is generally used to communicate timestamped data
# in a particular coordinate frame.
#
# sequence ID: consecutively increasing ID
uint32 seq
#Two-integer timestamp that is expressed as:
# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')
# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')
# time-handling sugar is provided by the client library
time stamp
#Frame this data is associated with
string frame_id

================================================================================
MSG: geometry_msgs/Pose
# A representation of pose in free space, composed of position and orientation.
Point position
Quaternion orientation

================================================================================
MSG: geometry_msgs/Point
# This contains the position of a point in free space
float64 x
float64 y
float64 z

================================================================================
MSG: geometry_msgs/Quaternion
# This represents an orientation in free space in quaternion form.

float64 x
float64 y
float64 z
float64 w

================================================================================
MSG: ff_msgs/VisualLandmark
# 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.
#
# A single observation of a feature, with an image coordinate
# and known 3D coordinate

float32 x # known 3D position x
float32 y # known 3D position y
float32 z # known 3D position z
float32 u # feature image coordinate x
float32 v # feature image coordinate y
"""

new_type = "ff_msgs/VisualLandmarks"
new_full_text = """
# 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.
#
# The observation from a camera image, of image coordinates
# and associated 3D coordinates. Used for sparse mapping and AR tags.

Header header # header with timestamp
uint32 camera_id # image ID, associated with registration pulse
geometry_msgs/Pose pose # estimated camera pose from features
ff_msgs/VisualLandmark[] landmarks # list of all landmarks
float32 runtime # Time it took to calculate the pose and matching landmarks

================================================================================
MSG: std_msgs/Header
# Standard metadata for higher-level stamped data types.
# This is generally used to communicate timestamped data
# in a particular coordinate frame.
#
# sequence ID: consecutively increasing ID
uint32 seq
#Two-integer timestamp that is expressed as:
# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')
# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')
# time-handling sugar is provided by the client library
time stamp
#Frame this data is associated with
string frame_id

================================================================================
MSG: geometry_msgs/Pose
# A representation of pose in free space, composed of position and orientation.
Point position
Quaternion orientation

================================================================================
MSG: geometry_msgs/Point
# This contains the position of a point in free space
float64 x
float64 y
float64 z

================================================================================
MSG: geometry_msgs/Quaternion
# This represents an orientation in free space in quaternion form.

float64 x
float64 y
float64 z
float64 w

================================================================================
MSG: ff_msgs/VisualLandmark
# 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.
#
# A single observation of a feature, with an image coordinate
# and known 3D coordinate

float32 x # known 3D position x
float32 y # known 3D position y
float32 z # known 3D position z
float32 u # feature image coordinate x
float32 v # feature image coordinate y
"""

order = 0
migrated_types = [
("Header","Header"),
("geometry_msgs/Pose","geometry_msgs/Pose"),
("VisualLandmark","VisualLandmark"),]

valid = True

def update(self, old_msg, new_msg):
self.migrate(old_msg.header, new_msg.header)
new_msg.camera_id = old_msg.camera_id
self.migrate(old_msg.pose, new_msg.pose)
self.migrate_array(old_msg.landmarks, new_msg.landmarks, "ff_msgs/VisualLandmark")
#No matching field name in old message
new_msg.runtime = 0.
1 change: 1 addition & 0 deletions communications/ff_msgs/msg/VisualLandmarks.msg
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ Header header # header with timestamp
uint32 camera_id # image ID, associated with registration pulse
geometry_msgs/Pose pose # estimated camera pose from features
ff_msgs/VisualLandmark[] landmarks # list of all landmarks
float32 runtime # Time it took to calculate the pose and matching landmarks
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
astrobee (0.19.1) testing; urgency=medium

* Updated Map Matching with TEBLID and CLAHE

-- Astrobee Flight Software <astrobee-fsw@nx.arc.nasa.gov> Sun, 30 Jun 2024 15:20:46 -0700

astrobee (0.19.0) testing; urgency=medium

* New split localizer
Expand Down
Loading
Loading