Workspaces

Let’s switch gears from signals and jump back into kinematics. Previously, we looked at forward kinematics (plug in the angles for each joint, get the position of your robot) and inverse kinematics (pick a position to go to, and solve for the angles). But we skipped a pretty vital question: where can my robot actually get to?

You can tell a 2-link robot arm to grab a cup across the room, but if it’s arms don’t reach then that’s never really going to happen (unless you give it wheels). That’s where the idea of a workspace comes in.

A robot’s workspace is like it’s “bubble” of reach, or it’s personal space. If your legs were glued to the floor in one spot and you swung your arms wildly around in every direction, the physical volume of air you can sweep out is your workspace. Anything outside of it its completely unreachable.

Workspace

Workspaces rarely end up looking like normal shapes. This arm has 6 links and a wristed end effector, which gives it a crescent with random holes punched out looking shape

It's a lot simpler to talk about workspaces in 2-D rather than 3-D. If we had a simple, 2-link planar robot arm, it's workspace would look like a donut. The outer ring of the donut is the limit of how far the robot can reach when both arms are extended fully out. And the inner ring of the donut is how close it can get to itself by moving the arms towards it's base.

Workspace of a 2-link planar robot arm

Mathematically, the farthest point the end-effector can ever reach is when both links are fully stretched out in the same direction:

Rmax = L1 + L2

where L1 and L2 are the link lengths.

The closest the end-effector can get to the base is when the links fold back on themselves, canceling each other out:

Rmin = |L1 - L2|

We can now summarize the 2-link robot's reachable workspace with this formula:

Rmin ≤ √(x² + y²) ≤ Rmax

Of course, real robots don’t have joints that spin endlessly. Your elbow doesn’t do a 720° either (at least I really hope it doesn’t). The less your joints can move, the smaller your range of motion, and the workspace shrinks. That’s why real robots need to have carefully designed joint ranges. If they’re too restrictive, and they can’t reach much. If they’re too loose, you risk collisions and might have actually overdesigned your robot.

In practice, workspaces aren’t just math bubbles. Robots live in environments with obstacles. A table, a wall, or the robot’s own body can carve “holes” in the workspace where the arm could go, but shouldn’t.

Let's play around with the workspace math we've just learned. Adjust the link lengths and joint limits to see how they affect the workspace. Pay attention to how the inner and outer edges change as you move the sliders for length, and how the workspace area in between changes with the joint limits!

Robot Parameters

Scale: 1 box = 1 square cm
Reachable workspace   Robot arm
Workspace Info:
Rmax = 180 cm
Rmin = 20 cm

The Taskspace

A workspace is everywhere a robot could possibly reach, but that doesn’t necessarily mean it can do anything useful everywhere in that space. Imagine being able to stretch your arm far enough to touch your keyboard, but not being able to type because your wrist is bent at an awkward angle. It’s technically reachable, but not practical. A robot’s taskspace is the smaller slice of the workspace that actually matters for the job at hand.

Unfortunately, there isn’t a one-size-fits-all method to calculate a robot’s taskspace, since it entirely depends on the specific job a robot’s trying to do. The task region needs to be described in geometric terms by the person designing the robot. For example, a pick-and-place robot’s taskspace might be represented as a set of squares or cubes in 3D space where objects need to be picked and dropped. If the robot is painting a wall, the taskspace could be a vertical rectangle. And in the case of a surgical robot, the taskspace might shrink down to a small cube within the patient’s body volume.

Once that task region is geometrically defined, we can calculate the robot’s reachable taskspace by checking which points in the workspace overlap with the task region.

Taskspace vs workspace comparison

Notice how the reachable taskspace is a smaller subset of the workspace when you add a tool. Also I stole this image from a cool Youtube video, check it out here: https://www.youtube.com/watch?v=BNMfVGFTl5g

3-Link Painting Robot

Let's put this into practice with a 3-link robot arm that needs to paint a wall. Adjust the robot's parameters (and the wall's size and position if you want a challenge) and see if it can reach the entire taskspace!

Taskspace (Wall)   Reachable Taskspace   Robot Arm

Link Lengths

Joint Limits

Wall & Controls

Workspaces and taskspaces might seem simple in practice, but the geometry can get pretty complicated when you start working in 3D. However, there are a ton of great tools out there for robot designers that'll help you calculate the spaces you're looking for. Although I make fun of it all the time, MATLAB has a pretty great built-in function to help visualize your robot's workspace.

Stay tuned for the next kinematics lesson where we’ll dive into how robots move precisely through their workspace, and what they do if they get stuck.