SIC
SIC is a framework for quickly getting started with social robotics by making it simple to combine complex devices such as Nao’s and powerful services such as Google Dialogflow.
Getting started with SIC consists of a few basic steps:
Installing SIC
Starting Redis and SIC on your device
Start your program to control the robot
Installation
You can find the instructions on how to install the framework here: Install.
Setup
Once installed to all devices you want to use, we can start the framework.
This consists of two (or three) steps:
Start Redis
(Optional) Start a service, such as face detection
Run your program
Starting Redis on your laptop
To enable communication between all your devices, we have to start Redis server. Make sure Redis is always up and running when you run any demos.
Ubuntu / Debian / macOS
# Navigate to the repo where you cloned the sic_applications cd sic_applications # Start the Redis server redis-server conf/redis/redis.conf
Troubleshoot (Could not create server TCP listening socket *:6379: bind: Address already in use)
If you encounter the error Could not create server TCP listening socket *:6379: bind: Address already in use.
, please use the following command to stop the Redis server first
sudo systemctl stop redis-server.service
And, if you wish to prevent Redis server from starting automatically at boot, you can run
sudo systemctl disable redis-server.service
If you still can’t kill Redis server, you can use ps aux | grep redis-server
command to find the PID (process ID) of the Redis server. And, terminate the process using kill PID
Windows
The commands here are for the Command Prompt:
# Navigate to the repo where you cloned the sic_applications cd sic_applications # Start the Redis server cd conf\redis redis-server.exe redis.conf
Troubleshoot (Could not create server TCP listening socket *:6379: bind; Failed listening on port 6379 (TCP), aborting.)
It means that port 6379 is already in use, probably by a previous instance of the Redis server that is still running in the background. You can either leave it as it is, or if you really want to kill it and restart the server, find the PID and kill the program.
Running a demo
To start a demo, for example to show nao’s camera output on your screen, simply execute a python script. Some demos are available in the sic_applications /demos.
For example, to show the camera feed of the robot:
In the demo_nao_camera.py
make sure to adjust the ip adress to the ip adress of your robot. If you press the chest button of the robot it will tell you it’s ip adress. Ensure you are on the same network as the robot, and then you are good to go!
To start the camera demo from the terminal, use the following commands.
Ubuntu / Debian / macOS
# Activate the same virtual environment where you pip installed # social-interaction-cloud in the installation steps source venv_sic/bin/activate # Go to sic_applications and the demo script cd sic_applications/demos python demo_nao_camera.py
Windows
# Activate the same virtual environment where you pip installed # social-interaction-cloud in the installation steps .\.venv_sic\Scripts\activate # Go to sic_applications and the demo script cd sic_applications\demos python demo_nao_camera.py
And, you should get the following output:
Starting SIC on /data/home/nao/.venv_sic/lib/python2.7/site-packages/sic_framework/devices/nao with redis ip 192.168.2.6 [SICComponentManager 192.168.2.7]: INFO: - NaoqiSpeakerComponent [SICComponentManager 192.168.2.7]: INFO: - NaoqiButtonSensor [SICComponentManager 192.168.2.7]: INFO: - NaoqiAutonomousActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiMicrophoneSensor [SICComponentManager 192.168.2.7]: INFO: - NaoqiMotionActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiBottomCameraSensor [SICComponentManager 192.168.2.7]: INFO: - NaoqiStiffnessActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiMotionRecorderActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiTextToSpeechActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiTrackerActuator [SICComponentManager 192.168.2.7]: INFO: - NaoqiTopCameraSensor [SICComponentManager 192.168.2.7]: INFO: - NaoqiLookAtComponent
If all goes well, a display should pop up showing you the camera output of your robot!
API
The goal of SIC is to provide easy to use high level access to devices and services. For example, to make a NAO robot say something, run the following python script on your laptop! To see more functionality check out the sic_applications /demos folder!
from sic_framework.devices import Nao from sic_framework.devices.common_naoqi.naoqi_text_to_speech import NaoqiTextToSpeechRequest nao = Nao(ip='192.168.0.151') # adjust this to the IP adress of your robot. nao.tts.request(NaoqiTextToSpeechRequest("Hello!"))