isaac_ros_data_recorder
Source code on GitHub.
Overview
The isaac_ros_data_recorder
package enables recording data from the Nova sensor set. Data is recorded as an
MCAP file with messages serialized in CDR format. Camera streams are
encoded in H.264 to reduce storage
footprint. For more information on recording data in ROS 2, refer to the documentation for
rosbag2.
Quickstart
Set Up Development Environment
Set up your development environment by following the instructions in getting started.
Clone
isaac_ros_common
under${ISAAC_ROS_WS}/src
.cd ${ISAAC_ROS_WS}/src && \ git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
(Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.
Warning
We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.
Create additional mounts for the Docker container.
If the container is already running, stop it with:
docker rm -f isaac_ros_dev-aarch64-container
Create mounts for
/etc/nova
and/mnt/nova_ssd/recordings
:echo $'-v /etc/nova:/etc/nova\n-v /mnt/nova_ssd/recordings:/mnt/nova_ssd/recordings' > ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts/.isaac_ros_dev-dockerargs
Build isaac_ros_data_recorder
Launch the Docker container using the
run_dev.sh
script:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
Install the prebuilt Debian package:
sudo apt-get install -y ros-humble-isaac-ros-data-recorder
Clone this repository under
${ISAAC_ROS_WS}/src
:cd ${ISAAC_ROS_WS}/src && \ git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova.git isaac_ros_nova
Launch the Docker container using the
run_dev.sh
script:cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
Use
rosdep
to install the package’s dependencies:rosdep install --from-paths /workspaces/isaac_ros-dev/src/isaac_ros_nova --ignore-src -y
Build the package from source:
cd ${ISAAC_ROS_WS} && \ colcon build --packages-up-to isaac_ros_data_recorder
Source the ROS workspace:
Note
Make sure to repeat this step in every terminal created inside the Docker container.
Since this package was built from source, the enclosing workspace must be sourced for ROS to be able to find the package’s contents.
source install/setup.bash
Run Launch File
Continuing inside the Docker container, start data recording:
ros2 run isaac_ros_data_recorder record_data.shUse
Ctrl+C
to stop recording. By default, recordings will be stored in/mnt/nova_ssd/recordings
.
(Optional) Run teleop.
Follow Tutorial: Teleoperate the Robot with a Joystick to setup teleop. Then, launch the teleop app:
ros2 launch nova_carter_bringup teleop_include.launch.py
Try More Examples
A sensor configuration file can be used to record a subset of sensors on the robot. For example, to record only the 4 stereo cameras:
ros2 run isaac_ros_data_recorder record_data.sh -y hawk-4.yaml
The following sensor configurations are provided. Custom sensor configurations are also supported.
Configuration File |
Description |
---|---|
|
Front stereo camera with IMU. |
|
Front and back stereo cameras with IMU. |
|
Front, left, and right stereo cameras with IMU. |
|
Front, left, right and back stereo cameras with IMU. |
|
Front fisheye camera. |
|
Front and back fisheye cameras. |
|
Front, left, and right fisheye cameras. |
|
Front, left, right, and back fisheye cameras. |
|
Front stereo and fisheye cameras. |
|
Front stereo camera and left and right fisheye cameras. |
|
Front and back stereo and fisheye cameras. |
|
Front and back stereo cameras and front, left, right, and back fisheye cameras. |
|
Front, left, right and back stereo and fisheye cameras. |
|
Sensor configuration for Nova Orin. |
|
Sensor configuration for Nova Orin without fisheye cameras or 2D lidar. |
|
Sensor configuration for Nova Carter. |
|
Sensor configuration for Nova Carter without fisheye cameras or 2D lidar. |
|
Sensor configuration for Nova Orin Developer Kit. |
Troubleshooting
Isaac ROS Troubleshooting
For solutions to problems with Isaac ROS, see troubleshooting.
API
Usage
ros2 launch isaac_ros_data_recorder data_recorder.launch.py
ROS Launch Arguments
ROS Launch Argument |
Default Value |
Description |
---|---|---|
|
|
The directory in which to put the recording. |
|
|
The name of the folder which the rosbag is stored in. |
|
|
Sensor configuration file. |
ROS Topics Subscribed
ROS Topic |
Interface |
Description |
---|---|---|
|
Console logs. |
|
|
Movable transforms on the robot. |
|
|
Fixed transforms on the robot. |
|
|
Front stereo camera left camera stream. |
|
|
Front stereo camera left camera intrinsics. |
|
|
Front stereo camera right camera stream. |
|
|
Front stereo camera right camera intrinsics. |
|
|
Back stereo camera left camera stream. |
|
|
Back stereo camera left camera intrinsics. |
|
|
Back stereo camera right camera stream. |
|
|
Back stereo camera right camera intrinsics. |
|
|
Left stereo camera left camera stream. |
|
|
Left stereo camera left camera intrinsics. |
|
|
Left stereo camera right camera stream. |
|
|
Left stereo camera right camera intrinsics. |
|
|
Right stereo camera left camera stream. |
|
|
Right stereo camera left camera intrinsics. |
|
|
Right stereo camera right camera stream. |
|
|
Right stereo camera right camera intrinsics. |
|
|
Front fisheye camera stream. |
|
|
Front fisheye camera intrinsics. |
|
|
Back fisheye camera stream. |
|
|
Back fisheye camera intrinsics. |
|
|
Left fisheye camera stream. |
|
|
Left fisheye camera intrinsics. |
|
|
Right fisheye camera stream. |
|
|
Right fisheye camera intrinsics. |
|
|
Front 2D lidar scan. |
|
|
Back 2D lidar scan. |
|
|
Front 3D lidar UDP packets. |
|
|
Front stereo camera inertial measurement unit. |
|
|
Chassis inertial measurement unit. |
|
|
Chassis encoder count. |
|
|
Chassis odometry. |
|
|
Chassis battery state. |