Inmoov Conversion

Perry_S

USA
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail

Hello all, I wanted to start my own thread to discuss my Inmoov and my conversion to EZ Robot. I appreciate all the work by the MRL guys but I struggle with it. I am indebted to the help they gave me but I needed something a little more along in development with some documentation.

So here is my guy. Pretty standard build as far as inmoov's go.

User-inserted image

Here's the back. All the standard inmoov components. Dual 256 Megas, Nervo boards USB hub, Power supplys etc.

User-inserted image

So the tear down begins. I need to clean up that wiring too. What a rats nest!

I just received my EZR controller and camera so I have no idea how to program it yet. I figured I would at least try to set up a GUI that allows me to manually move the servos like the MRL swing GUI. Five or six hours later and a few tutorials and I have this three screen model. I was easily able to add way more than basic servo control.

Here is the main control screen. Contains the face tracking speech functions and a custom Pandorabot for AI. Some MS cognitive stuff as well.

User-inserted image

Here is the second screen. Head functions with a mouth control servo, neck, torso, and the 2 neopixel rings I have.

User-inserted image

Third screen is for the arms and hands

User-inserted image

So now I pretty much have all the same functionality I had in MRL give or take. I am pretty sure I am not doing this entirely correctly but it will come with time. Need to get into the scripting. I guess there are some tutorials to watch. So far my experience has been pretty good and in a day eclipsed my MRL progress of the last 6 months.

I'll update this thread with my progress and appreciate any feedback.

By — Last update
Jump to end

ARC Pro

Upgrade to ARC Pro

Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

#153  

Don't forget the Properties tab for your bot in Pandorbots, you can adjust settings and add new Properties and delete ones too. You'll need to "republish" your bot once you make any changes there for them to carry over. My changes also take a while before they show up in chat.

Quote:

Another thing I would like to develop is to be able to take input via Bing Speech, then decide if that should be sent to the EZR speech recognition which handles some of my action scripts or to Pandorabot. For instance I can tell it to close his hands and he does. But that also goes to Pandorabot which causes a response I didn't really want.

I've been pondering the same thing! This is an issue for pretty much any chat bot. My thought was reserve BING only for chatbot services or similar services.

My thought is to have a voice command for starting and stopping and engagement of the chatbot service (BING), like "hey robot, lets chat".....maybe even get fancy about it and say "hey robot it's me Justin, let's chat"...that turns on the chat bot service (and BING) and possibly some random life animation for the body....like a person standing still talking to you but not dead motionless standing still talking to you. And by setting your name you could preset some other things depending on your needs.

So in ARC you might have a phrase for yourself, one for your wife, one for your best friend and one for general chat...each of those "could" set conditions and of course start the chatting with Pandorbot and pause the traditional Speech Recognition of ARC.

Then you'd need a command to end the Pandorbot session, like "nice chatting with you" which would probably tell BING to stop listening because that would cut off Pandorbot and you'd want to turn back on the traditional Speech Recognition of ARC.

That's my best idea of a solution so far.

#154  

So I use a custom AIML file I named automation.html (a carry over from MRL) and have uploaded it to my Pandorabot's AIML section. As you can see from the file I can call my InMoov to all sorts of action in response to my voice prompts:

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">

<category><pattern>REST</pattern>
<template><srai>TAKE A BREAK</srai></template>
</category>
<category><pattern>RELAX</pattern>
<template><srai>TAKE A BREAK</srai></template>
</category>
<category><pattern>TAKE A BREAK</pattern>
<template>
  <random>
    <li>ok let me know what you want to do next [ControlCommand("Script Manager", ScriptStart, "REST")]</li>
    <li>ok I will [ControlCommand("Script Manager", ScriptStart, "REST")]</li>
    <li>it feels good to relax for a bit [ControlCommand("Script Manager", ScriptStart, "REST")]</li>
    <li>thank you I was getting tired of doing that [ControlCommand("Script Manager", ScriptStart, "REST")]</li>
  </random>
</template>
</category>

<category><pattern>EXAMINE YOUR HEAD</pattern>
<template><srai>TEST YOUR HEAD _</srai></template>
</category>
<category>
  <pattern>TEST YOUR HEAD</pattern>
  <template>
    <random>
      <li>ok initializing test [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
      <li>ok I will start the test now [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
    	<li>ok are you sure this is a good idea  [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
    	<li>I do not like the sound of this  [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
  	  <li>if you insist but i object  [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
	    <li>i assure you my neurons are fully intact  [ControlCommand( "Script Manager", ScriptStart, "Test Head" )]</li>
    </random>
  </template>
</category>

<category><pattern>TEST YOUR LEFT ARM</pattern>
<template>
  <random>
    <li>ok initializing test [ControlCommand( "Script Manager", ScriptStart, "Test Left Arm" )]</li>
    <li>ok I will start the test now [ControlCommand( "Script Manager", ScriptStart, "Test Left Arm" )]</li>
    <li>running diagnostics now [ControlCommand( "Script Manager", ScriptStart, "Test Left Arm" )]</li>
    <li>initiating left arm test [ControlCommand( "Script Manager", ScriptStart, "Test Left Arm" )]</li>
  </random>
</template>
</category>

<category><pattern>TEST YOUR RIGHT ARM</pattern>
<template>
  <random>
    <li>ok initializing test [ControlCommand( "Script Manager", ScriptStart, "Test Right Arm" )]</li>
    <li>ok I will start the test now [ControlCommand( "Script Manager", ScriptStart, "Test Right Arm" )]</li>
    <li>running diagnostics now [ControlCommand( "Script Manager", ScriptStart, "Test Right Arm" )]</li>
    <li>initiating right arm test [ControlCommand( "Script Manager", ScriptStart, "Test Right Arm" )]</li>
  </random>
</template>
</category>

<category><pattern>TEST YOUR TORSO</pattern>
<template>
  <random>
    <li>ok initializing test [ControlCommand( "Script Manager", ScriptStart, "Test Torso" )]</li>
    <li>ok I will start the test now [ControlCommand( "Script Manager", ScriptStart, "Test Torso" )]</li>
    <li>running diagnostics now [ControlCommand( "Script Manager", ScriptStart, "Test Torso" )]</li>
    <li>initiating torso test [ControlCommand( "Script Manager", ScriptStart, "Test Torso" )]</li>
  </random>
</template>
</category>

<category><pattern>DETECT MOVEMENT FRONT</pattern>
<template>
  <random>
    <li>ok initializing movement detection [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Front" )]</li>
    <li>ok I will start the sensor now [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Front" )]</li>
    <li>starting movement detection now [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Front" )]</li>
    <li>initiating movement detection [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Front" )]</li>
  </random>
</template>
</category>
<category><pattern>STAFF DETECTING MOVEMENT FRONT</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STEP DETECTING MOVEMENT FRONT</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STEPS DETECTING MOVEMENT FRONT</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STEP DETECTING MOVEMENT FROM</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STOP DETECTING MOVEMENT FRONT</pattern>
<template>
  <random>
    <li>ok initializing movement detection [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Front" )]</li>
    <li>ok I will start the sensor now [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Front" )]</li>
    <li>starting movement detection now [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Front" )]</li>
    <li>initiating movement detection [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Front" )]</li>
  </random>
</template>
</category>

<category><pattern>DETECT MOVEMENT REAR</pattern>
<template>
  <random>
    <li>ok initializing movement detection [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Rear" )]</li>
    <li>ok I will start the sensor now [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Rear" )]</li>
    <li>starting movement detection now [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Rear" )]</li>
    <li>initiating movement detection [ControlCommand( "Script Manager", ScriptStart, "PIR Detect Rear" )]</li>
  </random>
</template>
</category>
<category><pattern>STAFF DETECTING MOVEMENT REAR</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STEP DETECTING MOVEMENT REAR</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STEPS DETECTING MOVEMENT REAR</pattern>
<template><srai>STOP DETECTING MOVEMENT FRONT</srai></template>
</category>
<category><pattern>STOP DETECTING MOVEMENT REAR</pattern>
<template>
  <random>
    <li>ok initializing movement detection [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Rear" )]</li>
    <li>ok I will start the sensor now [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Rear" )]</li>
    <li>starting movement detection now [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Rear" )]</li>
    <li>initiating movement detection [ControlCommand( "Script Manager", ScriptStop, "PIR Detect Rear" )]</li>
  </random>
</template>
</category>

<category><pattern>SHAKE HANDS</pattern>
<template>
  [ControlCommand( "Script Manager", ScriptStart, "Shake_Hands" )]
</template>
</category>

<category><pattern>_ ROOM TEMPERATURE</pattern>
<template>
  [ControlCommand( "Script Manager", ScriptStart, "Room_Temp" )]
</template>
</category>

<category><pattern>_ LIGHT LEVEL</pattern>
<template>
  [ControlCommand( "Script Manager", ScriptStart, "Room_Light" )]
</template>
</category>

<category><pattern>LOOK * HANDS</pattern>
<template>
  [ControlCommand( "AutoPos Board 0", AutoPositionAction, "Look_Hands" )]
</template>
</category>

<category><pattern>CLOSE YOUR LEFT HAND</pattern>
<template>
  <random>
    <li>ok closing my left hand [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Close" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Close" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Close" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Close" )]</li>
  </random>
</template>
</category>

<category><pattern>CLOSE YOUR RIGHT HAND</pattern>
<template>
  <random>
    <li>ok closing my right hand [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Close" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Close" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Close" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Close" )]</li>
  </random>
</template>
</category>

<category><pattern>OPEN YOUR LEFT HAND</pattern>
<template>
  <random>
    <li>ok opening my left hand [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Open" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Open" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Open" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Hand_Open" )]</li>
  </random>
</template>
</category>

<category><pattern>OPEN YOUR RIGHT HAND</pattern>
<template>
  <random>
    <li>ok opening my right hand [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Open" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Open" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Open" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Hand_Open" )]</li>
  </random>
</template>
</category>

<category><pattern>FLEX YOUR RIGHT ARM</pattern>
<template>
  <random>
    <li>ok bending my right elbow [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Flex" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Flex" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Flex" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Flex" )]</li>
  </random>
</template>
</category>

<category><pattern>EXTEND YOUR RIGHT ARM</pattern>
<template>
  <random>
    <li>ok straightening my arm [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Extend" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Extend" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Extend" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Extend" )]</li>
  </random>
</template>
</category>

<category><pattern>FLEX YOUR LEFT ARM</pattern>
<template>
  <random>
    <li>ok bending my left elbow [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Flex" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Flex" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Flex" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Flex" )]</li>
  </random>
</template>
</category>

<category><pattern>EXTEND YOUR LEFT ARM</pattern>
<template>
  <random>
    <li>ok straightening my arm [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Extend" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Extend" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Extend" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Extend" )]</li>
  </random>
</template>
</category>

<category><pattern>BRING YOUR LEFT ARM _</pattern>
<template>
  <random>
    <li>ok left forward flexion [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Fwd_Flex" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Fwd_Flex" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Fwd_Flex" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Fwd_Flex" )]</li>
  </random>
</template>
</category>

<category><pattern>PUT YOUR LEFT ARM BACK</pattern>
<template>
  <random>
    <li>ok left arm extension [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Ext" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Ext" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Ext" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Ext" )]</li>
  </random>
</template>
</category>

<category><pattern>BRING YOUR RIGHT ARM _</pattern>
<template>
  <random>
    <li>ok right forward flexion [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Fwd_Flex" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Fwd_Flex" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Fwd_Flex" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Fwd_Flex" )]</li>
  </random>
</template>
</category>

<category><pattern>PUT YOUR RIGHT ARM BACK</pattern>
<template>
  <random>
    <li>ok right arm extension [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Ext" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Ext" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Ext" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Ext" )]</li>
  </random>
</template>
</category>

<category><pattern>RAISE YOUR LEFT ARM</pattern>
<template>
  <random>
    <li>ok left arm abduction [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Abd" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Abd" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Abd" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Abd" )]</li>
  </random>
</template>
</category>

<category><pattern>LOWER YOUR LEFT ARM</pattern>
<template>
  <random>
    <li>ok right arm adduction [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
  </random>
</template>
</category>

<category><pattern>RAISE YOUR RIGHT ARM</pattern>
<template>
  <random>
    <li>ok right arm abduction [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Abd" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Abd" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Abd" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Abd" )]</li>
  </random>
</template>
</category>

<category><pattern>LOWER YOUR RIGHT ARM</pattern>
<template>
  <random>
    <li>ok right arm adduction [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Add" )]</li>
  </random>
</template>
</category>

<category><pattern>ROTATE YOUR LEFT ARM IN</pattern>
<template>
  <random>
    <li>ok left arm internal rotation [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Int" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Int" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Int" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Int" )]</li>
  </random>
</template>
</category>

<category><pattern>ROTATE YOUR LEFT ARM OUT</pattern>
<template>
  <random>
    <li>ok left arm external rotation [ControlCommand( "Script Manager", ScriptStart,"Left_Arm_Rot_Ext" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Ext" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Ext" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Arm_Rot_Ext" )]</li>
  </random>
</template>
</category>

<category><pattern>ROTATE YOUR RIGHT ARM IN</pattern>
<template>
  <random>
    <li>ok right arm internal rotation [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Int" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Int" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Int" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Int" )]</li>
  </random>
</template>
</category>

<category><pattern>ROTATE YOUR RIGHT ARM OUT</pattern>
<template>
  <random>
    <li>ok right arm external rotation [ControlCommand( "Script Manager", ScriptStart,"Right_Arm_Rot_Ext" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Ext" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Ext" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Arm_Rot_Ext" )]</li>
  </random>
</template>
</category>

<category><pattern>LEAN TO THE LEFT</pattern>
<template>
  <random>
    <li>ok left side bending [ControlCommand( "Script Manager", ScriptStart,"Torso_SB_Left" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Left" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Left" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Left" )]</li>
  </random>
</template>
</category>

<category><pattern>LEAN TO THE RIGHT</pattern>
<template>
  <random>
    <li>ok right side bending [ControlCommand( "Script Manager", ScriptStart,"Torso_SB_Right" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Right" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Right" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Torso_SB_Right" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN TO THE LEFT</pattern>
<template>
  <random>
    <li>ok left trunk rotation [ControlCommand( "Script Manager", ScriptStart,"Torso_Rot_Left" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Left" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Left" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Left" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN TO THE RIGHT</pattern>
<template>
  <random>
    <li>ok right trunk rotation [ControlCommand( "Script Manager", ScriptStart,"Torso_Rot_Right" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Right" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Right" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Torso_Rot_Right" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN YOUR LEFT WRIST IN</pattern>
<template>
  <random>
    <li>ok left wrist pronation [ControlCommand( "Script Manager", ScriptStart,"Left_Wrist_Pro" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Pro" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Pro" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Pro" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN YOUR LEFT WRIST OUT</pattern>
<template>
  <random>
    <li>ok left wrist pronation [ControlCommand( "Script Manager", ScriptStart,"Left_Wrist_Sup" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Sup" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Sup" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Left_Wrist_Sup" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN YOUR RIGHT WRIST IN</pattern>
<template>
  <random>
    <li>ok right wrist pronation [ControlCommand( "Script Manager", ScriptStart,"Right_Wrist_Pro" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Pro" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Pro" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Pro" )]</li>
  </random>
</template>
</category>

<category><pattern>TURN YOUR RIGHT WRIST OUT</pattern>
<template>
  <random>
    <li>ok right wrist pronation [ControlCommand( "Script Manager", ScriptStart,"Right_Wrist_Sup" )]</li>
    <li>ok [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Sup" )]</li>
    <li>here you go [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Sup" )]</li>
    <li>like this [ControlCommand( "Script Manager", ScriptStart, "Right_Wrist_Sup" )]</li>
  </random>
</template>
</category>

<category><pattern>SURRENDER</pattern>
<template>
  <random>
    <li>ok I surrender [ControlCommand( "AutoPos Board 0", AutoPositionFrame, "Surrender",5,5,1 )]</li>
  </random>
</template>
</category>

</aiml>

Does this help?

#155  

As Ben Javari from Short Circuit would say at times like this, "I am standing here beside myself"

So with the command control as the response, is that spoken though?

#156  

@Mayaway, What advantage is it doing it that way as compaired to doing that in the Voice Recognition control in ARC?

#157  

WOW, that works in training too! @mayaway your are a genius!

Putting that knowledge in simple terms (because I like simple), for training, you can put ARC code commands in [ ] brackets and ARC will execute it! And you can add words for Pandorbot to say outside the [ ] brackets! YEA!

#158  

@mayaway - I came from MRL too so I remember editing the ProgramAB aiml files. I like your implementation and didn't realize I could use the ControlCommands.

Right now I am using the voice recognition control as I like the way it is laid out and I don't enjoy long scripts. I guess this way allows you BingSpeech which is a really good recognition service.

Thanks for sharing.

#159  

@all Thanks! @bhouston I think the advantage is that you have all the resources of the Chatbot so you can have a conversation about anything. If you happen to issue a command that you have coded for in your custom aiml file, then your InMoov will respond verbally and execute the command or script you have pointed to, so you get the best of both worlds.

@Justin I am also interested in getting my InMoov to learn and remember things for later recall - from session to session. I'm aware there are ways to read/write to ARC files sequentially on a local drive (or networked drive). I've not yet investigated any automated learning with the Pandorabot, other than that page where you may type in questions and modify the responses.

#160  

Has anyone ever set up a local offline pandorabot/aiml server? That may solve the lag problems @holy_1 has.

There were some ancient (2006) articles about how to do it, but the info and resources have all but disappeared.