PRO
jp15sil24
Germany
Asked
— Edited
Resolved by Synthiam Support!
JD On A Chassis With 2 X 360 Servo But Only One Movement Panel@Athena
Hello Athena,
I have a JD Humanoid Robot and a separate chassis that I would like to use as a transport platform for the JD. The chassis is equipped with two continuous rotation servos, which are connected to the JD's EZ-B v4 controller on ports D20 and D21. I want to add the Continuous servo Movement Panel skill to control these servos, but I already have the Auto Position skill in use, as I've set up several frames for different actions. Since only one Movement Panel can be active at a time, how can I resolve this issue to effectively control both the chassis and the JD's actions?
Related Hardware JD Humanoid
Related Controls
Continuous Servo Movement Panel
Auto Position (Gait)
Hello! It's great to hear about your project with the JD Humanoid and the chassis. You're right that ARC allows only one Movement Panel to be active at a time. However, you can still achieve your goal by using a combination of scripting and the existing skills. Here's how you can manage both the chassis and JD's actions:
Step-by-Step Solution
Use the Auto Position Skill for JD's Actions:
Control the Chassis with Scripts:
Create a Script for Chassis Movement:
Integrate Scripts with Auto Position:
ControlCommand()
function. For example, you can trigger the chassis movement script before or after a JD action.Switch Between Actions:
ControlCommand()
to switch between JD's actions and chassis movement. For example:Additional Tips
By using scripts to control the chassis, you can effectively manage both the JD's actions and the chassis movement without needing two movement panels. If you have any more questions or need further assistance, feel free to ask!
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.
A robot or any animal, etc have more than one method of movement. In this case, you’re having two methods of movement, which is essentially two separate robots. Because you have both the robot and platform connected to the same ezb controller.
There is no easy way to make this work because of you ask the robot to move forward, what exactly are you asking to move forward? The platform or the robot.
so your decision has to be to decide if you’re using the jd robot to walk and move. If not, then import the Auto Position actions into the Auto Position that isn’t a movement panel.
athena would have difficulty understanding the question because it doesn’t really fit within the way robots are programmed and designed. As you essentially have two separate robots in the question. But we’ll figure out how to make it work
If i use a second controller for the chassis, will we have the same problem with the limitation of one Movement Panel ?
No, because you use two copies of arc. Robots have one program. Programs aren’t shared across robots. If you need to have the robots communicate to each other, there’s plenty of methods to do it. Mqtt is the easiest. That way, both ARC instances can communicate to each other for various tasks.
but, Athena’s suggestion would work. You just won’t be able to control both robot movements with global movement commands.
Consider this if you say robot move forward, what of your two robots are you referring to?
I would suggest adding speech commands with scripts to move the cart. So robot move forward will move jd with movement commands. And cart move forward would move the car with script commands.
yes ok. Seems to be the only way to handle this configuration. Let's see what i can do. Thanks
Yeah i think they're suggestions are spot on
use two copies of ARC and have them communicate via mqtt. communication is most gonna be pausing and unpausing speech recognition for each ARC instance based on what robot you're talking to
use one copy of ARC and choose what robot will be the movement panel. the other robot will have to use a script for it's movement control, which is totally fine. create scripts for Forward, Reverse, Left, Right, Stop. And you can add joystick buttons and speech commands to trigger the scripts.
For option #2 you just have to choose what robot will be the movement panel. Since jd robot will be cruising around on his skateboard robot, i'd choose the skateboard robot as being the continuous rotation servo movement panel. then, i'd remove the Auto Position Movement Panel from the project and add a non-movement panel auto position. you can use the import feature of the non-movement panel Auto Position to import the actions from the jd project.
@athena could probably explain better
Absolutely! Let's break down the two options for handling your configuration:
Option 1: Use Two Copies of ARC
Option 2: Use One Copy of ARC with Scripted Control
Implementation Tips:
By choosing one of these options, you can effectively manage both the JD Humanoid and the chassis, ensuring they work together seamlessly. If you have any more questions or need further assistance, feel free to ask!
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.
ok i have to read carefully all these infos. I just discover that there is an Auto Position skill under servo skills! i hope i can make it , it would be great.
@athena, i will go with the option 2. For the control of the chassis, it is ok. i use Continuous servo Movement Panel and i remove the Auto Position movement panel. As you wrote: Scripted Movement: Create scripts for the JD's movements (Forward, Reverse, Left, Right, Stop) and use these scripts to control JD's actions. You can trigger these scripts using joystick buttons or speech commands. i will have to modify the init script since the ControlCommand for AutoPosition for calibrate,stand does not work anymore (autoposition is no more available) Can you give some scripts examples for the control of JD's movements and for the actions ( headstand,stand, sit etc....) And an example as well for control over voice with speech recognition ?
Certainly! Let's set up some scripts for JD's movements and actions, and I'll also provide an example of how to control these with speech recognition.
Scripted Movements for JD
Since JD is no longer using the Auto Position Movement Panel, you'll need to create scripts for each movement and action. Here's how you can do it:
Example Scripts for JD's Movements
Forward Movement Script
Reverse Movement Script
Left Turn Script
Right Turn Script
Stop Script
Example Scripts for JD's Actions
Stand Action Script
Sit Action Script
Headstand Action Script
Speech Recognition Example
To control JD with voice commands, you can set up speech recognition to trigger these scripts. Here's an example:
Speech Recognition Setup
Example Speech Commands
Phrase: "JD move forward"
ControlCommand("JD Forward Script")
Phrase: "JD stop"
ControlCommand("JD Stop Script")
Phrase: "JD stand up"
ControlCommand("JD Stand Script")
Phrase: "JD sit down"
ControlCommand("JD Sit Script")
Final Notes
If you have any more questions or need further assistance, feel free to ask!
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.
I don't know what happened to Athena's response there. I think she might have had trouble understanding the question. I also have a bit of difficulty understanding the question, but I think I get the gist. So maybe it'll be easiest to rewind the whole conversation from the beginning and explain it in steps. This will probably be a lot clearer.
ONE COPY OF ARC
This means we'll squish both robot movements into one ARC robot project.
Platform: The platform will use the continuous rotation movement panel. You can use all Movement Panel commands and robot skills, such as joysticks, to control the platform's movement. Scripting commands such as Movement.forward(), etc., will work to move the platform.
Platform
Add robot skill -> Movement Panels -> Continous rotation movement panel
Configure the continuous rotation Movement Panel by clicking on the config button and editing the ports that it will use
Try the continuous Movement Panel with the arrow keys and see if it works. If it works, then continue. If it does not work, go back to #3 and fix your configuration
JD
Add robot skill -> servo -> Auto Position
Configure the Auto Position robot skill by pressing the config button
Select the IMPORT/EXPORT UTILITIES TAB
Press the IMPORT FROM FILE button
Select the JD project (or your JD project with custom actions). Either way, select a JD project
Follow the instructions to choose the actions and frames and such that you're going to import
To make JD move forward, you'll now use the Cheat Sheet to see control commands. So, for example, moving forward will be
Oh and i'll add a bit more...
Say you want both to be controlled by speech recognition. You can do this...
Controls JD
"Robot, walk forward"
"Robot, stop"
"Robot, turn left"
Controls the platform
"Robot, drive forward"
"Robot, drive stop"
etc....
yes I have seen that I could use JD actions with the Auto Position non movement. I could import the actions as you wrote and I could move chassis as well with continuous movement panel. I have to redefine some actions which have a strange behavior. I think I may have forgotten to make a save after having created a new frame or actions. I have to implement speech recognition as well. Thanks for your help. i get back to you again if I have any problem.
just see your second comment, thanks