svn checkout http://hcm-lab.de/svn/SocialRobotics/Research/Development/Workspaces/Reeti username and password will be given by the tutor.
git clone https://github.com/SceneMaker/VisualSceneMaker.git
1, Connection to Reeti: file: ./res/engineConfig_.properties (in ReetiV2Engine) Adjust "robotIP" to be the IP address of the Reeti robot. 2, Connection to VisualSceneMaker: file: ./res/appConfig_ .properties (in ReetiV2Engine) Adjust "network.localIP" to be the IP address of the computer running ReetiV2Engine. Adjust "network.localPort", if necessary. Port is used by UDP. We can check which properties file is used from nbactions.xml file in ReetiV2Engine root directory.
Connection to ReetiV2Engine After a VisualSceneMaker project is created, a project.xml can be found in the project. In project.xml (VisualSceneMaker project) "lhost": the computer running VSM "rhost": the computer running ReetiV2Engine Adjust "lhost" and "lport" for VSM and "rhost" and "rport" for ReetiV2Engine. Make sure the values of "rhost" and "rport" here should be the same as the values of "network.localIP" and "network.localPort" in appConfig_.properties. They are used by UDP. If VSM and ReetiV2Engine run on the same compuer, we can use the following settings: We can use Editor window to edit project.xml. We will introduce it in the "Hello World" Example later.
In project.xml (VisualSceneMaker project) The child elementsMore language information is available here: Reeti TTS controlsdefine how an agent speaks. "language" : language used by Reeti (German:de or English: en) "voice" : voice used by reeti. (For English: Simon or Kate; for German: Stefan or Katrin) We can use Editor window to edit it, too.
launch ReetiV2Engine: please read README_(de).txt in the file ReetiV2Engine which is downloaded from our first step. launch VisualSceneMaker: 1, click Run > Clean and Build Project from the main menu to clean and build the project to generate an executable file. 2, click Run > Run Project from the main menu to launch Visual SceneMaker. After VSM is launched successfully you will welcomed by its Welcome Screen which is similar with the following picture.
1, After we get to VSM Welcome Screen, click "New Project", type a project name "HelloWorld". Then, click on OK button to enter VSM Workspace.
2, Click on Save current button to save your project to an empty folder (which will contain project.xml).
3, Click on Project Preferences button, we will get a editor window which can help us edit project.xml file.
4, Select Devices, type a name "Reeti", then, select the ReetiExecutor from the combobox. After that, click on Add Device button. "Reeti" will be shown on the left side of the window.
5,Select "Reeti", use the add button at the botom to add lport, lhost, rport and rhost to ReetiExecutor.
"lhost" and "lport": IP address of the computer running VSM.
"rhost" and "rport": IP address of the computer running ReetiV2Engine.
These settings are used for UDP communication between VSM and ReetiV2Engine.
6,Right click on "Reeti", select add new agent. We can change the name of the agent by double clicking. Let's change the name to reeti.
7, Select the agent reeti, use the add button at the botom to add language and voice to the agent.
"language" : language used by Reeti (German:de or English: en)
"voice" : voice used by reeti. (For English: Simon or Kate; for German: Stefan or Katrin)
After that, close the editor window to return VSM Workspace.
8, In the Workspace, click on the add button of the Scene tab in Script Editor and change the example template to:
scene en HelloWorld
reeti: Hello World![anim name='Emotions/happy'].
'happy' is an Anim Command. Make sure 'happy' sequence has been created by you on Reeti.
If you do not know how to create sequences, visit http://wiki.reeti.fr/display/USERDOC/RShowmaker.
9, Drag "HelloWorld" from "Scenes" list in the Building Block panel on the left side to the "End" node.
10, Close the project and reopen it again. You can reopen it from the Recent Projects list.
11, Click on the Play button on the top toolbar, you will see Reeti says "Hello World!" and smiles.
VSM selects the text we write in Script Editor region and generates Speech Commands for ReetiV2Engine. So, Reeti can say what we write.
Since Reeti will move the bottomlip when it speaks, no other commands (Anim Command, Pose Command, Motor Command) which uses bottomlip should not be sent to Reeti when Reeti is speaking.
Reeti plays the chosen sequence(rmdl file) which is located on Reeti in /home/reeti/reetiDocuments/Sequences.
For example: [anim name='Emotions/happy'].
Reeti plays the rmdl file located at /home/reeti/reetiDocuments/Sequences/Emotions/happy.rmdl. rmdl file can be created with RShowmaker.
The method of creating rmdl files is available here: RShowmaker.
All the 15 actuators on reeti are asigned to make reeti to move to a position with a special speed we want.
For example:
[pose neckPan='50' speed='60']
[pose neckPan='50' neckTlt='30' speed='50']
[pose neckPan='50' neckTlt='30' rightEyeTilt='40' leftEyePan='20' speed='70']
actuators: (neckRotat, neckPan, neckTilt, rightLC, leftLC, topLip, bottomLip, rightEyePan, rightEyeTilt, leftEyePan, leftEyeTilt, rightEyeLid, leftEyeLid, rightEar, leftEar)(float)(from 0 to 100).
speed: move speed (int)(from 10 to 300).
Warning:
The actuators of reeti which are not assigned a value by us in [ ] will be assigned a value which is got from the current position of reeti. So, Pose Command will send the command to all the 15 actuators at the same time. We must not give any actuator a differnet command when the current Pose Command is not finished.
A single actuator on reeti is asigned to make reeti to move to a position with a special time we want.
For exmaple:
[motor neckPan='20' smooth='0.4']
actuator: (neckRotat, neckPan, neckTilt, rightLC, leftLC, topLip, bottomLip, rightEyePan, rightEyeTilt, leftEyePan, leftEyeTilt, rightEyeLid, leftEyeLid, rightEar, leftEar)(float)(from 0 to 100).
smooth: (float)(Should not be less than 0.2).
smooth='1' means reeti needs to take around 24ms to reach the destination.
A Urbi Java Server is needed to handle Motor Commands. So in order to use the commands, we need to launch another application(ReetiUrbiServer) on Reeti. ReetiUrbiServer can be downloaded from github.
git clone https://github.com/RobbieGUO/ReetiUrbiServer.git
README.md in the file ReetiUrbiServer shows us how to launch ReetiUrbiServer on Reeti.
"HeadMove" Example.
There is an example in "ReetiTestSuits" which controls the moves of neckPan, rightEyeLid and leftEyeLid with Motor Commands concurrently.
After we launch VisualSceneMaker with netbeans, click "ReetiTestSuits" from its "Tutorials" list to enter the workspace.
Click Project Preferences button to change the IP setting of the reeti executor.
In the SceneFlow Editor, there is a Super Node named HeadMove. Set it as Start Node.
Double click to go into that Super Node and set Basic Nodes N24, N39, N20 and N22 as Start Nodes.
Now we will get a sceneflow similar with the following one.
Click the Play button on the top toolbar. We will see Reeti Shakes its head, blinks its eyes and says "Well, you know what? I always want to fly to the sun!" at the same time!
Warning:
1, Motor Command is not proved to be safe enough to control Reeti. To avoid damage, please be careful when you use the Motor Command. Don't send different commands to the same actuator at the same time or in a very short time(no less than 200ms).
2, Only one actuator of reeti can be assigned in one [ ]. We can move the others actuators which are not in the same [ ] with other commands at the same time.
LED Command is used to control the two RGB LEDs on Reeti's cheeks.
For exmaple:
[led color='red' side='both']
color: "off" or the name of a color.
side: "left", "right", "both".