I'm reading an article about teleoperation systems and it talks about three spaces that include joint space, configuration space and task space frames. I do not know what these are, can you explain?
All "spaces" are used to define the current state of the robot, but with differences. The state of the robot is a point (also known as a configuration or pose) in a space. Please note that the definitions are somewhat fluid and different researchers attribute a somewhat different meaning to the spaces you mentioned, which adds to the confusion.
The simplest to start with is the Cartesian Space. In a general case this is a 3 dimensional space, with XYZ dimensions. Everybody agrees here. The state of the TCP in Cartesian space is refered to as position
If we place a robot in this space, the End Effector of this robot will have a certain position. We can project the Tool Center Point to the XYZ axes and we can get the XYZ coordinates of the Tool Center Point. Obviously, the TCP will also have an orientation, but if we only describe the TCP in 3 dimensions that information gets lost. So...to deal efficiently with the orientation another 3 dimensions can be added to the XYZ Cartesian space. This way we get a space with 6 dimensions the 3 Cartesian dimensions and 3 dimensions describing the rotation around the 3 Cartesian Axes. (Please note that the rotations can be described also otherwise, e.g. RPY, or any other Euler or Brian-Trait angles).
Usually this space, 3 Cartesian dimensions and 3 rotations is the basis of defining the workspace of the robot and in all cases this is the space on the basis of which the operational space and the task space is defined. The operational space is in most cases exactly this space, in which the robot "operates". In some cases this is also named the tasks space, in which the robot executes the tasks. In some other cases the task space has nothing to do with the robot, but only on the task and is defined only as the dimensions needed to define the task, which are later checked if they match a robots operational space or not and if it matches the workspace or not. The workspace, when defined in operational space, describes all the points which are reachable by the robot, considering only the inherent limitations (like joint limits and self collisions), but not considering any obstacles. So if a task space fits into the workspace, which is a subset of the operational space, all is good!
Even if the robot has fever degrees of freedoms, it can be described with 6 dimensions in operational space (although in most cases it makes sense to match the number of degrees of the robot and disregard some dimensions in the 6D task space, e.g. which are constant 0 or which cannot be controlled). Not all 6 dimensions can be controlled independently for any robot structure e.g. for a SCARA robot you can control 4 dimensions XYZ and rotation around Z. The other coordinates (rotation around X an Y are constant 0). The state of the robot in the operational space is also known as the pose (position and orientation together)
If we take the operation space coordinates of the TCP we can solve the inverse kinematics problem and get the joint space coordinates. The joint space dimensions equals the number of degrees of freedom of the robot and, only specifying the task space coordinates does not unambiguously describe the joint space configuration. More then 1 points in the joint space can have the same operational space configuration.
The configuration space is a subset of the joint space. It can be imagined as a limitation on the joint space. If we imagine any arbitrary point in joint space it can happen that the robot cannot assume that given joint space point (or joint configuration) this might be due to physical limitations on the joints (e.g. for a linear X axis the point would be outside the joint limits) or due the fact that the robot would collide with an obstacle when assuming the joint space configuration. The configurations space refers to the subset of joint configurations in joint space which are valid. If we disregard the external limitation (e.g. obstacles) and we only consider the inherent limitations (e.g. joint limits and self collision) we get the workspace defined in the joint space.
Configurations space is in most cases defined in joint space, but the more relevant definition is that is describes the robot as one point in a space and that point can move around freely in the configuration space, without any other consideration (like obstacles). So the TCP coordinates are relevant and the robot geometry as "added" to the obstacles to find the bounds of the configurations space. In theory, this can be applied also in operational space. There is no mathematical necessity to bind configuration space to joint space it is just in most cases done like that.
operational space is similar to Cartesian space (with added rotational dimensions) tasks space may be the same as operational space, or it may be derived exclusively from the task. Joint space is the space of joint coordinates. Configurations space is the joint space without the invalid poses, but nothing stops it from being the same in operation space. Workspace in operational space is all the points the robot can reach, workspace in joint space is all the points the robot can reach. If there are no obstacles in the workspace joint space workspace is the same as configurations space, if there are obstacles, the configuration space is a subset of the joint space workspace. Configuration space is mostly defined in joint space, workspace is mostly defined in joint space. The way form transforming from joint space to operational space is the forward kinematics problem, from operational space to joint space you need the inverse kinematics problem. You need to know all obstacles to define the configurations space (but you usually just sample and compute on the fly, not a priory)