usr-lab / pepper-social

This repository contains the research project that enables the robot to automatically join a group based on the modeled personal, social and public spaces of the group using deep reinforcement learning.
11 stars 5 forks source link

Pepper Social Scenarios

The pepper social scenarios is implemented using ml-agents. It is still under development. This repo is provided for the Paper Social Behavior Learning with Realistic Reward Shaping. Please do not hasitate to contact me if there are issues, you can let me know by posting them in the issues section.

Tested Unity version: 2018.1.0b13 (beta) Tested Unity ML-Agents version: 0.3.1b

Environments

Pepper robot approaches people: This environment trains pepper robot to approach a group from different angles.

Visualization of personal, social and public spaces of different agents and a sample of image-based observation

Base Behaviour(Without considering social norms)

Learned Behaviour

Approaching from the left and right side by taking care of personal, social and public space (red circles represent the personal spaces of the agents). Learned policy can enable robot to approach from any point in the space.:

Project Prerequisite

Getting Started

Creating a virtual Python environment using Anaconda

  1. Inside of ml-agents/python/ directory run conda create -n myenv python=3.6.
  2. Activate the virtual environment by running source activate myenv
  3. Install requirements from requirements.txt by running pip install -r requirements.txt

Known Problems of this section.

Building pepper social environment

Build prerequisites:

Open PepperSocial scene File

  1. Use Unity Editor to open the project folder. Then use Ctrl+o to open scene file by following the path PepperSocial/Assets/Scenarios/PepperSocial/PepperSocial.unity.

Create a build inside of Unity Headleslly for Linux

  1. Go to File -> Build Settings.
  2. Tick Headless mode box.
  3. Set Target platform to Linux (x86_64 build). This will create two files:

<environmentName>_Data/ and <environmentName>.x86_64

We strongly recomend to move these files inside an environments/ directory inside of the ml-agents python/ directory. Such that we get:

python/environments/<environmentName>_Data/ and python/environments/<environmentName>.x86_64

Running training from Python

Inside of the ml-agents/python/ directory, run the command:
python learn.py environments/<environmentName>.x86_64 --train

Follow Us

Yuan Gao

Martin Frisk

Branches Related to Implementation

We use branches to keep the experiments clean: The following table shows configerations and their corresponding branches.

Configeratures Branch
Vector + LSTM (Baseline) [Link]
CameraOnly + SAEV + FF [Link]
CameraOnly + SAEV + LSTM [Link]
CameraOnly + conv + FF [Link]
CameraOnly + conv + LSTM [Link]
CameraSpeed + SAEV + FF [Link]
CameraSpeed + SAEV + LSTM [Link]