OK, since no one has any suggestons about actually changing the PID settings from the tracker.pid tab, or specifics on how to do it with the 1.0.2000 build via a Python script I've tabled getting tracking working with the latest build for now and will do some tests with the older versions of MRL that Gael mentions for InMoov and tracking or at least as close as I can get to those verions.
But I have another issue again with 1.0.2000 and setting the min / max values for the servo range.
I have a simple script that creates and starts an arduino service and then creates and starts a single servo service.
I set the pin for the servo on that servo service, and setMinMax(20, 170) setRest(90) and then attach('arduino1', pin number) and I can move the servo just fine, but min and max show 0, and 180 in the UI.
For good measure I slow the velocity using setVelocity() and that works too. I can use moveTo() to move the servo. And finally the rest() method takes me back to 90..
I use getMin() and getMax() to get the Min/Max values and they are still 0 and 180 respectively.
Edit: 4/3/17 7:53PM ET. - I just noticed that in the WebGUI that the servo service there shows the 20, 170 min/max value that I set with setMinMax, but the UI for MRL does NOT so that may be part of the confusion. Also, in the WebUI as in the stand alone MRL UI the slider still goes from 0 to 180. So looking at the source code for tracker.java I see that the setMinMax() method makes a call to the mapper() method. So does that mean that internally the new limit for Min/Max has been "mapped" to the 0 - 180 representation? I'll run some tests on a non-critical servo to verify. If that is the case then there appears to be some confusion between the WebUI reporting the values set with setMinMax() and what the getMin and getMax methods are returning in the script.
Edit2: 8:12 PM ET - Tried a test in the script after setting min/max but the servo appears to ignore the change and moves its full rotation from 0 - 180 no matter what min/max I'm setting. So then I just started an arduino service and a servo service from the runtime tab. Noted the 0, 90 and 180 position on the servo by using the slider in the UI. Then I change min to 20 and max to 100 clicked update. The UI continued to show my new values. Ran the slider from 90 to 180 and the servo moved to the 180 position. Then moved the slider to 0 and the servo went to the 0 position. I believe that the servo should have only moved to the physical 100 position and physical 20 position, so unless I'm missing something which is likely it looks like Min/Max setting is either not being properly mapped or is being ignored. Is there something I'm missing here?
So what am I missing as far as actually getting the min/max values to set for a servo. This is critical especially for the jaw servo in the InMoov head as you need to restrict the motion to prevent accidentally breaking parts.
What am I missing for setting the Min/Max for the Servo service? Is this a bug in the 1.0.2000 version, or a case of documentation that I haven't found, or hasn't caught up with recent code changes?