RoboHappy
I have a question related to the Auto Position robot skill in ARC. I need a refresher on creating various arm movements, one servo at a time. I'm using the latest version of ARC and working on a robot project with two arms, each equipped with 5 EZ-Robot HDD servos (shoulder, arm, elbow, wrist, and gripper). These servos are connected to an SSC-32 controller, although I recently found out that it has been discontinued by LynxMotion.
Previously, I created test auto positions for each arm using EZ-Script. Now, I want to create more movements but face some challenges. I'm trying to move only one servo at a time to achieve the desired position for the entire arm. I recall something about using a "0" or "-1" for the servo position. Is that still correct? When creating a frame for each servo's position, should I set all other servos to 0 or -1 and save each position individually? Currently, I'm experiencing an issue where other servos seem to move slightly when I try to move just one servo on an arm. Additionally, I'm having trouble getting servos to consistently return to their proper positions.
I've already created a servo profile and a servo initialization script to assist with this process.
For Athena or DJ, I've included the test file I created: Cy_armsTesting.EZB
Related Hardware (view all EZB hardware)
Related Robot Skills (view all robot skills)

Thanks - good details. Below is a focused refresher and troubleshooting plan for using Auto Position (Gait) to move one servo at a time and to get consistent return-to-home behavior. I can’t open your attached .EZB file here, so please paste your Auto Position frames or initialization script text (or export & paste the .autoposition contents) if you want me to inspect them.
Useful links
Quick answers to your direct questions
Step-by-step: build single-servo frames (recommended safe workflow)
Why other servos might move slightly - checklist & fixes
Getting servos to reliably return to "home"
Notes:
If you used EZ-Script before
Extra tips for tidy Auto Position frames and actions
What I need from you to help more precisely
If you want, I’ll:
Next step? Please answer items 1-4 above and paste the initialization script (or the exported auto-position frames). I’ll walk through the exact changes to your frames/actions and give a ready-to-copy startup script.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Here is the InitServos script so far:
Servo(d20,80)#IR Servo Servo(d0,90)#Head U/D servo Servo(d1,110)#Head L/R Servo Servo(V4,90)#Rshoulder Servo(V5,80)#Rarm Servo(V6,76)#Relbow Servo(V7,68)#Rwrist Servo(V8,90)#Right gripper Servo(V11,90)#Lshoulder servo(V12,90)#Larm servo(V13,75)#Lelbow servo(V14,87)#Lwrist servo(V15,90)#Lgripper
sleep(1000) halt()
Id like to upload the servo profile and Auto Position files but they seem to be too large to send.
Thanks - good information. I converted your EZ-Script init into an ARC JavaScript startup script, and added troubleshooting tips and steps to make one-servo-at-a-time Auto Position frames behave reliably.
Important reminders before the script
Converted initialization (JavaScript)
Why set every servo explicitly at startup?
If you prefer using Auto Position to Jump-to-Home instead of scripting all ports:
Troubleshooting why other servos twitch when you move one
Mechanical coupling / gravity
Power / supply sag
Conflicting commands from other skills/scripts
Servo profile offsets or initialization timing
How to build single-servo frames (recommended safe workflow)
Using -1 vs 0
Additional improvements / reliability
Follow-ups I need to help further
If you paste your InitServos (your EZ-Script) - you already did - and confirm the v-port mapping I’ll:
Would you like:
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
How do I post my servo position file here, and how do I post my Auto Position file here ?
Good - here are simple, step-by-step ways to get your Auto Position and servo Profile data out of ARC so you can paste it into the forum. I can’t open attachments here, so please paste the file text or use the clipboard export options described below. If you paste large files, you can trim them to the relevant frames (Home + a few problem frames) or paste only the servo-port mapping and the frames you want reviewed.
How to paste it here:
If the file is huge, open it and copy only the <Frames> or the specific Action you want help with.
This is the quickest way to share just the frame values without exporting the whole file.
How to paste it:
Next step Which do you prefer to paste first - (A) the Home frame + 2 problem frames, or (B) the full .autoposition and servo profile text? Paste them here (or paste a link to a Gist/Pastebin), and I’ll review and give exact corrections.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Based on your question, I'm not 100% certain that the auto-position robot skill is what you want. The auto-position robot skill, as Athena mentioned, plays back animation frames. As described in the manual, you link frames to actions. The Auto Position plays the frames back as an action. It's preset servo positions. But you still can do it, but take some thought to think if it's the right solution.
Either way, you can create frames that have -1 values, not to move the servos. Your project is using 0's instead of -1's.
The manual for Auto Position states, as Athena mentioned
-1: don't move the servo. Just keep the last position 0: release the servo from holding its position
So if you're still going to use auto-position frames and control commands to call those frames, put -1s in the positions of servos you don't want to move. Just right-click the number, type -1, and press Enter.
The other option is to use the inverse-kinematics robot skill, which lets you specify a coordinate in 3D space and have the end-effector (gripper) move there.
Good summary from DJ - he’s right: Auto Position plays prerecorded poses (frames) and you should use -1 to skip servos you don’t want commanded. Below are safe, practical ways to fix your existing frames (bulk or manual), how to post the files/text so I can review them, and a few ready-to-use commands/scripts to help you get to a reliable home/init behavior.
A - GUI (safe, manual)
Notes: This is safest when you only have a few frames to fix.
B - Export / Edit / Reimport (bulk)
If you paste a frame or a small portion of the exported text here, I’ll suggest exact edits and show the lines to change.
C - Copy a frame to clipboard, edit text, create new
(If your Auto Position skill window title is different than "Auto Position", change the first ControlCommand parameter to the exact skill title.)
(Reminder: use lowercase v## d## constants, unquoted, and adjust sleep times to your servo speeds and load.)
https://synthiam.com/Support/Skills/Servo/Inverse-Kinematics?id=21839
It maps 3D coordinates to joint angles and may be better for precise arm movement rather than building lots of single-servo frames.
I can then:
Which option do you want to do now? Paste the frames or port map and I’ll give direct, copy/paste changes.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Hope this can help.
Just wanted to clarify some of your previos info, To recap, In my Auto Position setup, I have two arms, each with 5 EZB HDD Servos each. To move just one servo, I would set position of a servo (real-time edit off?) while the other 9 servos are set with a '-1' position. Then click save. Do this for each and every servo one at a time, each time the other servos must always be set to '-1'. I basically want to end up with a bunch of fames, each one to contain only one servo movement which I can then create whole actions later.