Learn about the functions you need to program a robotic vision system.
Programming a computer to see requires knowing the principles of vision, and mathematical and programming skills. We start by refining our knowledge of image geometry and complete some MATLAB exercises. Next, we start the robotic vision programming project. You will be supported to learn the functions you need, such as improving colour segmentation, detecting shape and size, improving your homography matrix, rectifying your image and forming a complete vision system.
As an optional project, if you have built or bought a robot, we provide the information for integrating your vision system.
This course assumes that you are familiar with concepts from advanced high-school mathematics or undergraduate engineering. Ideally, you will have knowledge of geometry and basic physics (optics).
The course also assumes knowledge of the programming required to complete the computer vision project. This course uses the MATLAB programming language and environment, but your knowledge of programming in other languages can be easily transferred to MATLAB. You can familiarize yourself with MATLAB by enrolling in the MATLAB Onramp tutorial.
Please note that this course includes video content and other visual teaching methods. Blind and visually impaired students may need a helper.
The course requires you to code your robot vision system in MATLAB. You will need to download the full MATLAB software to a computer. With support from MathWorks, free access to MATLAB will be provided for the duration of the course plus 30 days.
Optional robot arm project
The purpose of this course is to program a robotic vision system, and optionally to integrate it with a robot to perform a simple, visual task. If you completed the course Introducing Robotics: Build a Robot Arm, you may already have a working robot arm you can use; or you might choose to purchase a LEGO MINDSTORMS NXT or EV3 development kit or something equivalent to it, or to borrow hobby robot components. This course does not run through how to assemble your robot arm, but rather provides all of the task instructions, demonstrations and worksheets for programming the vision system.
There are many ways to integrate the vision system and some of the most common approaches are:
1. Computer vision and robotics control on your computer
An attached web camera is used to acquire images that you process, to display results and to send motion commands to the robot. You will require a 64-bit computer as well as the full MATLAB software. There are many options to control the robot depending on the technology that you use to create it, for example:
a. MINDSTORMS NXT toolbox (NXT kits) or EV3 require custom software toolboxes to control your robot.
b. Arduino or RaspberryPi robot controllers might require a serial, WiFi or Ethernet cable connection to allow the MATLAB code to command it.
2. Computer vision on your computer
An attached web camera is used to acquire images that you process and display results for. You will require a 64-bit computer as well as the full MATLAB software.
3. Computer vision in the cloud
Your image processing works in an offline mode: you capture images of the worksheet using any camera and upload them to MATLAB Online using MATLAB Drive, where it is accessible by your program.
You can discuss your design ideas and options with your peers and the course mentors.