SEAN 2.0 is built on two main components: the game engine (Unity) and the Robot Operating System (ROS).
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.
SEAN is built on two high level systems: Unity and ROS.
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!