When jogging a robot (controlling its movements manually), you can choose to jog the robot in relation to different XYZ coordinate systems, including: Axis, World, TCP, or User-Defined WCS:
Axis/Joint: Jogging the robot in axis/joint mode isolates one or more joints of the robot and lets you individual rotate/move each robot joint individually. The axis system is useful for making rough positional adjustments or moving certain sections of the robot to a specific position/orientation.
World: Jogging the robot in the world coordinate system moves the robot in a straight line along a specific direction relative to a constant position, typically located at the base of the Robot arm. The world coordinate system is useful for moving the robot to specific locations in relation to the arm as a whole.
TCP: Jogging the robot in the tool center point (TCP) coordinate system moves the robot in a straight line along a specific direction relative to the robot's end-effector. The TCP system is useful for positioning the robot's end-effector accurately in space.
User-Defined WCS: Robot Operators/Programmers can set custom, user-defined Work Coordinate Systems (WCS's) that allow you to jog the robot in relation to a key surface or object within its workspace. For example, you might use this to move the robot to a specific point on a complex object.
When deciding which coordinate system to jog in relation to, consider the task at hand and the robot's current position.
It is incredibly important to understand that for most Robot programming, you do not program the path the robot arm will follow, but rather just the points along the path. The robot then uses kinematic algorithms to figure out the optimal path to get from point to point
This means the path the robot takes ends up being UNPREDICTABLE, YET REPEATABLE
You won't know the path it takes to get from point to point, but it will take that path every time, so long as nothing in the program changes
For this reason, you must always "prove out" a robot's program/movements before letting it run automatically for production, to ensure it will not crash
The are different ways in which a Robot can move between programmed coordinate positions however, including:
Point-to-Point (Joint) Move
Moves the robot from one waypoint to another, prioritizing joint movements over TCP path. The TCP will start and end at the programmed waypoints, but the path the robot takes will not be linear.
Linear (TCP) Move
Moves the tool linearly, coming to a complete and precise stop at each programmed waypoint.
Blended/Smoothed Move
Moves the tool linearly with constant speed, doing so by "rounding the corner" instead of stopping at each point precisely.
Arc/Circle Move
Moves the tool in a precise, circular arc motion, that can either stop at each waypoint linearly or maintain constant speed by blending motion through points. Defined by 3 points: Start Point, Via-/Mid-Point, & End Point.
Robot singularities are configurations of a robot where the robot loses one or more degrees of freedom, which can cause unexpected or unwanted behavior.
Singularities occur when the robot's joints align in a specific way, such that the robot's kinematic equations have no solution for a specific position or orientation.
In other words, the robot's inverse kinematics become indeterminate or ambiguous, and the robot's motion becomes unpredictable.
Singularities should be avoided at all cost, as they can negatively impact the operation the robot is attempting to perform
For example, in a welding application, a robot that reaches a singularity configuration may be unable to maintain the desired welding trajectory or maintain the distance between the welding torch and the workpiece. This can cause the weld to be of poor quality, which can lead to product failure or even pose a safety hazard if the welded joint fails.
When programming a robot, singularities can be avoided by using specific techniques and algorithms that take into account the robot's kinematic structure and constraints. Here are some common methods for avoiding singularities:
Joint limit avoidance: Limiting the range of motion of the robot's joints to avoid joint limits can help prevent singularities.;
Motion planning: Planning the robot's motion to avoid specific joint configurations that are prone to singularities can help prevent them from occurring.
Workspace analysis: Analyzing the robot's workspace can help identify areas where singularities are likely to occur, allowing for more careful planning and programming of robot motions.
Task-specific programming: In some cases, it may be possible to design tasks that are less likely to result in singularities, such as by using alternative approaches or adjusting the position of the workpiece.
Singular value decomposition (SVD): SVD can be used to detect and avoid singularities in real-time by adjusting the robot's motion as it approaches a singularity.
By using these techniques, it is possible to minimize the occurrence of singularities and ensure that the robot's motion remains predictable and reliable.
Create & run a basic program on the UR5 cobot in the lab:
Search for & pick a "connect-the-dots" drawing online
Your drawing should contain at least 10 dots
Your drawing should include at least one curve/arc
Print-out multiple copies of the drawing (≤5 copies) on an 8.5"x11" sheet of paper & tape the paper to the workbench the UR5 robot is mounted on
Plug-in, power-up, & initialize the UR5 robot
Create a new program, adding all the necessary movements, waypoints, & other commands needed to safely draw the picture
Following best-practices, to include: Renaming program points/commands
Test & iterate as needed on your program to successfully complete the connect-the-dots drawing
Do a final run of the program on a clean sheet of paper
Once done, create a "Basic Robot Programming" project page on your portfolio website, and upload documentation of your progress, including:
Gif(s)/Video(s) of your program being ran/executed
Text/Picture(s) of the program
Descriptions/summaries of what you did/learned