Skip to content

RobotFlow-Labs/anima-ros2-sim-net

ANIMA ROS2 Simulation Network

ANIMA SIM hero

The complete ROS2 + Gazebo simulation stack for AI-powered robotics. One command to launch. Browser to watch. CLI to control.

ROS2 Jazzy Gazebo Harmonic Docker MuJoCo

Copyright (c) 2026 AIFLOW LABS LIMITED / RobotFlowLabs


Quick Start

make build    # Build the simulation image
make sim      # Launch the simulation

Then open http://localhost:8080 — live 3-camera dashboard with IMU, LiDAR, odometry, and joint states.


What You Get

graph TB
    subgraph SIM["Gazebo Harmonic (Headless)"]
        WORLD[6 World Environments]
        ROBOT[Mobile Base Robot<br/>Camera + IMU + LiDAR + Depth]
        TRON[TRON1 Biped<br/>LimX Dynamics 12-DOF]
        PHYSICS[Real-time Physics]
    end

    subgraph BRIDGE["ROS2 Bridge Layer"]
        GZ_BRIDGE[GZ → ROS2 Bridge<br/>All sensor topics]
        COMPRESS[Image Compressor<br/>900KB → 7KB JPEG]
        ROSBRIDGE[Rosbridge WebSocket<br/>Port 9090]
    end

    subgraph ACCESS["Access Layer"]
        VIEWER[Live Web Viewer<br/>http://localhost:8080]
        CLI[ROS2 CLI<br/>ros2 topic pub/echo]
        AGENT[AI Agents<br/>via MCP / rosbridge]
    end

    SIM --> BRIDGE --> ACCESS

    style SIM fill:#1A1A1A,color:#FF3B00,stroke:#FF3B00
    style BRIDGE fill:#050505,color:#f3f3f3,stroke:#FF3B00
    style ACCESS fill:#1A1A1A,color:#f3f3f3,stroke:#FF3B00
Loading

Live Viewer

Open http://localhost:8080 — no install needed.

  • 3 live camera feeds (Robot POV + Overhead + Side)
  • Real-time IMU, odometry, joint states
  • LiDAR 360° scan visualization
  • Message rate monitor
  • Auto-discovery with sensor badges

Worlds

World Description Best For
warehouse.sdf Industrial warehouse with shelves + 3 cameras Logistics, pick-and-place
warehouse_large.sdf Extended warehouse environment Large-scale navigation
office.sdf Office environment Service robotics
home.sdf Residential space Home automation
factory.sdf Manufacturing floor Industrial robotics
terrain.sdf Outdoor terrain Field robotics
WORLD_FILE=office.sdf make sim

Robot Sensors

graph LR
    subgraph ROBOT["ANIMA Mobile Base"]
        CAM[RGB Camera<br/>640x480 @ 15fps]
        DEPTH[Depth Camera<br/>320x240 @ 10fps]
        IMU_S[IMU<br/>100Hz]
        LIDAR[2D LiDAR<br/>360pts @ 10Hz]
        DRIVE[Diff Drive<br/>cmd_vel / odom]
    end

    CAM --> |/camera/rgb/image_raw| T[ROS2]
    DEPTH --> |/depth/image| T
    IMU_S --> |/imu| T
    LIDAR --> |/lidar/scan| T
    DRIVE --> |/odom| T

    style ROBOT fill:#050505,color:#FF3B00,stroke:#FF3B00
    style T fill:#1A1A1A,color:#f3f3f3,stroke:#FF3B00
Loading
Topic Type Rate
/camera/rgb/image_raw Image 15 Hz
/camera/rgb/image_raw/compressed CompressedImage ~5 Hz
/depth/image Image 10 Hz
/imu Imu 100 Hz
/lidar/scan LaserScan 10 Hz
/odom Odometry 20 Hz
/joint_states JointState ~500 Hz
/cmd_vel Twist subscriber

TRON1 Biped

LimX Dynamics TRON1 biped robot included (URDF + STL meshes):

  • 3 variants: Point-Foot, Wheel-Foot, Sole-Foot
  • 12 DOF (6 per leg)
  • Shenzhen-built hardware partner

Control

# Drive forward
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
  "{linear: {x: 0.5}, angular: {z: 0.0}}" --rate 10

# Turn
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
  "{linear: {x: 0.2}, angular: {z: 0.5}}" --rate 10

# Stop
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
  "{linear: {x: 0.0}, angular: {z: 0.0}}" --once

Or use the ANIMA ROS2 Bridge:

anima-bridge discover --transport rosbridge --url ws://localhost:9090
anima-bridge publish /cmd_vel geometry_msgs/msg/Twist '{"linear":{"x":0.5}}' \
  --transport rosbridge --url ws://localhost:9090

Architecture

graph TD
    subgraph DOCKER["Docker: anima_ros2_sim_net"]
        subgraph SIM["anima_ros2_gazebo (single container)"]
            GZ[Gazebo Harmonic<br/>headless]
            BR[ros_gz_bridge<br/>10 topic mappings]
            COMP[Image Compressor<br/>3 cameras x JPEG]
            RB[Rosbridge WebSocket<br/>Port 9090]
        end
        VW[anima_ros2_viewer<br/>Web dashboard<br/>Port 8080]
    end

    GZ -->|Gazebo Transport| BR
    BR -->|ROS2 DDS| COMP
    COMP -->|ROS2 DDS| RB
    RB -->|WebSocket| VW
    RB -->|WebSocket| EXT[External: ANIMA Bridge / CLI / AI Agents]

    style DOCKER fill:#050505,color:#f3f3f3,stroke:#FF3B00
    style SIM fill:#1A1A1A,color:#FF3B00,stroke:#FF3B00
    style GZ fill:#050505,color:#FF3B00
    style BR fill:#050505,color:#FF3B00
    style COMP fill:#050505,color:#FF3B00
    style RB fill:#050505,color:#FF3B00
    style VW fill:#FF3B00,color:#050505
Loading

Why single container? Gazebo Transport uses local IPC (shared memory). The gz bridge must run in the same process space as Gazebo for sensor data to flow.


Commands

make build      # Build simulation image
make sim        # Start simulation
make stop       # Stop simulation
make restart    # Restart
make logs       # Follow logs
make status     # Container status
make shell      # Shell into gazebo container
make clean      # Remove everything

GPU: docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d


Part of ANIMA

Autonomous Neural Intelligence for Machine Awareness


Built with AI agents. Powered by ROS2 + Gazebo. Made for robots. Copyright (c) 2026 AIFLOW LABS LIMITED / RobotFlowLabs. All rights reserved.

About

ANIMA ROS2 Simulation Network — Complete ROS2 Jazzy + Gazebo Harmonic stack with 6 worlds, multi-sensor robot, TRON1 biped, 3-camera live viewer, rosbridge WebSocket. One command to launch.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors