Movement Panels

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 of 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 interchange any movement panel with any other movement panel. The advantage of using movement panels is not to require code for a specific hardware configuration, thus allowing agnostic hardware configurations per project.



*Note: You may add a maximum of one movement panel to a project, AND the movement panel generally is on the first ezb (connection 0). See the Getting Started section to choose an appropriate movement panel for your custom robot.


Contents

  • Project With Movement Panel
  • Directions
  • Speed
  • Scripting
  • Speech Recognition
  • Other Robot Skills
  • Camera Control
  • User Interface Builder
  • Programming and Variables
  • RoboScratch
  • Blockly
  • Create Custom Movement Panel


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, the robot can follow 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.



Directions

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 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 will likely rotate on the spot. However, turning slightly right while moving forward will require the robot to move forward with the right wheel speed somewhat slower than the left.



Speed

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.



Scripting

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.



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. Viewing the Speech Recognition configuration, you will see script direction commands...

Robot Speech Recognition

Other Robot Skills

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."

Movement Panel

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 learn more about 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.

Robot Camera Control

*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 turns on/off 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 dealing with movement will instruct the current Movement Panel to move 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.).

Robot Mobile App Buttons


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.

Robot Mobile App Joystick



Programming and Variables

The current direction and speed of the robot's movement are accessible in scripting as global variables. Custom scripts can use these variables to know the direction or speed of movement. Or the variables are also used when creating a custom movement panel to understand the user-selected direction and speed. You can see the global variables if you add one of the variable watcher robot skills. The global $DIRECTION variable can determine the current direction. To choose how to access global variables, check the manual for the programming language that you're using. ARC can use different programming languages and access the global variable storage. For example, if using JavaScript, you can get the current direction with the getVar() command.

The current speed can also be obtained using the respective GetSpeed commands for your selected programming language. For example, if using JavaScript, you can get the left wheel speed with the GetSpeedLeft() command.

Now, we've covered getting the data from the movement, but you can also set the direction and speed of movement. This can be done using the movement commands and setSpeed commands. Again, you must check the manual for the specific programming language you're using with ARC.



RoboScratch

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.

RoboScratch

Blockly

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.

Blockly

Create Custom 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) for which you may add custom code.

ARC will execute the 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.

Using 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 robot Forward, Reverse, Rotate Left, and Rotate Right ARC software enables speech recognition, joystick control, Wii control, web control, and camera tracking - tracking faces, colors, motion, and glyphs. Video Device As mentioned in the Camera Device Manual, the AR Parrot Drone Movement Panel must...


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 gait is the movement pattern of animals limbs, including robots, during locomotion. This robot skill allows robots to customize servo animations for gait locomotion and interacting with the world. Some robots (i.e., humanoids, hexapods, and more) use servos to move with gaits based on speed, terrain,...


A movement panel to control brushless motor controllers. These are used in hoverboards or many other robot types. This uses generic (popular amongst DIY projects) brushless motor controllers. These controllers have a pin for direction, speed, and brake for each motor. Configuration The configuration menu has options to select the ports for generic brushless motor controllers. Select the ports that are connected to the appropriate connections between the EZB and motor controller.  *Optional:...


Two or more continuous servos used as a movement panel to move the robot with movement commands.


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 parts that are removed from a standard servo to create a continuous rotation servo are: Mechanical Stop: The spindle will stop if you attempt to rotate a standard servo further than 180 degrees. That is due to a mechanical stop built onto the output gear within the servo. Continuous servos have that...


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...


An advanced custom movement panel with more features than the regular panel. This extends the common custom movement panel by including roll left, roll right, up, and down. It is recommended to read what a movement panel is to understand better 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...


Control the DJI Tello drone from ARC and receive the camera video feed for tracking.  What Is DJI Tello? Tello is an impressive and affordable little drone thats a blast to fly and helps users learn about drones with coding education. The high-resolution onboard camera can be used for computer vision tracking within ARC. With the camera being fully compatible with the ARC camera device, theres no limit to what this drone can do! Firewall Permission When the connect button is pressed with this...


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 that enables a voltage to be applied across a motor in either direction. Its triggered by TTL signals from a microcontroller, such as an EZ-B. These circuits are often used in robotics and other applications to allow DC motors to run forward and reverse. A Dual H-Bridge (such as the EZ-Robot 2.5 Amp...


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 robots mobility. An H-Bridge is an electronic circuit that enables a voltage to be applied across a motor in either direction. Its triggered by TTL signals from a microcontroller, such as an EZ-B. These circuits are often used in robotics and other applications to allow DC motors to run forward and reverse. A Dual H-Bridge (such as the EZ-Robot...


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. Youll just need some patience to tune the PID values. In order to use this skill youll have to install the custom EZB firmware onto the Sainsmart robots Arduino Mega and connect it to ARC.   Main window 1. PID Gain Value Sliders These sliders adjust the proportional, integral, and derivative (Kp, Ki, and Kd) values...


Control the older iRobot Discovery and 4xxx for legacy support. This robot skill is available for those who have robots built on the older roombas.  *Note: For 500 series users, please use the iRobot Movement Panel, which also has NMS compatibility and features available to newer roombas. Screenshot EZB Communication The ezb port is hardcoded for software serial D0, which means it operates on any EZB that supports software serial. This includes Arduino, EZ-Robot controllers, and more. This...


Control the iRobot Roomba and read sensor data. This skill currently works with the 500 series robots and iRobot create. The baud rate and connection type will need to be configured in the settings menu.  This robot skill can connect to an iRobot by using either a USB adapter or a microcontroller acting as an EZB (Arduino, etc.). The connection type in the config menu will specify the way this skill communicates with the iRobot. Continue reading below... Main Window 1) Enable sensor streaming...


This skill connects the Ohmnilabs Telepresence Robot servo/wheel hardware with ARC. Windows must be installed on the robots internal UP Board so that ARC can run. This skill connects to the Ohmnilabs bus through the COM port thats detected. Prerequisite - Installing Windows 10 The Ohmnilab robot comes with an Intel Up Board as the SBC (Single Board Computer). In order to run ARC and all of the available skills, Windows 10 x64 (64 bit) operating system needs to be installed on the UP board inside...


This control has been deprecated and replaced with iRobot Movement Panel


Movement panel for the Kangaroo and Sabertooth from Dimension Engineering. This allows a robot with wheel encoders to be used, which enables the kangaroos speed control and various other features. Configuration 1. Software Serial Option Checkbox This uses any EZB digital I/O port to send an emulated serial signal to control the Sabertooth. This section includes a drop-down for the serial communication speed (baud rate) and a Button to change I/O ports. *note: Software serial should only be...


This skill supports the Sabertooth Motor Controller as a movement panel with variable speed in Simplified Serial mode. The Sabertooth Motor Controllers are high power. They come in many versions that range from 5Amp to 60Amp. The ARC software supports the Simplified Serial Mode at multiple baud rates on a configured software serial or hardware UART port. Main Window 1. Movement Panel Buttons These buttons will allow you to control the motors attached to the Sabertooth Motor Controller (left,...


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 connect to the sphero - we are unable to determine which COM port is the Sphero, so you have to guess. Sorry about that! Every time you disconnect or reboot the Sphero, the Bluetooth connection must be deleted and re-synced. This means you will have to delete/remove the Sphero Bluetooth device from...


Control UBTech Alpha robot via bluetooth and control servos. The Virtual Servos in ARC will control the UBTech Alpha robot servos. Use the configuration button on this skill to configure what servos are to be used. The Vx servos in ARC correspond to the servo IDs of the UBTech Alpha robot. For example: - V1 controls servo ID #1 - V2 controls servo ID #2 - V3 controls servo ID #3 - and so on... Main Window 1. COM Port Drop-down Select the Bluetooth COM port that corresponds with the Alpha1 robot...


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 MIPs onboard batteries, but if more power is needed, an EZ-B v4 + camera, for example, an additional 9 Volt battery, can be used. Any EZB that supports a hardware UART can use this robot skill, such as the ESP32, ESP32-Cam, or EZB v4. The ESP32-Cam is preferred because it’s the smallest and has a built-in camera. *Note:...


The WowWee MIP robot is hackable with a UART port on the mainboard. Connect the GND, EZB TX to MIP RX. You can power the EZB with the MIPs onboard batteries, but if more power is needed, like for an EZ-B v4 + camera, for example, an additional 9 Volt battery can be used. Any EZB that supports a hardware UART can be used with this robot skill. Such as the ESP32, ESP32-Cam, or EZB v4. The ESP32-Cam is preferred because it’s the smallest and has a built-in camera. Because the MIP does not send any...


This is a movement panel for the Wowee Rovio toy robot that allows controlling from Synthiam ARC. The WowWee Rovio is a now somewhat dated but notable remote-controlled robot that was introduced in 2008 by WowWee, a company known for creating innovative and interactive robotic toys. The Rovio was designed to provide users with a way to remotely explore their surroundings and interact with people and objects using a combination of video, audio, and mobility features. Key Features Remote Control:...