isaac_ros_jetson_stats

Source code on GitHub.

Quickstart

Set Up Development Environment

  1. Set up your development environment by following the instructions in getting started.

  2. 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
    
  3. (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.

Build isaac_ros_jetson_stats

  1. Install jtop on the host machine:

    sudo pip3 install -U jetson-stats
    
  1. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
    ./scripts/run_dev.sh
    
  2. Install the prebuilt Debian package:

    sudo apt-get install -y ros-humble-isaac-ros-jetson-stats
    

Run Launch File

  1. Run the following launch files to spin up a demo of this package:

    ros2 launch isaac_ros_jetson_stats jtop.launch.py
    

Visualize Results

  1. Open a new terminal inside the Docker container:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
    ./scripts/run_dev.sh
    

    Check that the rqt robot monitor plugin is installed.

    sudo apt-get install ros-humble-rqt-robot-monitor
    

    Open robot monitor.

    rqt
    
  2. Open rqt view

    From menu open the Diagnostics Viewer Plugins -> Robots Tools -> Diagnostics Viewer

    https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_jetson/rqt_diagnostic_viewer.png/
  3. Select the checkbox “Alternative View”

    https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_jetson/diagnostic_viewer_alternative_view.png/
  4. Verify that rqt starts displaying the diagnostic status of the Jetson:

    https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_jetson/isaac_ros_jetson_diagnostics.png/

Control your Jetson

You can control your Jetson using the following services:
  • jtop/fan: Change the fan speed configuration.

  • jtop/nvpmodel: Change the NVPmodel of your board.

  • jtop/jetson_clocks: Enable or disable Jetson Clocks.

Change the Fan Speed Configuration

An example to change the fan speed configuration:

ros2 service call /jtop/fan isaac_ros_jetson_stats_services/srv/Fan "{'profile':quiet ,'speed':100}"

This command will change the fan speed configuration to 100% and the profile to quiet. You can change the profile to quiet, cool, or manual.

These profile can change depending on JetPack version and Jetson model. You can check the available profiles from the documentation reference.

Change the NVPmodel of your board

An example to change the NVPmodel of your board:

ros2 service call /jtop/nvpmodel isaac_ros_jetson_stats_services/srv/NVPModel  "{'nvpmodel':0 }"

This command will change NVPmodel on your board. To check the available NVPmodel, you can check the documentation reference.

Note

Not all NVPmodel are available on all Jetson models. You can check the available NVPmodel from the NVIDIA Jetson documentation reference.

Note

Not all NVPmodel can be set without a reboot. If it fails you need to change manually on your board.

Change the Jetson Clocks

An example to enable Jetson Clocks:

ros2 service call /jtop/jetson_clocks isaac_ros_jetson_stats_services/srv/JetsonClocks "{'status':true}"

This command enables Jetson Clocks. You can disable Jetson Clocks by changing the value to false.

Troubleshooting

jtop Not Working

Symptoms

The jtop node fails to start.

Solution

Exit the Docker container and install jetson-stats on your host:

sudo pip3 install -U jetson-stats

Mismatch version jtop service and client

Please update your jtop package on your host and reboot the Isaac ROS container.

sudo pip3 install -U jetson-stats

You may need to reboot the host.

Diagnostics Viewer doesn’t appear

If the Diagnostics Viewer doesn’t appear when you are running rqt:

rm ~/.config/ros.org/rqt_gui.ini

This command will refresh rqt, updating the list of all plugins available.

API

Launch jtop Diagnostic Monitor

ros2 launch isaac_ros_jetson_stats jtop.launch.py

ROS Parameters

ROS Parameter

Type

Default

Description

interval

double

0.5

When you initialize jtop you can setup a communication speed interval; if there is another jtop running, this speed will be not used.

ROS Topics Published

ROS Topic

Interface

Description

diagnostics

diagnostic_msgs/DiagnosticArray

Diagnostic message.

ROS Services Advertised

ROS Service

Interface

Description

jtop/fan

isaac_ros_jetson_stats_interfaces/Fan

A service change the fan speed configuration.

jtop/nvpmodel

isaac_ros_jetson_stats_interfaces/NVPModel

A service to change the NVPmodel of your board.

jtop/jetson_clocks

isaac_ros_jetson_stats_interfaces/JetsonClocks

A service to enable or disable Jetson Clocks