Tutorial using ROS - SIGVerse/sigverse_unity_project GitHub Wiki

Virtual robots can be controlled by using SIGVerse and ROS (Robot Operating System).

This section describes examples using ROS 2.

System Requirements

If you want to use ROS 2, prepare an Ubuntu environment and install ROS 2 there.
ROS communicates with Unity on Windows.

The requirements for Windows can be found here.

The ROS requirement is that the OS is Ubuntu 22.04 and ROS 2 distribution is Humble Hawksbill.

RobotOperationUsingROS

Build Windows Environment

Please refer here to build the Windows environment.
After that, please build the following environment.

Build Ubuntu Environment

Build Ubuntu environment as follows.

Using VMware

Instead of preparing an Ubuntu PC, you can use an Ubuntu virtual machine on Windows.
However, in this case, it will be difficult to run tutorials using the GPU.
Also note that using VMware requires a lot of computational resources.
And the Docker may have problems coexisting with VMware. Please note this.

The procedure for building an Ubuntu environment using VMware is as follows.

  1. Create a BROADCOM account and login.
    https://support.broadcom.com/
  2. Access Free Downloads (click My Downloads in the left pane, then click Free Software Downloads available HERE. As of October 2025)
    https://support.broadcom.com/group/ecx/free-downloads
  3. In the search box, enter "VMware Workstation Pro", search for VMware Workstation Pro, and download it.
  4. Download the iso file(ubuntu-22.04.5-desktop-amd64.iso) of Ubuntu 22.04.5 LTS.
    https://releases.ubuntu.com/jammy/
  5. Launch VMware Workstation Pro.
  6. Create a New Virtual Machine using the downloaded ISO file.
  7. After you have finished creating the VM, adjust the memory and processors in the Virtual Machine Settings. And also set the settings to use the Enhanced keyboard.

Install ROS 2 Humble Hawksbill

Install ROS 2 Humble

Please follow the ROS 2 Humble Installation page and the Configuring environment page.
Then create the workspace (ros2_ws) by following the instructions on the page below.
https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html

Install Additional Dependencies

Run the following commands:

sudo rosdep init
rosdep update
sudo apt install -y libncurses-dev
sudo apt install -y python3-pip

Install Required Libraries (using shell scripts)

!! Underconstruction !!
The following is a procedure for batch installation of libraries using a shell script.
If this procedure is performed, the subsequent manual installation steps are not necessary.
We have confirmed the operation with the standard installation of ROS Noetic.
Therefore, if the name of the ROS workspace is not catkin_ws, it will not install properly.
Please use with caution.

!! Underconstruction !!
wget https://raw.githubusercontent.com/SIGVerse/docker-ros/main/noetic/sigverse_setup.sh
chmod +x sigverse_setup.sh
./sigverse_setup.sh
source ~/.bashrc

Install Required Libraries (manual)

Add Commands to .bashrc.

Add "~/ros2_ws/install/setup.bash" to .bashrc to simplify subsequent commands.
Be careful if you manage multiple ROS workspaces.

echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

Install ROS2 Packages

Start the terminal and execute the following command.

sudo apt install -y ros-$ROS_DISTRO-rosbridge-suite
sudo apt install -y ros-$ROS_DISTRO-slam-toolbox
sudo apt install -y ros-$ROS_DISTRO-xacro
sudo apt install -y ros-$ROS_DISTRO-octomap
sudo apt install -y ros-$ROS_DISTRO-hardware-interface
sudo apt install -y ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-controller-manager
sudo apt install -y ros-$ROS_DISTRO-moveit ros-$ROS_DISTRO-moveit-ros-perception ros-$ROS_DISTRO-moveit-ros-occupancy-map-monitor

Install Mongo C Driver

In the terminal, execute the following command:

cd ~/Downloads
wget https://github.com/mongodb/mongo-c-driver/releases/download/2.0.2/mongo-c-driver-2.0.2.tar.gz
tar zxf mongo-c-driver-2.0.2.tar.gz
cd mongo-c-driver-2.0.2/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_UNINSTALL=ON
cmake --build .
sudo cmake --install .

Install Mongo C++ Driver

In the terminal, execute the following command:

cd ~/Downloads
wget https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.1.1/mongo-cxx-driver-r4.1.1.tar.gz
tar zxf mongo-cxx-driver-r4.1.1.tar.gz
cd mongo-cxx-driver-r4.1.1/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_PREFIX_PATH=/usr/local
cmake --build .
sudo cmake --install .
sudo ldconfig

Install sigverse_ros_bridge

In the terminal, execute the following command:

cd ~/ros2_ws/src
git clone https://github.com/SIGVerse/sigverse_ros_package.git

ROS2 Build - Core Packages

The core packages do not include yolo_ros or MoveIt, so the TurtleBot3 tutorials cannot be executed.
If you want to run the TurtleBot3 tutorials, please follow the steps in ROS2 Build - All Packages.

cd ~/ros2_ws
colcon build --symlink-install --packages-skip sigverse_turtlebot3
source ~/ros2_ws/install/setup.bash

ROS2 Build - All Packages

Please refer here to build all packages.

Execute Example Scenes with ROS

Unity Scene Execution

Before running the Unity example scene, you need to set the IP address for ROS on Unity.

  1. Check the IP address of the Ubuntu side.
    Execute the following command in Ubuntu side to check the IP address.
    hostname -I
    
  2. Open the SIGVerse project in Unity.
  3. Click [SIGVerse]-[SIGVerse Settings] in the Unity menu to open the SIGVerse settings window.
  4. Enter the IP address of Ubuntu side in [Config file Settings]-[Rosbridge IP].
    (You can also change [Rosbridge Port] and [SIGVerse Bridge Port] in the same way.)

SIGVerseSettings

The Unity scene is executed as follows:

  1. Double-click [Assets/SIGVerse/ExampleScenes/xxxxx/yyyyy(.unity)] on the [Project] tab to open the target scene.
  2. Click the play button at the top center of the Unity to play the scene.

Example Scenes