Argus Cameras ROS Package
The argus_camera_ros
package provides a custom C++ ROS driver for NVIDIA Jetson platforms, specifically designed for high-performance applications where precise timestamping and low latency are critical. This driver was developed as an alternative to existing solutions that couldn't meet the demanding requirements for real-time robotic systems.
Features
- Event-Driven Architecture: Each camera is treated as an independent object, minimizing latency and maximizing performance.
- Precise Timestamping: The driver captures hardware timestamps for each frame, ensuring accuracy.
- Time Synchronization: The driver supports two primary time synchronization modes:
TIME_FROM_ROS
(Default): The system uses the ROS time domain. This is the default operational mode and provides reasonable accuracy due to the low-latency driver design.TIME_FROM_PTP
(Precision Time Protocol): This mode allows the driver to convert hardware timestamps into the PTP time domain. It is designed to work with a setup where the Jetson is the PTP master.
System Requirements
- ROS: Humble
- OS: Jetpack 6.0 (or newer, but has not been tested on versions beyond Jetpack 6.0)
- Hardware: NVIDIA Jetson platform with a compatible camera.
Getting Started
Building and Installation
Note: This package is designed to be built and run exclusively on NVIDIA Jetson platforms with the specified Jetpack versions.
-
Clone the repository into your ROS workspace.
-
Build the package using
colcon
.
Using PTP Timestamping
To use the TIME_FROM_PTP
timestamping mode, you must first ensure that the system's PTP configuration is correct and then enable read/write access to the PTP hardware clock.
-
Edit the udev rules to grant permissions to the PTP device.
-
Add the following line to the file:
-
Apply the new udev rules by running the following commands or by rebooting your system.
With these steps complete, you can now configure the argus_camera_ros
package to use the TIME_FROM_PTP
timestamping mode.