An advanced custom movement panel with more features than the regular panel
How to add the Custom Movement Panel V2 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 V2 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 V2 robot skill.
How to use the Custom Movement Panel V2 robot skill
An advanced custom movement v2 panel with more features than the regular panel for drones, mecanum wheels, and custom drive controllers. This extends the standard custom Movement Panel by including roll left, roll right, up, and down.
You should read about a Movement Panel to better understand how to implement your custom code. The Movement Panel description document contains valuable information about how ARC integrates movement panels and how each movement direction should be interpreted.
This Movement Panel has scripts for various directions and speeds. The speed can be obtained by the scripting commands in the Movement class, which your code can reference if needed. There is a convenient mapping function that allows you to map the Movement Panel speed (0 to 255) to PWM (0 to 100), for example.
The configuration window contains scripts for each direction that this robot skill supports: Forward, Right, Reverse, Left, Roll Left, Roll Right, up, and down. Each script is executed when its direction is specified through the ARC platform.
Examples
Front Wheel Steering
This is an example of a front wheel steering Forward script. In this example, you can see how the left and right speeds are used to adjust the servo that controls the front wheels. The front wheels steer, similar to a car. The full implementation of this can be found here: https://synthiam.com/Support/Advanced-Fundamentals/Robot-with-Wheel-Steering
// Set the motor direction to forward
Digital.set(d0, true); // Enable forward direction on motor
Digital.set(d1, false); // Disable reverse direction on motor
// Calculate the speed for the PWM
var topSpeed = Math.max(Movement.getSpeedLeft(), Movement.getSpeedRight());
var speed = Utility.map(topSpeed, 0, 255, 0, 100);
PWM.set(d2, speed);
// Calculate the speed difference
var diffSpeed = Movement.getSpeedLeft() - Movement.getSpeedRight();
var steeringAngle = Utility.map(diffSpeed, -255, 255, 1, 180);
Servo.setPosition(d3, steeringAngle);
Related Questions

Adjusting Encoders On A Roboclaw 2X15

Adding Two More Movementpannels
Upgrade to ARC Pro
Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.
Thanks @DJ just had a quick play that gets rid of the need for the custom key control and made it a lot easier. I really appreciate this.
I think I will spend some more time playing with this as I am wondering if the best approach is to have two modes on my custom movement panel. Mode 1 regular and mode 2 stafe mode. I will connect my XBOX controller and try and write some code that says if button pressed use mode 2 if not use mode 1. This way instead of being a hard stafe left or a hard stafe right I can have a stafe right forward stafe right backwards etc.
Project is coming along nicely
This new Movement Panel will also be helpful for drones, model aircraft and my robot dog who can go in any direction.
In the joystick robot skill, you can select the Use Drone option. That will allow the second analog stick to control the strafe (roll left, roll right). The diagram above in the manual for this robot skill shows how the various directions are expected to behave in ARC. You can always check the Movement Panel manual for more info about that.
The thing that will be most difficult is navigating with The Better Navigator. It won't be able to use the strafing ability of the robot easily. The autonomous navigation will treat the robot as every other type of robot and have it turn toward the direction and move forward.