Javadoc link

User interface is worky in this pr - 
"sub panels" how to get service page parts showing in other service pages is worky, as you might be able to tell by the set of servos here.
Pose seems to work, I highlight it, press move and it moves ... but I don't really have details on how Sequence or Sequence content is supposed to work.

Example code (from branch develop):
# TODO: Implement this script fpr
servomixer = runtime.start("servomixer","ServoMixer")...


2 years 8 months ago

Hello Grog!
I have not been with this for a long time and I just saw that you returned to this topic. I was waiting if it was already finished. I only designed the interface as I understood it to work.

What I understood is that  Sequences are a group of poses that can have a Speak, Delay and Blocking values between them. But I don't know how to program that.

You can edit the Sequence by adding and removing poses from the list and Save with the same name or save a new sequence by putting a different name in the field to the left of Save button.

I put the X to remove the pose from the list or the arrows to change the order of the selected one.

I only left you the design of what I understood was the logic of the graphical interface. If it is not understood, I will review it again and find a way to make the concept easier to understand.
But I don't know how to do the programming part, I suppose it is something very similar to the pose.


Now that I see it again, the button to add the current pose to the list is not easy to understand.

Saving a new sequence or overwrite the current is not understood either, I wanted to make it the most minimalist, but it is confusing.

The way I am now thinking of displaying the parameters (Speak, Delay, Blocking) of each pose, does not seem to be the best way to display and edit either.

I'm going to have to think all this over again.

Hey good to hear from you.  Hope you are doing ok.
I guessed from the nice interface you made close to what the functionality which you described.
I'll start implementing it and we'll see where it goes.

Hi Gorg!

All good over here, I hope all of you are well.

I was busy with other things and left the Terminator sleeping all this time. Entertaining with a resin 3D printer and everything that can be done, I am thinking of improving some parts of the Terminator with that to have more precision in the movements of the fingers for example.

I have to download the latest version and catch up on all the progress you guys made, I don't even remember which version I was using anymore, I have too many "dev" directories with different versions.


I'm thinking about "Sequence content", maybe something like this, but I don't know if that scroll is comfortable on a touchscreen, I have to try it.

You select the pose from the list and you can edit speak, delay and blocking below. This also limits the length of the pose name and the amount of text visible in the speak field, but it would only be a visual limitation, the field can contain more characters. This is just photoshop to see if it works for you before trying to put it together in html.

Tell me what you think.


Attributes in general should have units as part of the display .. 8 seconds I assume .. - the resolution is in milliseconds so ... seconds I suspect is more common, with 0.5 etc for fractional delays

I don't understand "blocking" .. is that blocking on finish of move ?  If I add 8 seconds and don't block what does that do ?

is Delay the delay from executing current pose from previous ?

oh I don't know

I did it according to what I remember that Kwatters had told me that the sequences had to have that, speak, delay and blocking.
I suppose that blocking prevents the execution of another pose at the same time, but I don't know.
A pose has the values ​​of all servos (I think), so it would not be possible to execute 2 poses at the same time. So I don't know what that blocking is for.
Will it be to speak after finishing the pose or to speak at the same time?
I don't know what the logic is. Kwatters or Gael may have a better idea of how it should work.

"should have units"
:) I knew it, I knew it, I knew you were going to tell me that ha ha.
The space is really very tight, I did not know how to put it. But I think seconds is friendlier and the number is shorter by being able to put 8.5 instead of 85000, it is more intuitive without counting the number of zeros. If it is for the separation of one pose from another, I think a resolution of seconds is enough.

What do you think if I put seconds next to the field but not on the grid?

In this option I am increasing the height of the 3 columns (Pose, Sequence and Sequence content) and I have more space for the Speak text and I add a Save button to save those changes in the edited item, I don't know if this "Save" is necessary or is updated when the focus changes.

What if I want to add sentences in the sequence that do not have poses?
like this
speak: Hello (delay 4)
speak: How are you (delay 10)
pose: RHandUp speak: Hasta la vista baby

I should use a "hold" pose that doesn't move any servo, but instead holds the current pose until there is another pose. Or repeat the last pose with a new text?


I like your layout as usual, you always do great work.
I was going to recommend use just s instead of seconds ... I think its probably ubiquitous enough, but I like your current layout better anway.

One thing to know - There will be only a ServoMixer directory, not a Pose and a Sequence directory ..
The files will be in the same directory, but post files will have .pose extentions and sequence .seq 
I'm very against having them in seperate directories, its much less portable because of the file references within the .seq files .  Its also simpler. You can dump a friends directory into yours and it will have everything sorted correctly, and potentially worky...

Your idea is good about speak I think, but delay blocking still need to be figured out

Yeah .. maybe kwatters or gael can give info about the blocking/delay part, but there is enough here to keep me busy for a while ;)


Example configuration (from branch develop):
listeners: null
peers: null
type: ServoMixer