Within Unity, we use the Unity ROS-TCP-Connector library to interface with ROS. This ROS interface allows control of a simulated robot via the standard ROS navigation stack. We currently target ROS Noetic with Python 3 compatibility.
A scenario occurs in a physical environment where virtual avatars exhibit some a Pedestrian Behavior and the robot is assigned a specific start (A) to goal (B) navigation task.
The physical environment is the physical world in which the interaction occurs. We have created three main environments: the Lab, Warehouse, and Outdoor scene.
We also have four environments based on popular pedestrian datasets.
Pedestrian behavior describes the method of controlling individual pedestrians and assigning them A-B navigation goals.
Every robot task is an A-B navigation task where the robot is transported to the start pose in the environment and presented with the navigation goal pose.
Our code is divided between these two systems. The code is available in the following four repositories :
ROS workspace and with setup and development scripts: https://github.com/yale-sean/sim_ws.
Unity project is available here: https://github.com/yale-sean/social_sim_unity.
ROS package is available here: https://github.com/yale-sean/social_sim_ros.
This documentation is hosted here: https://github.com/yale-sean/docs.
Pull requests are welcome!