Skip to content

Commit 5af3052

Browse files
added introduction to control algorithms
1 parent 9cbf946 commit 5af3052

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

docs/section-7/control.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
How do you get the robot to move a certain distance? You could try to experimentally find the amount of time and power you need to run to get it to a distance, but that is not going to work for a variable distance or if there is a change in the environmental conditions such as the amount of friction.
2+
3+
How do you get a flywheel to move at a certain velocity? There is no `.setVelocity()` method that allows you to easily control a flywheel.
4+
5+
How do you get an arm to move to a certain position? Again, there is no `.setPosition()` method that can accurately supply the motor with the correct amount of voltage to counteract gravity and other forces.
6+
7+
Or is there?
8+
9+
Control systems are the solutions to the three problems mentioned above. They help programmers manipulate motors to a great deal of control and flexibility. When designing a control algorithm for a robot mechanism, there are a number of different approaches to take. These range from very simple approaches, to advanced and complex ones. Each has tradeoffs. Some will work better than others in different situations, some require more mathematical analysis than others.
10+
11+
There are two fundamental types of mechanism controller that we will cover here:
12+
13+
**Feedforward control (or “open-loop control”)** refers to the class of algorithms which incorporate knowledge of how the mechanism under control is expected to operate. For example, using physics we can account for the force of gravity, friction, and other forces. Using this “model” of operation, the control input is chosen to make the mechanism get close to where it should be.
14+
15+
**Feedback control (or “closed-loop control”)** refers to the class of algorithms which use sensors to measure what a mechanism is doing, and issue corrective commands to move a mechanism from where it actually is, to where you want it to be.
16+
17+
It is usually common and best to use both. In the next few pages, we will discuss both control types extensively.

mkdocs.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ nav:
6060
- 7. Advanced Programming:
6161
- Introduction: section-7/intro.md
6262
- Common Sensors: section-7/sensors.md
63-
- PID Control: section-7/pid-control.md
63+
- Introduction to Control Algorithms: section-7/control.md
64+
- Feedback Control (PID): section-7/feedback-control.md
6465
- Odometry and Kinematics: section-7/odometry-kinematics.md
6566
- Drivetrain Characterization: section-7/drivetrain-characterization.md
6667
- Creating and Following Paths: section-7/pathweaver.md

0 commit comments

Comments
 (0)