Initial servo position after new start of MRL

My torso.topStom potentiometer is not at it's perfect middle position but very hard to get to it for adjustment. So I thought I could compensate that with a mapping that has a slight offset to one side.

These are my settings:

Input MAP: min 80, max 100
Output MAP: min 66, max 86

When starting up MRL my topStom however leans heavy to it's left side. When I look at the servo tab of topStom the position is shown as 90 degrees. Moving the slider manually to 89 and back to 90 the servo jumps in and moves the upper body to the wanted upright position.

Adding an additional i01.torso.topStom.moveTo(90) as the last command in my startup script gets ignored by the robot.

Can't see at the moment how to fix this in my torso startup script

def startTorso():

  i01.startTorso(rightPort)
  i01.torso.topStom.map(80,100,66,86)
  i01.torso.topStom.setMaxVelocity(13)
  i01.torso.topStom.setVelocity(5)
  i01.torso.topStom.setRest(90)

  i01.torso.midStom.map(30,150,70,110)
  i01.torso.midStom.setMaxVelocity(13)
  i01.torso.midStom.setVelocity(5)
  i01.torso.midStom.setInverted(True)
  i01.torso.midStom.setRest(90)

  i01.torso.enableAutoDisable(True)
 
moz4r's picture

Hi juerg, just put startTorso

Hi juerg, just put startTorso at the end, after you mapped. Servo position is now recorded by mrl json at shutdown, this should worky :

https://github.com/MyRobotLab/inmoov/blob/develop/InMoov/skeleton/torso....

 

 

juerg's picture

hi moz4r, quick reply and

hi moz4r, quick reply and it's WORKY!! thanks

harland's picture

another way

I had the same problem a while back but I solved it with electronics. You can add a resistor to either side of the pot wires, not the wiper wire. You have to figure out the right value of the resistor..  This offsets where the servo sees the center of the pot resistor. With this fix you don't have to remove the hard to get to pot. It has worked for Azul.