Skip to content
robotic interactive companion - stuttgart hackathon 2018
JavaScript Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


The personal Robot Interaction Companion

🚨 Please be aware that this code is not maintained and may contain vulnerable packages 🚨


See R.I.C. in action:

R.I.C. Demo


System overview

Deployment View

Component Description
Robot Server Runs the ROS system of the Cobot.
Motion Terminal Fest VTEM module for transforming ROS commands into pneumatic pressure at the robot joints
Bionic Cobot Festo humanoid robot arm
Control Server Runs Node.js to control the game flow via state machine and interact with the robot server via ROS bridge messages
Referee Server/LiDAR Placed Vertically in front of our R.I.C. System, the referee measures the reaction time and also makes sure that the next iteration of the game will only be started once the players hand is completely removed from the game area.
Amazon Alexa Natural speech interface to start the R.I.C. via Alexa start RIC [ric] and get results of the last game
Amazon Web Services The backend running the Alexa program and sotring the game scores

ROS interaction

For developing the Control Server Festo provided a Virtual Machine with a Cobot simulator. This allows to run the Control Server offline without access to the real hardware.


Game Design

The following shows the games state machine. The implementation can be found under rosjs/lib/game.js.

Game Statemachine


Referee Server

Note: In order to discover the RPLIDAR sensor on your COM ports, you need to install the driver.
Download the driver from here

Install dependencies using:

pip install rplidar requests numpy

Control Server

Install the NPM dependencies using

cd control-server
npm install


Publish the Skill available in /alexa to a development account connected with our local Alexa device.


Referee Server

Start the referee server using

$ python referee-server/

Control Server

Start the control server using

$ node control-server/index.js --ros_master <ros_master_ip>


The Cobot is running V1.1 and a modified pressure regulation on the VTEM which allows R.I.C. to detect collissions earlier on without going into failure mode.

✏️ authors

⚖️ License

The code is licensed under GPLv3, the ROS message and service definitions are (C) by Festo and all images are published under CC-by-4.0

You can’t perform that action at this time.