A little jme remap worked ... the full script is here - I "exported" most of it ... there is a button for that .. https://github.com/MyRobotLab/pyrobotlab/blob/master/home/GroG/dual_test.py


Opposite Land ... of course ... 50% right to get the same direction and of course real bot is in opposite land, for both servos :P

Draft PR is here - https://github.com/MyRobotLab/myrobotlab/pull/816/files


3 years 2 months ago

Hey, it looks like it's pretty worky! I like it when things get WORKY WORKY!

I tried last week but couldn't import the poses into the sequence window. I guess that should be solved now.

I had noticed a problem when trying to move the SPEED slider on some servos in the ServoMoxer. The SPEED slider would flicker and wouldn't hold it's position.

Another issue is that servos in InMoov2 are supposed to set as autoDisable by default, but odly some aren't set properly. That could cause major burnouts on non virtual servos.

The flickering occurs because of a common design problem.
Potentially, it can happen to almost any data you want control over.

I'll sum it up with big scary letters so it burns into everyones mind ...
There are always 2 views of remote data, a desired state, and a reported state !

Problems occur when the desired and reported state are tied to the same control.  You will get into situations where you are fighting with the control to get it to one value, while somewhere its being updated by something else to be a different value.  Bouncing, Flickering, going crazy ... all these things happen when a control is connected to desired & reported states..

Just confirmed this is the problem with the speed control

This servo was @ 5 deg/sec ... and I changed the speed in a python script to 307.

  • The read only text got updated to 307 YAY !!!
  • and so did the Speed bar BOOOO !!!

The speed bar shouldn't be updated ... it should have been left way back at 5 deg/sec

Astro did a splendid job of separating "reported" position of servo from "desired" position.
Speed would be the same way if reported speed updates did not affect the speed bar
This can easily be done...

But wait .. there's more to this !

If the reported data is way way different from where your last "desired" position is - you have this huge gap. I think your familiar with this problem too :) it can be an arm breaker ... :(

How do you solve it ?
My suggestion would be to have a little switch that detaches the ui controls from sending control info, so the controls can be manually moved to a good location ... or a button to press where it automagically goes to the last reported position, without sending control commands - then re-enables itself ..
sort of like a "refresh" button


3 years 2 months ago

updated Adafruit16CServoDriver controller - fixed enable/disable for i2c and servos