This repository provides a comprehensive guide on integrating NVIDIA Isaac Sim with Isaac ROS on the Jetson Orin Nano for AprilTag following. This setup enables real-time AprilTag detection and dynamic robot control, enhancing robotics workflows.
This project demonstrates how to:
- Simulate and Detect AprilTags: Utilize NVIDIA Isaac Sim to simulate a robotics environment and detect AprilTags.
- Follow AprilTags with Isaac ROS: Implement a ROS2 node to process AprilTag data and control robot movement based on detected tags.
- Visualize in RViz: Use RViz for real-time visualization of AprilTag detections and robot movements.
- Leverage JetPack 6: Optimize performance on the Jetson Orin Nano.
- Implement Hardware-in-the-Loop (HIL) Testing: Connect the Jetson Orin Nano with a laptop for enhanced testing and validation.
- NVIDIA Jetson Orin Nano: Ensure your device is set up with JetPack 6.
- NVIDIA Isaac Sim: For simulating the robotics environment.
- Isaac ROS: Installed on the Jetson Orin Nano.
- Hardware-in-the-Loop (HIL) Setup: For connecting the Jetson Orin Nano with a laptop. Figure 1: Hardware setup for Isaac ROS on the Jetson Orin Nano.
-
Flash JetPack 6: Use the NVIDIA SDK Manager to flash JetPack 6 on your Jetson Orin Nano.
-
Install Isaac ROS: Follow the instructions to install Isaac ROS on the Jetson Orin Nano.
-
Network Configuration: Connect your Jetson Orin Nano to the network. Optionally, configure a static IP address.
-
Set Up ROS DDS Domain ID:
- Edit your ROS 2 workspace setup file to include the
ROS_DOMAIN_ID
environment variable. - Source the setup file to apply changes.
- Edit your ROS 2 workspace setup file to include the
-
Simulate AprilTags in Isaac Sim: Run your simulation in Isaac Sim to detect and visualize AprilTags. Figure 2: AprilTag detection in Isaac Sim.
-
Process AprilTag Data with Isaac ROS:
- Clone the Isaac ROS AprilTag Repository:
Navigate to the cloned repository directory if needed.
git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_apriltag.git
- Launch Isaac ROS Nodes: Start the AprilTag detection node and other necessary nodes:
ros2 launch isaac_ros_apriltag isaac_ros_apriltag_following.launch.py
- Run AprilTag Detection Node: Execute the AprilTag detector to start processing:
ros2 run apriltag_detection apriltag_detector
- Implement Movement Logic: Develop a ROS2 node to subscribe to the AprilTag detection topic and control robot movement based on detected tags.
- Clone the Isaac ROS AprilTag Repository:
-
Visualize in RViz:
- Connect to Laptop: Set up HIL testing to link the Jetson Orin Nano with a laptop for enhanced validation and real-time testing.
- Figure 1: Illustrates the setup for Isaac ROS on the Jetson Orin Nano using JetPack 6.
- Figure 2: Shows the Isaac Sim environment with AprilTag detection.
- Figure 3: Displays the data flow from Isaac Sim to Isaac ROS and visualization in RViz.
To launch the simulation and data processing, use the following commands:
-
Start Isaac Sim:
isaac-sim --start
-
Launch Isaac ROS Nodes for AprilTag Following:
ros2 launch isaac_ros_apriltag isaac_ros_apriltag_following.launch.py
-
Run AprilTag Detection Node:
ros2 run apriltag_detection apriltag_detector
-
Start RViz for Visualization:
rviz2
Special thanks to Ninad for the invaluable guidance on implementing this solution.
For detailed steps and additional information, visit the Medium Post.
This project is licensed under the MIT License.