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.
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.
Starting SIC on your laptop
To enable communication between all your devices, we have to start Redis on some device. Start it on your laptop in the base sic
folder.
docker compose up redis
docker compose up redis
Starting SIC on the Robot
To start the framework on the robot run (also in sic/sic_framework/scripts/
)
sh ./start_robot.sh -h ROBOT_IP -n ROBOT_DEVICE_ID -b REDIS_IP
Where:
ROBOT_IP
is the adress of the Nao or Pepper robotROBOT_DEVICE_ID
can be any name as it is thedevice_id
with which the robot will identify itself in the framework.REDIS_IP
is the IP adress of the redis database used for communication. If you started SIC in docker this is the ip adress of your own laptop.
Example command:
sh ./start_robot.sh -h 192.168.0.116 -n nao1 -b 192.168.0.181
This should show an output like
nao@nao:~/sic/sic_framework/devices$ python nao.py --robot_name nao1 Starting service manager with device id "nao1" with services: - NaoqiMicrophone - TopNaoCamera - BottomNaoCamera Starting service manager with device id "nao1" with services: - NaoMotionReplayAction - NaoMotionRecorderAction - NaoMotionAction - NaoMotionStreamConsumer - NaoqiTextToSpeechAction - NaoMotionStreamProducer - NaoqiTabletService
API
The goal of SIC is to provide easy to use high level access to devices and services. To make a NAO robot say something, follow the startup instruction in https://socialrobotics.atlassian.net/wiki/spaces/CBSR/pages/2180415493/Install#Starting-SIC-on-the-Robot and run the following python script on your laptop.
from sic_framework import SICApplication from sic_framework.devices.common_naoqi.naoqi_speakers import NaoqiTextToSpeechAction, NaoqiTextToSpeechRequest class DemoTextToSpeech(SICApplication): def run(self): nao3_action = self.connect(NaoqiTextToSpeechAction, device_id='nao1') nao3_action.request(NaoqiTextToSpeechRequest("Hello world!")) if __name__ == '__main__': test_app = DemoTextToSpeech() test_app.run()