This brief guide introduces the main components and concepts of this API and provides some code samples that can be used as a starting point.
Requirements
The Python-SIC connector requires Python 3 (with tkinter enabled).
Make sure Python can compile native extensions (e.g. for Windows see https://www.scivision.dev/python-windows-visual-c-14-required).
You can use a Python editor of your choice (Pycharm for example).
Abstract SIC Connector
Introduction
The first main component is the AbstractSICConnector
class. It requires the IP address of the SIC with which it sets up the connection to the SIC and enables you to send action commands to the robot and receive data generated by either the robot or the SIC itself. The data contains events (e.g. when a button is pressed ‘LeftBumperPressed' or when an action is finished 'WakeUpDone’) or the results of certain actions (e.g. a recognized intent after a speech recognition attempt).
Usage
The AbstractSICConnector
class is abstract, meaning that itself does not do anything with the incoming data. To process the incoming data you can implement your own concrete SIC Connector class by inheriting the AbstractSICConnector
class and overriding the empty event handlers.
Example
In the below MyConnector
example, you see that it uses the AbstractSICConnector
class as a parent, inheriting all its methods. Two things have been added. First of all, the on_robot_event
method is overridden to print all the events generated by the robot. Secondly, a run method is added that sends actions to the SIC.
from social_interaction_cloud.abstract_connector import AbstractSICConnector from time import sleep class MyConnector(AbstractSICConnector): def __init__(self, server_ip): super(MyConnector, self).__init__(server_ip) def run(self): self.start() self.set_language('en-US') sleep(1) # wait for the language to change self.say('Hello, world!') sleep(3) # wait for the robot to be done speaking (to see the relevant prints) self.stop() def on_robot_event(self, event): print(event) # Run the application my_connector = MyConnector(server_ip='127.0.0.1') my_connector.run()