Skip to content

Commit

Permalink
Merge pull request #5415 from radfordi/map-preservation
Browse files Browse the repository at this point in the history
Map Preservation Fixes
  • Loading branch information
dorodnic authored Dec 10, 2019
2 parents b60c383 + 3b3c64c commit bdce5a4
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 1 addition & 0 deletions doc/t265.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ Yes, there are.
- `RS2_OPTION_ENABLE_MAPPING` - The internal map allows the device to recognize places it's been before so that it can give a consistent pose for that location. The map has a fixed finite size and will keep the most often/recently seen locations. Without this it will be operating completely open loop (i.e. just doing VIO) and will have more drift. The device will use the map to close modest loops and recover from small drifts. Enabling this option will not cause pose jumps without `RS2_OPTION_ENABLE_POSE_JUMPING`.
- `RS2_OPTION_ENABLE_POSE_JUMPING` - This option allows the device to discontinuously jump its pose whenever it discovers its pose is inconsistent with one it has given before. For example, after walking in a circle or covering the camera (getting a small drift) and uncovering it. Currently this will only affect the translation and not the rotation nor any of the velocities or accelerations.
- `RS2_OPTION_ENABLE_RELOCALIZATION` - This allows the device to solve the Kidnapped Robot Problem, i.e. it will allow connecting the current map to a loaded map or connecting the current map to itself after accumulating a large drift, say after closing a large loop or covering the camera and walking around. This is independent of jumping the pose. When fooled this feature can lead to much larger errors than are likely via the basic mapping.
- `RS2_OPTION_ENABLE_MAP_PRESERVATION` - This option will allow the device to preserve its current map across stop/start calls. The device will act as if the map was saved after stop and loaded back before the subsequent start. This was the default in versions <= 2.29.0.

## Appendix

Expand Down
2 changes: 1 addition & 1 deletion src/tm2/tm-device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ namespace librealsense
bool is_read_only() const override { return s._is_streaming; }

explicit tracking_mode_option(tm2_sensor& sensor, const char *description_) :
s(sensor), description(description_), option_base(option_range{ 0, 1, !!(sensor._tm_mode & flag) ^ invert ? 1.f : 0.f, 1 }) { }
s(sensor), description(description_), option_base(option_range{ 0, 1, 1, !!(sensor._tm_mode & flag) ^ invert ? 1.f : 0.f }) { }

private:
tm2_sensor &s;
Expand Down

0 comments on commit bdce5a4

Please sign in to comment.