Robotics Laboratory

General Page Body

This instructional manipulator-based robot assembly laboratory is focused on cobot technology. Unlike older generations of robots, “cobots” have sensors and safety features that let them detect and react to contact with humans working with them (under appropriate conditions). Their force-limited joints are designed to sense forces due to impact and to quickly react. 

In the lab, students will program various robot tasks that challenge the robot’s ability to meet its specifications. Experiments (which form part of the ME5286 Robotics class) are designed to highlight robot accuracy, repeatability, programmability, and maneuverability, off-line vs on-line programming, force and impedance control. Our educational objective is to focus on the methods used for difficult assembly tasks requiring some level of manipulative “skill” and force feedback, not on the “conventional” robot assembly task. The assembly task is used to examine issues associated with programming robots, such as taking advantage of compliance, sensing and fixture design. During the experiments, measurements are made to highlight the robot’s static and dynamic accuracy and repeatability achieved when programming the robot end effector’s position, velocity, and path, and the forces generated under a variety of conditions. 

There is currently a series of experiments organized as five lab modules and one demonstration module spanning fifteen weeks (including spring break). The first lab module introduces a six degree of freedom arm and its workspace and is used to familiarize students with the robot and the various ways in which it is programmed (including off-line programming). We use the RoboDK robot simulation software package ( for off-line programming, as needed during these experiments. In the second lab, students run various experiments testing the repeatability and accuracy of a robot. The third lab introduces a robotic gripper and how to program the robot to grasp delicate objects without crushing them. In the fourth lab, students combine the knowledge that they learned in prior labs to assemble a flashlight using the robot, the gripper, and a pneumatically controlled fixture. The assembly is not trivial since the flashlight's walls are thin and the threads are fragile. The robot program must account for these, as well as spring and frictional effects when threading the components together. The students use Python-based programming tools to control both the robot arm and its gripper. In the fifth lab, students use computer vision and machine learning to identify common tools and pick them up and place them into their respective bins. The final demo uses impedance control to insert a pin into a tight hole. Students answer questions based on their observations of the demo.

Each lab manual includes a "PreLab" which must be addressed before students enter the lab for their scheduled time slot. Typically, students use the RoboDK environment to run the PreLab.

This web site provides the resources needed to work with robots in the lab. The information you will need for the ME5286 course (including lecture notes and previous exams) and the information needed for the lab are organized and laid out below:

ME Robotics Laboratory file organization


Lab info flowchart
ME Robotics Laboratory file organization: Lab info
ME Robotics Laboratory file organization: Robot manuals and lab resources


ME Robotics Laboratory file organization: Programming resources and RoboDK


Learn Robotics at UMN

Student works with robotic arm