Shutter-ROS

Collection of ROS packages to get started using the Shutter robot. The robot was created by the Interactive Machines Group at Yale University.

More information about Shutter, including how to build your own robot, is located on the main Shutter project website.

Shutter robot

System Requirements

Some of the shutter-ros packages depend on other ROS packages that can be installed through rosdep or by downloading the git submodules already included in this repository. Additionally, there are specific Python requirements that must be met. Follow the installation instructions below to get started.

Expected Utilities

Install the following utilities for ROS workspaces:

To simulate Shutter with a standalone executable generated with Unity, also install gdown via pip.

Installation

Download the repository, get submodules, install dependencies and build your catkin workspace:

# update pip and install expected utilities
pip install --upgrade pip
pip install --user gdown
sudo apt install python3-vcstool

# get the code
$ mkdir -pv ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://gitlab.com/interactive-machines/shutter/shutter-ros.git

# get submodules
$ cd ~/catkin_ws/src/shutter-ros
$ git submodule update --init

# clone dependencies
$ cd ~/catkin_ws/src
$ mkdir ros-planning
$ vcs import --input shutter-ros/noetic_moveit.repos --recursive ros-planning

# update rosdep
$ cd ~/catkin_ws
$ rosdep update

# install dependencies for Shutter
$ rosdep install -y -r --ignore-src --rosdistro=noetic --from-paths src

# build workspace
$ catkin_make -DCMAKE_BUILD_TYPE=Release

# install shutter_face Python dependencies
$ source ~/catkin_ws/devel/setup.bash
$ roscd shutter_face_ros
$ pip install -r requirements.txt --user

# install shutter_face Xvfb dependency
$ cd ~/catkin_ws/src/shutter-ros/modules/xvfbwrapper
$ pip install . --user

Quick Start

Then, you can start the robot by running the command:

$ roslaunch shutter_bringup shutter_with_face.launch simulation:=true

Set the optional argument simulation:=false to use the physical robot. If the driver cannot find or connect to the robot, the launch file will fail. Check the terminal for any errors.