In Part 1, we shared how we brought the AR4 robotic arm to life using ROS 2, Gazebo, and MoveIt, allowing us to plan and simulate motion without relying on physical hardware. Now, we’re excited to share the next step in our journey: extending the AR4 simulation into Isaac Sim and MuJoCo.

In this post, we’ll walk through how we got the AR4 running inside Isaac Sim using the same core configuration from our Gazebo work, with a few key adaptations along the way.

Why Isaac Sim?

Isaac Sim is a powerful simulator built on NVIDIA’s Omniverse platform, offering photorealistic rendering and robust physics. It’s a great environment for testing robotics software in realistic settings. We wanted to see how far we could take the AR4 simulation in this context, and what benefits it could bring in terms of fidelity and future experimentation.

Getting Started: Building the Environment

Just like in our Gazebo setup, we wanted a smooth developer experience. To make that possible, we built a dedicated Docker environment for Isaac Sim. Using a separate Dockerfile.isaac and docker-compose file, we created a workspace tailored specifically for running Isaac simulations.

Structuring the Simulation with Layers

Isaac Sim uses a concept called Layers, which allow you to build scenes modularly. We used this feature to keep things clean and organized. One layer contains the AR4 robot model. Another layer holds the Omnigraph logic, which connects the robot to ROS 2.

This separation made it easier to iterate and maintain the simulation components independently.

first

Importing the Robot Model

To bring the AR4 into Isaac, we started with the same xacro-based robot description from Part 1. However, unlike Gazebo, Isaac requires a urdf file for import. We used the following ROS 2 command to generate it:

ros2 xacro <path>/ar4.urdf.xacro > ar4.urdf

Then, using Isaac’s URDF Importer, we brought the AR4 model into the simulation environment.

second

Tuning the Simulation

After the import, we fine-tuned several parameters (including visuals and physics settings) to better match the behavior of the real AR4 within Isaac Sim’s physics engine. These tweaks made the simulation more accurate and visually consistent with the hardware. We saved the final model as a .usda file, which makes it easier to inspect and version due to its human-readable format.

third

Connecting ROS 2 with Omnigraph

To control the robot through ROS 2, we used Isaac’s Omnigraph tools to link ROS 2 controllers with Isaac’s internal systems. This step allowed us to reuse the same motion planning logic we’d previously configured with MoveIt.

fourth

Motion Planning with MoveIt

Finally, we connected the AR4 to MoveIt using topic_based_ros2_control, a plugin that bridges ROS 2 control topics with Isaac’s simulation controllers. Since we reused the MoveIt configuration from our Gazebo setup, the AR4 was ready to move with minimal adjustments.

Final Result

The result is a fully functional AR4 manipulator running inside Isaac Sim, connected to ROS 2 and MoveIt, and ready for high-fidelity simulation.

Watch the AR4 in Isaac Sim

What’s Next?

If you’re working on something similar or just want to connect, reach out to us at contact@ekumenlabs.com, and follow us on our social channels to stay up to date with future releases and projects.