isaac_ros_jetson_stats
Source code on GitHub.
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.2 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.
Note
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
Install
jtop
on the host machine:sudo pip3 install -U jetson-stats
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 update
sudo apt-get install -y ros-humble-isaac-ros-jetson-stats
Clone this repository under
${ISAAC_ROS_WS}/src
:cd ${ISAAC_ROS_WS}/src && \ git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_jetson.git isaac_ros_jetson
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:sudo apt-get update
sudo pip3 install -U jetson-stats && \ rosdep update && rosdep install --from-paths ${ISAAC_ROS_WS}/src/isaac_ros_jetson/isaac_ros_jetson_stats --ignore-src -y
Build the package from source:
cd ${ISAAC_ROS_WS}/ && \ colcon build --symlink-install --packages-up-to isaac_ros_jetson_stats --base-paths ${ISAAC_ROS_WS}/src/isaac_ros_jetson/isaac_ros_jetson_stats
Source the ROS workspace:
Note
Make sure to repeat this step in every terminal created inside the Docker container.
Because 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
Run the following launch files to spin up a demo of this package:
ros2 launch isaac_ros_jetson_stats jtop.launch.py
Visualize Results
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
Open
rqt
viewFrom menu open the Diagnostics Viewer Plugins -> Robots Tools -> Diagnostics Viewer
Select the checkbox “Alternative View”
Verify that
rqt
starts displaying the diagnostic status of the Jetson:
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 |
---|---|---|---|
|
|
|
When you initialize |
ROS Topics Published
ROS Topic |
Interface |
Description |
---|---|---|
|
Diagnostic message. |
ROS Services Advertised
ROS Service |
Interface |
Description |
---|---|---|
|
A service change the fan speed configuration. |
|
|
A service to change the NVPmodel of your board. |
|
|
A service to enable or disable Jetson Clocks |