A Movement Panel is a type of robot skill responsible for moving the robot in directions (forward, left, right, stop, reverse, etc.). A movement panel robot skill integrates with the ARC environment and allows other controls or scripts to instruct the robot to move in any direction. When a movement panel is added to your project, it registers itself as the responsible control for directional movements. ARC has many movement panels. For example, there are HBridges, Continuous Rotation Servos, Auto Position GAITs, AR Parrot Drones, and iRobot Roombas.
An advantage of a Movement Panel is that you do not need to code logic for the robot hardware to move. Instead, use movement commands with the optional speed parameter to have the movement panel respond automatically. That will instruct the Movement Panel to do its thing, even for an H-bridge, drone, gait, etc...
The advantage to using movement panels is agnostic robot hardware per project. Consider if you built a robot that performs a specific task using an H-bridge movement panel. You can replace the hbridge Movement Panel with any other movement panel (such as a drone or Auto Position for Hexapod or humanoid).
Any project can use any movement panel and interchange it with any other movement panel. The advantage to using movement panels is not to require code for a specific hardware configuration - thus, allowing agnostic hardware configurations per project.
Project With Movement Panel
This screenshot is of a robot project that contains a movement panel. All other robot skills can send commands to the movement panel to control the robot. For example, with a checkbox in the camera device, you can have the robot following a ball for any movement panel and any robot type. The same code can be used for a different robot hardware configuration by swapping the movement panel with another.
The ARC framework provides several pre-programmed directions: forward, left, right, reverse, stop, roll right, roll left, up, down, and custom. Movement panels will support the directions that are appropriate to their movement type. For example, an HBridge movement panel will not support UP or DOWN because the robot must have wheels and therefore cannot fly. You can see what directions are supported on a movement panel by the buttons visible on the interface. This diagram demonstrates how the various directions are expected to behave by movement panels. For example, turning left or right is expected to rotate on the spot. However, to turn slightly right while moving forward will require the robot to move forward with the right wheel speed somewhat slower than the left.
When specifying a direction to move, most movement panels will support a speed range between 0-255. The left and right wheels can have different speeds for driving forward with slight arc turns in either direction. This allows joysticks and tracking skills to control the robot's movement better.
When a Movement Panel is added and configured in your project, documented scripting commands will instruct the movement panel to begin moving the robot. If anywhere in your project, you executed the script command Forward(), the script engine will instruct the project's Movement Panel to begin moving forward. It is recommended to reference the script manually in ARC for the desired language. Click HERE for the manual of your preferred scripting language.
How About Speech Recognition?
Some controls, such as the Speech Recognition Control, will trigger scripts based on user input (speech). The default configuration of the Speech Recognition Control includes speech commands and respective scripts for instructing the Movement Panel to move the robot. If you view the Speech Recognition configuration, you will see script direction commands...
What About Other Controls?
Good question! Now that we know how the script can instruct a movement panel to move, how do other controls work with movement panels? Well, that's the magic of ARC. For example, if a Joystick Control was added to your project, pushing forward on the joystick will instruct the Movement Panel to begin moving forward. The Joystick control is pre-configured to send the Forward command to ARC. The registered Movement Panel will respond to the direction request. Let us take a look at the settings menu for Joystick Control. Here you will see the checkbox which assigns Joystick #1 to the "Control Movement Panel."
Even The Camera Control?
Yes! The camera control has an option in the settings to instruct Movement Panels to move in any direction based on the tracking method configured. The tracking method is how the robot will respond to tracking a specific tracking type. You can find out more about the camera control and terminology by clicking HERE. If the Camera Control is configured to follow an object with MOVEMENT, it will instruct the current Movement Panel. Let's take a look at the Camera Settings and where the option is to have the camera control a movement panel.
*Note: Highlighted in RED is the section that contains options to configure how the Camera Control will communicate with the Movement Panel. Highlighted in BLUE is the checkbox which enables/disables the ability of the Camera Control to track movement. There are blue question marks that provide more information.
User Interface Builder
The trend in this lesson is that any control or script that deals with movement will instruct the current Movement Panel to begin moving the robot in the specified direction. This also applies to widgets within the User Interface Builder. Within the User Interface Builder, you may add buttons to control movement direction with script commands (Forward(), Left(), Stop(), etc.). Or, you may add the Joystick Pad.
Here is an example of buttons added to the User Interface Builder, which will instruct movement using script commands (Forward(), Left(), Stop(), Right(), Reverse(), etc.).
Here is an example of using the Joystick Pad in the User Interface Builder, which automatically instructs the Movement Panel. One advantage to the user interface builder's Joystick Pad is that it can control the speed of the movement panel supports it.
*Note: You can tell if a movement panel supports speed because it has a speed slider.
Any reference to moving (Forward, Left, Right, Stop, etc.) will automatically instruct the project's current Movement Panel to begin moving. This includes using either RoboScratch, an excellent beginning programming interface with ARC.
Any reference to moving (Forward, Left, Right, Stop, etc.) will automatically instruct the project's current Movement Panel to begin moving. This also includes using Blockly, an excellent intermediate programming interface with ARC.
Can I Create My Movement Panel?
As mentioned earlier, ARC has many movement panels for HBridges, Continuous Rotation Servos, Auto Position GAITs, and even AR Parrot Drones or iRobot Roombas. However, if you seek to create a custom movement panel, the Custom Movement Panel is what you are looking for. The Custom Movement panel contains events for each direction (Forward, Left, Right, Stop, Reverse) that you may add custom code for.
ARC will execute the respective event in the Custom Movement Panel when another control requests to move your robot (i.e., forward, left, right, stop, reverse). Yes, the joystick will control your custom movement panel. Yes, the camera will send commands to your custom movement panel. The point of this document is that any mention of a movement in ARC will instruct the movement panel to move the robot, even a custom movement panel.
All Movement Panel Robot Skills
The AR Drone Movement Panel allows control of an AR Parrot Drone Quadcopter v1 and v2. The A and Z keys are used for Up and Down when using the keyboard mode. The Arrow keys are used to move the...
Use this to make your robot walk or move using servos. This movement panel is used for humanoids and hexapods. Create frames and actions to animate the robot servos into pre-defined positions. A...
A movement panel to control brushless motor controllers. These are used in hoverboards or many other robot types.
This movement panel controls two continuous servos, which have continuous rotation. Unlike a Standard Servo, a continuous servo has its internals changed to allow continuous 360 rotation. The two...
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...
An advanced custom movement panel with more features than the regular panel
Control the DJI Tello drone from ARC and receive the camera video feed for tracking.
A movement panel for using a two-channel hbridge that uses DC motors. There is no speed control with this movement panel. The motors will be either ON or OFF. An H-Bridge is an electronic circuit...
A movement panel for using a two-channel hbridge that uses DC motors. This will also control the speed of the motors using PWM signals to increase the robot's mobility. An H-Bridge is an electronic...
The inverted pendulum skill is designed to be used with the Sainsmart v3 balance robot but technically you can use the Sainsmart hardware, combined with ARC, to balance any robot.
Control the older iRobot Discovery and 4xxx for legacy support
Control the iRobot Roomba and read sensor data from 500 series roombas
This skill connects the Ohmnilabs Telepresence Robot servo/wheel hardware with ARC.
This control has been deprecated and replaced with iRobot Movement Panel
Movement panel for the Kangaroo and Sabertooth from Dimension Engineering.
This control supports the Sabertooth H-Bridge Motor Driver as a movement panel with variable speed in Simplified Serial mode.
The Sphero Movement Panel controls a Sphero over Bluetooth. Connect your computer to the Bluetooth signal of your Sphero. The computer will detect 2 COM ports for the Sphero; only one of them will...
Control UBTech Alpha robot via bluetooth
The WowWee MIP robot is hackable with a UART port on the mainboard. Connect the GND, TX, and RX to an EZB’s UART TX and control it from ARC. You can power the EZB with the MIP's onboard batteries,...
The WowWee MIP robot is hackable with a UART port on the mainboard. Connect the GND, TX and RX to the EZ-B's UART TX and RX to control it from an EZ-B.