- Test mapping and navigation in a complete hospital.
- Train controllers in MuJoCo and test them in Isaac Sim.
- Develop teleoperation and safety functions.
- Build and test robot tasks.
- Record synchronised sensor data with exact ground truth.
WardZero is an open platform to build and test robot solutions for hospitals. It gives a complete simulated hospital, two simulators, a safety layer and navigation. Users can bring their own robot, controller or task.
The simulated hospital has a surgical wing. The wing has corridors, pre-operative bays, a recovery ward, a sterile store, a scrub room and an operating theatre. Version 2 adds a ward with en-suite rooms, a small A&E department, fire doors and bed lifts.
All parts use the low-level interface of the real robot. The controller sends motor targets on
/lowcmd at 500 Hz. It reads the joint states on /lowstate. Because of this, the same
software runs in MuJoCo, in Isaac Sim and on the real robot.
The reference robot is a Unitree G1 humanoid with 29 degrees of freedom and two BrainCo Revo2 hands. The
repositories with the prefix hospital-sim- contain no robot-specific code. A different robot
supplies its own model, simulator bindings and controller.
All tests of WardZero used simulation only. No test of the transfer from simulation to a real robot (sim-to-real) is complete yet. WardZero is in development.
/lowcmd and receives /lowstate, as on the real robot. The simulators also publish the lidar scan, the odometry and the head camera.Version 2 changes the hospital so that it follows UK guidance for hospital buildings more closely. Feedback on version 1 showed that lifts and fire doors are difficult for hospital robots. Version 2 adds them with physics in Isaac Sim and in MuJoCo.
The guidance comes from NHS England and the UK Government: HTM 05-02 (fire safety), HTM 08-02 (lifts), HBN 00-04 (circulation), HBN 04-01 (adult in-patient wards), HBN 15-01 (A&E) and Approved Document M (access).
| Area | Guidance | What version 2 adds |
|---|---|---|
| Fire doors | HTM 05-02 | Up to 22 fire doorsets with physics. The leaves close themselves. Magnets hold the corridor doors open and release on the fire alarm. Magnets never hold the stair doors open. |
| Fire compartments | HTM 05-02 | The main building has three fire compartments. The surgical wing has two fire zones and a final exit to outside. |
| Lifts | HTM 08-02 | Two pairs of bed lifts: car 1800 x 2700 mm, door 1400 mm. Each pair has a call button, door timing, a light curtain and fire recall. |
| Ward | HBN 04-01 | A 6-bed ward. Each bedroom has an en-suite. A nurse base and two workstations with observation windows. Utility rooms, a pantry, an assisted shower and a day room. |
| A&E | HBN 15-01 | A small A&E with its own ambulance entrance. Resus with two bays, majors cubicles, triage, minors, X-ray and a walk-in reception. |
| Circulation | HBN 00-04 | The link corridor between the hospital and the surgical wing is now 4 m wide, so two beds can pass. |
| Access | Approved Document M | Door opening forces are less than 30 N. Lift buttons are between 0.9 m and 1.2 m above the floor. |
Each door and lift runs the same control code in the two simulators. A robot can push a door, press a lift button and wait for the lift doors. The lidar sees the doors move. A fire-alarm topic closes all fire doors in approximately 6 seconds.
Version 2 follows the guidance for robot testing. It is not a certified design, and no fire engineer
has examined it. Some items do not meet the guidance. The ward bedroom doors are 1.2 m wide, and the
guidance recommends 1.55 m for beds. The A&E has no decontamination room and no children's area. The stairs
have no lobbies, and the model has no upper floors. The file uk-guidance-compliance.md in
hospital-sim-env lists each check and each gap.












Version 2 code: branch v2.
Version 1.0 code: tag v1.0.
Version 1.0 page: archived copy.
The hospital is the NVIDIA Isaac Sim hospital building. A generated surgical wing connects to its south-east door. The wing uses the operating theatre and the props of NVIDIA Isaac for Healthcare and Lightwheel SimReady.
A generator makes the scene from the layout file. A build check stops the build if furniture blocks a door. It also stops the build if two props overlap or if a prop is outside its room. The floor has one level. The corridors of the wing are 4 m wide. In version 2, fire doors close most of the wing doorways.
The scene uses a reduced copy of the assets, so it can run on an 8 GB graphics card. The light levels are calibrated, so that the white walls do not show as plain white.
Two simulators replace the robot. They use the same low-level interface. All the software above the controller is the same in the two simulators.
MuJoCo gives fast physics. The ROS 2 simulator node steps it at 500 Hz, and MuJoCo MJX trains the controller. Isaac Sim gives realistic rendering, a lidar and a head camera. Use it to test navigation and perception with realistic sensor data.
PPO trains the whole-body controller in MuJoCo MJX. 2048 robots train in parallel on one RTX 3070. The curriculum has three stages. Stage A teaches the robot to stand. Stage B teaches it to walk with arm targets. Stage C teaches it to follow full-body motions.
A teacher policy with privileged data trains a student policy. The student uses only the sensors of the real robot. The controller loads the student as an ONNX file. Each stage has gates. The training is not stable, so the trainer keeps the checkpoint that passes the gates.
Stage A1 is complete. The survival increased from 0.05 to 0.97 in 39 million steps. The stage took approximately one hour.
Survival in stage A1 against training steps. The green ring shows the checkpoint that passed the gate.
The mode manager has seven modes: DAMP, STAND, LOCO, MANIP, NAV, AUTO and HOLD. HOLD stops the robot in its position. DAMP removes the power from the motors.
All input sources send requests to the mode manager, and the mode manager makes the decision. A control lease sets which source has control. A watchdog sets HOLD if the interface signal stops. A hardware emergency stop has priority over all inputs. Speed zones on the map set the maximum speed.
Webcam teleoperation controls the arms and the hands. The operator sits in front of a webcam. MediaPipe tracks the operator, and a fork of xr_teleoperate calculates the arm and finger positions. The operator does not need a VR headset.
Navigation uses standard ROS 2 packages. slam_toolbox makes the map. AMCL finds the position of the robot on the map. Nav2 with the MPPI controller plans the path and drives the robot.
The master repository, hospital-sim, contains the interface contract, the environment script and the list of component repositories. It checks out the component repositories in one folder.
Version 2 is on the v2 branch of hospital-sim, hospital-sim-env, g1-isaac-sim, g1-mujoco-sim and
hospital-sim-ros2. Version 1.0 stays on the main branch, with the tag v1.0.
| Repository | Contents |
|---|---|
| hospital-sim | Master repository: interface contract, environment script, component list |
| hospital-sim-env | Isaac Sim hospital and surgical wing, layout generator, surgical instruments |
| g1-brainco-description | Reference robot model: URDF, MJCF, meshes, robot specification |
| g1-mujoco-sim | MuJoCo version of the hospital, made from the same layout |
| g1-isaac-sim | Robot in the Isaac hospital: physics layer, lidar, cameras, DDS and ROS 2 bridge |
| g1-whole-body-rl | Controller training in MuJoCo MJX and ONNX export |
| hospital-sim-ros2 | ROS 2 Humble packages: controller, mode manager, teleoperation, simulator node, navigation, tasks, bringup |
| g1-webcam-teleop | Webcam teleoperation of the arms and the hands |
| done | Hospital and surgical wing in Isaac Sim and MuJoCo, from one layout, in one world frame |
| done | Low-level interface of the real robot in the two simulators, with lidar, odometry and head camera |
| done | Mode manager with control lease, watchdog, emergency-stop gate and speed zones |
| done | Keyboard and webcam teleoperation |
| done | Mapping and navigation |
| v2 | Fire doors, fire compartments and bed lifts with physics in the two simulators (HTM 05-02, HTM 08-02) |
| v2 | Ward with en-suite rooms, small A&E with an ambulance entrance, 4 m link corridor (HBN 04-01, 15-01, 00-04) |
| next | New SLAM survey maps of the version 2 building. The ground-truth map is up to date. |
| next | Remaining guidance gaps: wider bedroom doors, an A&E decontamination room and children's area, lift modes for emergency beds and theatres |
| partial | Controller: the training of stage A1 (stand) is complete. Distillation, export, walking and motion tracking are next. |
| next | Simulated patient personas: train human characters that act as patients in the simulated hospital. Researchers can then study robot-human interaction in simulation, before tests with people. |
| next | Data from the simulators to train and test learned world models |
| next | Sim-to-real transfer and tests on a real robot. All the results on this page come from simulation only. |
@software{bangalorekumaraswamy2026hospitalsim,
author = {Bangalore Kumaraswamy, Rakshith},
title = {hospital-sim: Master repository of a humanoid robot stack in a simulated hospital},
year = {2026},
version = {2.0},
url = {https://github.com/Bkrakshith/hospital-sim},
license = {Apache-2.0}
}
WardZero is in development. It is research software. All tests of WardZero used simulation only. No tests on a real robot and no tests of the transfer from simulation to a real robot are complete.
WardZero is not a medical device. It is not for patient care or for a clinical procedure. It is not for the control of a real robot near people without a separate safety analysis, tests and approvals by the user.
The author supplies the software, models, data and this page "as is", with no warranty of any kind, express or implied. This includes no warranty of fitness for a purpose, safety, accuracy or non-infringement. Users use WardZero at their own risk. Users are responsible for all the work that they do with it.
To the maximum extent that the law permits, Rakshith Bangalore Kumaraswamy and the contributors are not liable for any claim, damage, injury, loss or other liability that comes from WardZero or from its use. This applies to direct, indirect, incidental and consequential damage. Refer also to sections 7 and 8 of the Apache License 2.0.