Virtual world simulation is achieved using Unity.
Unity is a game engine with an integrated development environment.
Many VR devices can be used in Unity, which helps to reflect the real world human behavior in the virtual world.

Robots in the virtual world are controlled using ROS (Robot Operating System).
ROS is a software platform for robots and can control many real robots.

A real human (test subject) can log into the virtual world through general VR devices to interact with the virtual robot in the virtual world.
You can apply the original software, which is used to control the real robot based on ROS, to the virtual robot without any modification.

The following figure shows the system architecture of the SIGVerse.

Unity is executed on Windows and ROS runs on Ubuntu.
Unity and ROS are connected using rosbridge and sigverse_rosbrige.

Use rosbrige to send / receive commands and small data for operating the robot.
Use sigverse_rosbridge to send large data such as robot sensor data (RGB images, etc.) to ROS.
Since sigverse_rosbridge is in BSON format, it is possible to send and receive binary data efficiently.