-
Notifications
You must be signed in to change notification settings - Fork 5
Support high precision timestamp extension #187
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
base: master
Are you sure you want to change the base?
Conversation
at-wat
commented
Nov 21, 2025
- Internally use 64bit microseconds timestamp
- Use high precision timestamp extension of TM/MD/ME commands
- Add ClockEstimator and ScanEstimator for high precision timestamp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements support for high precision timestamp extensions in the URG sensor system by transitioning from 24-bit millisecond timestamps to 64-bit microsecond timestamps. The key changes enable compatibility with newer sensor firmware versions (4.1.0+) that support extended SCIP2 commands with microsecond-resolution timestamps.
Key changes:
- Introduced 64-bit microsecond timestamp resolution (
WALL_TIMESTAMP_RESOLUTION) to replace millisecond resolution - Added
ClockEstimatorRawandScanEstimatorRawclasses for high precision timestamp handling - Extended protocol support with "%" prefix commands for high precision modes
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| include/urg_stamped/device_state_estimator.h | Added new estimator classes and updated timestamp resolution constants |
| include/scip2/walltime.h | Modified to accept microsecond timestamps while maintaining millisecond-based overflow detection |
| include/scip2/response/time_sync.h | Extended timestamp parsing to support both 4-byte and 11-byte formats |
| include/scip2/response/stream.h | Extended scan data timestamp parsing for both precision modes |
| include/scip2/response.h | Added prefix-based response registration to handle "%" commands |
| src/device_state_estimator.cpp | Updated timestamp resolution references |
| src/clock_estimator_raw.cpp | New estimator implementation for high precision timestamps |
| src/scan_estimator_raw.cpp | New scan estimator for raw timestamp handling |
| src/urg_stamped.cpp | Integrated high precision mode detection and command prefix handling |
| src/urg_sim/urg_sim.cpp | Added high precision timestamp simulation support |
| test/src/test_device_state_estimator.cpp | Updated test values to microsecond scale |
| test/src/test_walltime.cpp | Updated test values to microsecond scale |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This comment has been minimized.
This comment has been minimized.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #187 +/- ##
==========================================
- Coverage 83.73% 81.79% -1.94%
==========================================
Files 28 30 +2
Lines 1832 1989 +157
==========================================
+ Hits 1534 1627 +93
- Misses 298 362 +64 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…g_stamped into support-high-prec-stamp-uust
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Passed noetic 3.20Log summarySummaryurg_stampedros-noetic-urg-stamped-0.4.1_git20251225062135-r0.apk |