How to add the Custom Movement Panel robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Movement Panels category tab.
- Press the Custom Movement Panel icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the Custom Movement Panel robot skill.
How to use the Custom Movement Panel robot skill
Use this skill if your robot requires a motor/movement controller that is not supported. You may assign scripts to the Forward, Backward, Left, Right, and Stop commands.Script functions are also available to you to obtain the currently selected speed of both Left and Right wheels. You may modify the speed using SetSpeed(value). The speed values may be altered by any joystick-style skill that affects speed, such as the Joystick in Mobile Interface or a physical joystick using the Joystick Control.
Main Window

1. Movement Panel
These buttons will allow you to control the directional movement of the entire robot (left, right, forward, reverse, and stop).
2. Speed Sliders
You can select the speed of the servos with these sliders. Be aware that the speed range is (0-255), and the default settings are 100% (255). These sliders can allow you to adjust for one motor is faster than the other.
Settings

1. Stop Script
This script will stop the moving robot. It will also activate when the Stop() script is called.
2. Direction Scripts
These scripts will control which way the robot will move when the movement panel buttons are pressed, or movement scripts are called [ex: Forward()].
3. Speed Changed Script
This script will execute when the speed sliders are adjusted in the main window or when the setSpeed() script is called.
How to Use Custom Movement Panel
1) Physically connect your robot to an EZ-B.
2) Add the Custom Movement Panel Skill to your ARC project (Project -> Add Skill -> Movement Panels -> Custom Movement Panel).
3) In the Settings menu, enter the scripts you would like to use for each of the directions and stop.
4) In the main window, press the direction buttons to move your robot. If the directions seem reversed, you can change your scripts.
Code Samples
Available EZ-script functions to obtain the current speed are:
GetSpeed( )
Returns the global Movement Speed value
Speed is between 0 and 255
The speed can be viewed in the Script Variable Viewer
Example: $x = GetSpeed()
GetSpeedLeft( )
Returns the global Movement Speed value of the Left wheel
Speed is between 0 and 255
The speed can be viewed in the Script Variable Viewer
Example: $x = GetSpeedLeft()
GetSpeedRight( )
Returns the global Movement Speed value of the Right wheel
Speed is between 0 and 255
The speed can be viewed in the Script Variable Viewer
Example: $x = GetSpeedRight()
Resources
Read more about how Movement Panels work here.
Related Tutorials
tutorial

The Robot Program Episode 006: Introducing ARC
This lesson introduces the EZ-Builder Robot Software by exploring options and describing features. At the end of this...
tutorial

Control More Than One Robot
How to control more than one robot in a single EZ-Builder project. This tutorial uses Revolution robots that depend on...
Related Robots
Related Questions
question

JSON To Mjbots Quad Robot Series
My robot wants to communicate via JSON commands (it is controlled via JSON from a browser) but I need to use ARC to talk...
question

Adjusting Encoders On A Roboclaw 2X15
Was wondering whos the resident expert here on using the Roboclaw Motor controllers here? I am aware that it operates...
question

HELP NEEDED FOR 21DOF EZB HUMANOID ROBOT
I have been struggling to assign servo positions to my robot. Old videos are either removed or are too old and doesnt...
question

Movement Panel With Servo Control
I have modified my 3-wheel robot by replacing the two 360-degree servos with a motor equipped with a differential. This...
Upgrade to ARC Pro
Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.
I found my issues. Yes was looking at wrong panel. Thanks
HI @Jeremie I wish I saw your post. I have been trying to do the same thing. Could you please share your ARC file if you still have it. I am knee deep in custom Movement Panel and I am not winning. There are so many factors to deal with when you try to use strafe movement versus regular movement.
I feel we are pushing the limits of the custom movement panel. I am using key control and custom Movement Panel but they don't all work together. We really need 2 joysticks and 2 movement panels or even better a new Movement Panel skill that is specifically designed for mecanum wheels.
Use the custom Movement Panel v2 that has roll left and roll right, which you can use for strafing: https://synthiam.com/Support/Skills/Movement-Panels/Custom-Movement-Panel-v2?id=21148
Hello! I am trying to get the custom Movement Panel to increment a servo each time the Left/Right button is pressed. I am using the code:
ServoUp(1.D3, 20)
When I push the button, it increments correctly. However when I push it a second time it does not respond. Is there there something I am missing that would allow it to continuously increment over and over again, continuously turning left? With its current funtionining, it is basically just activating a frame/gait control one-time movment.
EDIT: It works properly when movement is triggered from another skill. It seems its just the arrows that only allow one iteration
hi electrophuntronic
am gessing
:loop sleep(300) Servo(D3,1,180) sleep(300) goto(loop)
A Movement Panel is not meant for what you're trying to use it for. A Movement Panel is used to move a robot. You can't hit forward and then hit forward again. Think of it this way, if your robot is moving forward, and you press forward again, how can it possibly go more forward?
You can only go one direction at a time. If you are walking forward, you can't go any more forward because you're already walking forward.
Maybe you want to create an interface builder and add buttons incrementing the servo position each time the button is pressed.
@Nomad, your servo position command looks wrong. You have too many numbers. You would use that last number if you want to use random positions but you'd have to use the command ServoRandom (servoPort, lowPosition, highPosition)
Here is the proper example: Servo (servoPort, position)
I think DJ has hit it on the head. The OP will have to use a script and attach it to a button. His script looks correct to move one servo position value at a time using the command ServoUp(). To move the other way he'd attach a second script to a second button he's using and with the command: ServoDown (servoPort, count).@elektrophunktronic, I see in your code you are using .1 to start your statment inside the (). Are you using more then one EZB? If not you dont have to use that part of the command. EZ Script knows to look for only one EZB if you are connecting only to one. Now, if you have more then one connection then you would start numbering them in your command. 1. 2. 3. and so on. Please forgive if you already know this.
Good luck and have fun!!