Simulation Containers Reference
Overview
Chassy provides pre-built sample simulation containers that enable you to run robotics simulations in the cloud without managing complex dependencies. Each container includes a complete simulation environment, testing framework, and standardized interface for executing your simulations and retrieving results. You can use these as the basis for building your simulation containers, or make your own from scratch.
Common Features
Standardized Command Interface
Every Chassy simulation container includes the simulate command-line tool that provides a consistent interface regardless of which simulator you're using. Chassy will automatically run all tests by executing simulate when the Simulate step of a workflow is run.
Automatic GPU Detection
Well designed containers should automatically detect and utilize available GPU resources for accelerated rendering. When running on GPU-enabled instances, simulations will use hardware acceleration for improved performance and generating different report outputs into Chassy SLAM, such as images or gifs. On CPU-only instances, containers seamlessly fall back to software rendering, ensuring your simulations always run successfully. This dual-mode capability means you can develop on any hardware and deploy with confidence, knowing the container will optimize for available resources.
Headless Simulation Support
All containers are configured for headless operation, running simulations without requiring a display. This enables cloud deployment without X11 forwarding, parallel simulation execution, automated testing in CI/CD pipelines, and sensor data capture in headless environments. The virtual display system uses Xvfb to create a consistent rendering environment regardless of the host system configuration.
Test Results and Reporting
Test results are automatically generated in JUnit XML format and saved to /opt/chassy/reports
. This standardized output format integrates seamlessly with CI/CD platforms like Jenkins, GitLab CI, and GitHub Actions, as well as test aggregation tools and custom reporting dashboards. You can customize the output location using the --report-dir
flag when running tests, making it easy to collect results in your preferred location.
Available Example Simulation Environments
PX4-Gazebo for Autonomous Flight
The PX4-Gazebo container provides a complete headless Software-In-The-Loop (SIL) environment for autonomous flight testing, specifically designed for drone and UAV simulation with PX4 Autopilot. The container includes the latest PX4 flight stack compiled and ready to run, Gazebo Harmonic for modern physics simulation with accurate sensor models, and comprehensive MAVLink support through both mavsdk and pymavlink for drone communication protocols.
The container offers several pre-configured test suites to validate different aspects of your autonomous flight systems. The setup suite validates the PX4 and Gazebo environment, while the SIL suite tests basic SIL functionality. For more comprehensive testing, the gazebo suite runs integration tests between PX4 and Gazebo, and the flight suite tests actual flight operations including takeoff, landing, and mission execution. Running simulate test without arguments executes the complete test suite.
ROS2-Gazebo for Robotics Applications
The ROS2-Gazebo container offers a full ROS2 Jazzy environment integrated with Gazebo Harmonic, making it ideal for general robotics simulation within the ROS2 ecosystem. This container provides everything needed for ROS2 development with a complete ROS2 Jazzy installation including essential packages like robot_state_publisher
, joint_state_publisher
, and xacro
. The integration supports multi-robot simulation with complex robot models using URDF and Xacro formats, with pre-configured sensor message types and tf2 transforms for accurate robot state representation.
The container uses CycloneDDS for optimized container networking performance and includes the complete ROS2-Gazebo bridge suite for seamless sensor and actuator data exchange. Network isolation is maintained through configurable ROS domain IDs, allowing multiple containers to run simultaneously without interference. The environment comes pre-configured with ROS_DISTRO
set to jazzy
, ROS_DOMAIN_ID
defaulting to 0
(adjustable for network isolation), and RMW_IMPLEMENTATION
set to rmw_cyclonedds_cpp
for optimal performance.
Isaac Sim for Advanced Physics and AI
The Isaac Sim container leverages NVIDIA's Omniverse platform for advanced simulation capabilities, particularly suited for high-fidelity simulation with synthetic data generation needs. This container provides RTX rendering for photorealistic visualization with ray tracing, PhysX 5 for advanced physics simulation of complex interactions, and powerful synthetic data generation capabilities for computer vision and AI training. It's particularly well-suited for creating accurate digital twins of real environments.
To use the Isaac Sim container, you'll need an NGC account and API key for container access. Authentication is handled through Docker login in a bash command:
docker login nvcr.io
Username: $oauthtoken
Password: <your-ngc-api-key>
The container includes optional shader cache warming for consistent performance in production deployments where first-run latency is critical. This feature can be enabled when building custom versions of the container for specific use cases.
Hardware Requirements
GPU-Accelerated Simulation
For optimal performance with GPU-accelerated simulation, use instances equipped with NVIDIA GPUs with CUDA support. Ensure the NVIDIA Container Toolkit is installed on your host system, along with appropriate NVIDIA drivers: version 470 or higher for Gazebo containers, and version 525 or higher for Isaac Sim is recommended. GPU acceleration significantly improves rendering performance and enables real-time simulation of complex scenarios.
CPU-Only Simulation
All containers support CPU-only execution, making them accessible for development and testing on standard hardware. Software rendering is handled via Mesa OpenGL, providing reliable rendering without GPU hardware.
Integration with Chassy Platform
Source Code Management
Chassy’s simulation step will automatically clone your git repository and have it available in src
in your docker environment.
Retrieving Results
Simulation results and test reports are automatically saved within the container at /opt/chassy/reports
. To persist these results on your host system when running locally, mount a local directory to this location:
docker run -v /host/results:/opt/chassy/reports \
your-registry/px4-gazebo simulate test
When running through the Chassy workflow simulation step, the contents in /opt/chassy/reports
will automatically be ingested into Chassy SLAM for reporting and user analysis.
More information on results can be found on Simulation Reports and Artifacts.
Last updated