Comments (4)
Hi @tahir1069
You are absolutely right. It is something that was overlooked and none has thought of it to cause issue.
The TF time should follow the same clock that the IMU and Lidar are using. I don't think we had the chance to address this issue. But we have recently added a new timestamp_mode TIME_FROM_ROS_TIME
that when enabled the ouster_ros driver will use the host ROS time to timestamp the generated imu and lidar messages. This way the TF, IMU and PointCloud will be of the same time reference and should solve the issue.
You can found details about the new timestamp mode in the PRs: ouster-lidar/ouster_example#420 and ouster-lidar/ouster_example#421.
Nonetheless, I still think that using ros time for the TF in other timestamp modes will still pose a problem when the sensor and host system is not properly configured to run in sync using the PTP protocol.
For that I will keep the issue open and try to fully resolve it in a future update.
from ouster-ros.
Hi @Samahu
I have the same problem, I am using OS0-64-U and Rtabmap package (used for SLAM). Actually, in normal conditions the ouster node and Rtabmap node running without problem.
But, I have problems when I try to do a test:
- Ouster node and Rtabmap is running
- I disconnect Lidar sensor
- Ouster node and Rtabmap node continue running without data
- After 2 minutes I connect Lidar sensor
The nodes reprocess Lidar data but I have the following error:
[ WARN] [1668158414.957718441]: odometry: Could not get transform from base_link to os_sensor (stamp=1668158375.848681) after 0.500000 seconds ("wait_for_transform_duration"=0.500000)! Error="Lookup would require extrapolation 38.615832763s into the past. Requested time 1668158375.848681211 but the earliest data is at time 1668158414.464514017, when looking up transform from frame [os_sensor] to frame [base_link]. canTransform returned after 0.504406 timeout was 0.5."
The point cloud is like it:
I am using the new release ouster-lidar/ouster_example#420 and ouster-lidar/ouster_example#421. I use TIME_FROM_ROS_TIME as timestamp_mode.
[ INFO] [1668158321.969738893]: Loading nodelet /os_cloud_node/os_node of type nodelets_os/OusterSensor to manager os_nodelet_mgr with the following remappings:
[ INFO] [1668158322.006487928]: TIME_FROM_ROS_TIME timestamp mode specified. IMU and pointcloud messages will use ros time
[ INFO] [1668158322.006545446]: Will send UDP data to 192.168.xx.xx
[ WARN] [1668158322.092406129]: Sensor 192.168.xx.xx configured successfully
[ INFO] [1668158322.098314955]: Starting sensor 192.168.xx.xx initialization...
[ INFO] [1668158322.979628391]: Loading nodelet /os_cloud_node/os_cloud_node of type nodelets_os/OusterCloud to manager os_nodelet_mgr with the following remappings:
[ INFO] [1668158322.981583135]: /os_cloud_node/os_cloud_node/imu_packets -> /os_node/imu_packets
[ INFO] [1668158322.981868913]: /os_cloud_node/os_cloud_node/lidar_packets -> /os_node/lidar_packets
[ INFO] [1668158322.981979271]: /os_cloud_node/os_cloud_node/os_config -> /os_node/os_config
If I use TIME_FROM_ROS_TIME the TF time should follow the same clock that IMU and Lidar are using right?
Do you think it is necessary to set the synchronization protocol to PTP although using TIME_FROM_ROS_TIME?
Thank you in advance for your help.
from ouster-ros.
So the TF messages are _ CURRENTLY _ not affected by the clock. They are currently published by a static broadcaster since they don't change values over time. I do have a ticket to support updating the timestamp per selected clock but I wasn't very sure on the exact use case that needs. I think your question does highlight the underlying issue and we will have this fixed ASAP. I will update you on the fix so stay tuned.
I probably already answer you second question, currently the implementation uses a static broadcaster to published TF messages. So it does not make a difference _ CURRENTLY _ which clock do you select. But generally speaking if you don't have PTP properly configured on your system you are better off using TIME_FROM_ROS_TIME
timestamp option.
from ouster-ros.
@tahir1069 @VictorJCS the reported issue has been resolved with PR #26 (merged)
from ouster-ros.
Related Issues (20)
- Nodelet runs out of memory and dies HOT 11
- OS1-28 /ouster/signal_image /camera_info
- Where and when is the timestamp generated? HOT 1
- Ouster launch in docker HOT 2
- How do I change the QOS in ROS2? HOT 2
- deprecated declarations
- Unexpected UDP packet length HOT 2
- Lidar points dropped in ros bag record HOT 5
- The problem of point cloud rotation depending on the installation angle of LiDAR HOT 1
- Phase lock angle setup
- Sensor data cannot be received while ping is working (Ros2, Ubuntu 22.04, OS1) HOT 3
- How can I get an absolute unix timestamp to use for time synchronization with other sensors. HOT 1
- Lidar/GPS Synchronisation problem HOT 1
- Raw lidar packets HOT 3
- Is the unit of point.t is nanoseconds? HOT 1
- Recommended launch for recording and using lidar live. HOT 3
- Calibration problem,Ask for help
- Failed to load nodelet '/ouster/os_node` HOT 3
- Simulation time in replay mode HOT 3
- How to Project Ouster_signal image into Ouster_Point_cloud. HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ouster-ros.