Unit 5: Robotic Control 1 – Feedback and Architectures

This seemed to be a fairly short unit, but I enjoyed looking into control mechanisms and I have been interested in how relevant this section was to 3D printing.

Table of Contents

Reading – Chapter 10: Stay in Control

The primary subject of this chapter was on feedback control. We looked at several types of feedback control, but I found the section that broke down the differences between the proportional control (P), proportional derivative control (PD), and proportional integral derivative (PID) control to be the most interesting. Now you might be asking yourself why some differences in mathematics would be of interest? The answer is 3D Printers!

The hotend on my Delta printer.

So why is it that I would be interested in PID tuning for a 3D printer? Well if you’ve worked with a 3D printer you might already know the answer. PID tuning is used on 3d printers to control the heater cartridge for the hot end. There are two main ways that the temperature can be controlled, the first and simpler method is called bang-bang control, the second requires some calibration and is PID control. In bang bang control, the heater is turned on if the temperature is below the set point and off when it is at or above the set point. In this system the heater is either fully on or fully off. The result is that the bang bang temperature oscillates, a lot, while the PID tuned hotend is able to hold its temperature nearly constant.

Bang-bang controlled hotend.
PID controlled hotend.

I found the discussion on feedback controls in this chapter to be interesting as it is relevant to a hobby of mine, and it looked at how such feedback controls might impact a robot. The temperature control was one example of how feedback controls are important for achieving consistent and desired results when working with robotic projects.

Food For Thought 10-1

What happens when you have a sensor error in your system? What if your sensor incorrectly tells you that the robot is far from a wall but in fact it is not? What about vice versa? How might you address these issues?

Bad things can happen if you have a faulty sensor. For the robot in our example a faulty sensor could lead to the robot slamming into the wall and damaging either itself or the wall, this might happen if the robot believes it is far from a wall but in reality is already in contact with the wall. Alternatively, if your goal is to follow the wall but the robot incorrectly believes it is at the wall when it is not, any path the robot takes will be wrong, while the robot will “believe” it is performing correctly and so not attempt to make a correction.

For myself, I once had a 3d printer with a faulty temperature sensor(alright more than once). Now if the temperature reading is higher than reality, the hotend won’t be at the right temperature and so the plastic filament won’t melt properly and there can be issues with layer adhesion and jamming. Alternatively, if the temperature sensor is reading lower than the actual temperature then the hotend will keep heating in an effort to make it to the proper temperature. I have had both problems. The second one can get scary. In the second situation I actually had the hot end catch fire and do massive damage to the hotend assembly(fortunately I was monitoring the print). Since then, I have switched to a different control board and temperature sensor system that has built in cutoffs for protection from possibly creating a fire. I also purchased some arduino components so that I could try to build a smoke detector that would be able to cut power to the device if smoke was ever detected. I was never able to take the time to figure out how to build such a system though, and I think it would be interesting to create a safety system like that as part of this course.

Food For Thought 10-2

What can you do with open loop control in your robot? When might it be useful?

Open loop control allows the robot to perform an action without taking the result as feedback. In 3D printers, I believe the act of extruding would be an open loop control. An action is performed and the printer keeps going regardless of how well the action was accomplished. Some advanced printers try to add sensors to get feedback on the extrusion process, but for the most part the process is an open loop.

Reading – Chapter 11: The Building Blocks of Control

This chapter was an introduction for the chapters that are to follow it, the focus was on control architectures and how the problem of control systems can be approached.

Food For Thought 11-1

How important is the programming language? Could it make or break a particular gadget, device, or robot?

The programming language that is used for a gadget, robot or device is only important in so far as it needs to be able to compile and run on the target device. It also needs to have the appropriate functionality for the task at hand. There are some programming languages that do not have an appropriate compiler and so would be unable to operate on certain devices or robots, and some that are more portable than others. As long as the programming language is Turing universal and has a compiler for the target platform the particular language should not make or break a robot. Some languages might be better suited for a given task though, and trying to use the wrong language might break the poor programmer attempting the implementation though.

Food For Thought 11-2

With the constant development of new technologies that use computation, do you think there will be increasingly more or increasingly fewer programming languages?

I think there will be increasingly more programming languages. Some will be updated and some will be retired, some end up in legacy projects only and others will be developed for specialized uses. As long as there are new problems to be solved, different people will have different approaches and some of those people will take the features they like in a language and expand them to be more capable for the task at hand. Even if we retire or mark languages as legacy they are still here, they have still been developed and the number of programming languages will continue to increase. The only way we’d have a decrease is if there was a catastrophic event that wiped out all of our stored knowledge related to programming, but such an event would probably have bigger consequences than just the loss of Fortran.

Instructor’s Weblog

The instructor’s weblog shows that there are no exercise for this unit.


And I believe that is it for this unit. I’m going to go try to repair my 3D printer (again) and see if I might be able to use it in some of our future projects for this course now.

Shawn Ritter

November 18th, 2021

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.