Programming Complexity
Robots can be designed to perform a wide range of tasks. Some of these tasks are very simple, like opening an automatic door. Others can be far more complex, like an autonomous car navigating an urban environment. No matter how complex the task is, it can be broken down into simpler tasks. These tasks are known as behaviors and are the building blocks of robotics programming.
A behavior is a way that a robot acts, and can range in complexity depending on how the robot is built or programmed. A simple mobile robot like the VEX V5 Speedbot only has two motors, while the Clawbot has four motors, including two additional motors for the Arm and Claw. Behaviors for both robots will involve turning those motors to accomplish set goals. With more design and programming, you can start from this simple behavior and do more complex behaviors.
Below is a list of robot behaviors increasing from simple to complex for both the Speedbot and the Clawbot. In parentheses, you can see the simpler behaviors that compose each one.
- Rotate a motor assigned to a certain port
- Drive forward (rotate both the left and right motors using the Drivetrain)
- Travel 5 meters (drive forward, then stop)
- Grab a distant object (travel 2 meters, rotate the claw motor to grab it)
- Retrieve an object and put it on a high shelf (grab a distant object, turn around, travel 2 meters, use the arm and claw motors to raise and release the object)
You can see how you can deconstruct any of the more complex behaviors into simpler behaviors. These become the building blocks of any complex task.