#file : InMoov2Torso with voice control.py
# this will run with versions of MRL NIXIE
# a very minimal script for InMoov
# although this script is very short you can still
# do voice control of torso servos
# InMoov torso default Arduino pins:
# topStom pin 27
# midStom pin 28
# lowStom pin 29
i01_left = runtime.start('i01.left', 'Arduino')
# Change the COM port according to yours:
i01_left.connect("COM10")
i01 = Runtime.start("i01", "InMoov2")
i01.startEar()
#################
i01_mouth = runtime.create('i01.mouth', 'MarySpeech')
i01_mouth.setVoice('Mark')
i01.startMouth()
##############
i01_torso = Runtime.start("i01.torso", "InMoov2Torso")
# Tweaking defaults settings of torso servos
# Servo Config : i01_torso_topStom
# sets initial position of servo before moving
i01_torso_topStom.setPosition(90)
i01_torso_topStom.map(60.0,120.0,60.0,120.0)
i01_torso_topStom.setInverted(False)
i01_torso_topStom.setSpeed(50.0)
i01_torso_topStom.setRest(90.0)
i01_torso_topStom.setPin(27)
i01_torso_topStom.setAutoDisable(True)
# Servo Config : i01_torso_midStom
# sets initial position of servo before moving
i01_torso_midStom.setPosition(90)
i01_torso_midStom.map(0.0,180.0,0.0,180.0)
i01_torso_midStom.setInverted(False)
i01_torso_midStom.setSpeed(50.0)
i01_torso_midStom.setRest(90.0)
i01_torso_midStom.setPin(28)
i01_torso_midStom.setAutoDisable(True)
# Servo Config : i01_torso_lowStom
# sets initial position of servo before moving
i01_torso_lowStom.setPosition(90)
i01_torso_lowStom.map(0.0,180.0,0.0,180.0)
i01_torso_lowStom.setInverted(False)
i01_torso_lowStom.setSpeed(50.0)
i01_torso_lowStom.setRest(90.0)
i01_torso_lowStom.setPin(29)
i01_torso_lowStom.setAutoDisable(True)
##############
i01_left.attach("i01.torso.topStom")
i01_left.attach("i01.torso.midStom")
i01_left.attach("i01.torso.lowStom")
##############
i01.startChatBot()
##############
# verbal commands set in the chatbot
##############
# HELP
# HELP GESTURES
# SHOW YOUR BACK. you respond (show it anyway)
# DEMONSTRATE YOUR BALANCE.
# SHOW YOUR MUSCLES.
def balance():
#i01.startedGesture()
i01.setHeadSpeed(59,59)
i01.setArmSpeed("left",100.0,43.0,59,59)
i01.setArmSpeed("right",22.0,43.0,22.0,43.0)
i01.setHandSpeed("left",43.0,43.0,43.0,43.0,43.0,43.0)
i01.setHandSpeed("right",43.0,43.0,43.0,43.0,43.0,43.0)
i01.setTorsoSpeed(59,43.0,100.0)
i01.moveHead(79,100,82,78,65)
i01.moveArm("left",5,84,28,15)
i01.moveArm("right",5,82,28,15)
i01.moveHand("left",92,33,37,71,66,25)
i01.moveHand("right",81,66,82,60,105,113)
i01.moveTorso(90,90,90)
sleep(4)
i01.moveHead(80,86,82,78,65)
i01.moveArm("left",75,123,52,45)
i01.moveArm("right",75,123,52,45)
i01.moveHand("left",180,180,180,180,180,30)
i01.moveHand("right",180,180,180,180,180,170)
i01.moveTorso(90,90,90)
sleep(3)
i01.moveHead(16,86,82,78,65)
i01.moveArm("left",75,97,52,45)
i01.moveArm("right",75,76,52,45)
i01.moveHand("left",180,180,180,180,180,30)
i01.moveHand("right",180,180,180,180,180,170)
i01.moveTorso(161,90,90)
sleep(2.5)
i01.setArmSpeed("left",100.0,43.0,59,59)
i01.setArmSpeed("right",100.0,43.0,59,59)
i01.moveHead(70,120,82,78,65)
i01.moveArm("left",65,119,52,45)
i01.moveArm("right",75,76,52,45)
i01.moveHand("left",180,180,180,180,180,30)
i01.moveHand("right",180,180,180,180,180,170)
i01.moveTorso(20,90,90)
sleep(3)
i01.moveHead(80,151,82,78,65)
i01.moveArm("left",75,97,52,45)
i01.moveArm("right",21,76,52,45)
i01.moveHand("left",180,180,180,180,180,30)
i01.moveHand("right",180,180,180,180,180,170)
i01.moveTorso(20,90,90)
sleep(0.5)
i01.moveHead(16,11,85,85,53)
i01.moveArm("left",60,67,67,40)
i01.moveArm("right",5,116,10,28)
i01.moveHand("left",143,69,48,2,2,23)
i01.moveHand("right",89,60,78,43,68,163)
i01.moveTorso(161,62,92)
sleep(6)
i01.setArmSpeed("left",100.0,59,100.0,100.0)
i01.setArmSpeed("right",100.0,43.0,59,59)
i01.setHandSpeed("left",43.0,43.0,43.0,43.0,43.0,43.0)
i01.setHandSpeed("right",43.0,43.0,43.0,43.0,43.0,43.0)
i01.setTorsoSpeed(59,43.0,100.0)
i01.moveHead(23,163,85,85,66)
i01.moveArm("left",5,90,30,18)
i01.moveArm("right",83,58,50,30)
i01.moveHand("left",2,2,72,110,140,32)
i01.moveHand("right",169,0,72,101,119,173)
i01.moveTorso(31,112,90)
sleep(6)
i01.finishedGesture()
relax()