RAPID TUTORIAL

ABB RobotStudio: Your First Pick-and-Place in RAPID (Video)

Watch a step-by-step RAPID pick-and-place lesson, then check your own program against our annotated RAPID, from approach points to a six-part pattern with Offs and a loop.

By EDWartens engineering team 26 September 2026 6 min
ABB RobotStudio: Your First Pick-and-Place in RAPID (Video)

This RobotStudio tutorial builds your first ABB pick-and-place in RAPID: teach a pick and a place target, approach and retract with Offs, close and open the gripper with a digital output, then repeat it for six parts with a FOR loop. Watch the video, then check your program against the annotated RAPID lines below.

“Rapid Coding of ABB Robots to Perform Pick and Place Tasks- Step By Step Tutorial” by Aleksandar Haber PhD, 13 min. Played from the creator's own YouTube channel; the video belongs to them.

In this lesson by Aleksandar Haber PhD, you see a pick-and-place task coded in RAPID step by step. It is one of the lessons in the Pick and Place in RAPID module of the free ABB RobotStudio and RAPID course. Follow along, then check your work against these steps. The program below is our own written companion, so names and numbers will differ from the video; the technique is the same.

What you need

RobotStudio with a virtual controller. ABB's operating manual lists the RAPID editor, running a virtual controller, jogging and opening a station among the Freemium features, which need no activation. Saving a station is a Premium feature, available with a licence or ABB's 30-day trial, which can be activated once per user or device with an ABB Robotics account. If you plan to keep this station, start the trial before you build it.

Pick-and-place in RAPID, in order
Pick-and-place in RAPID, in order

Step 1: Set up the station

Create a station with an ABB robot from the library and a virtual controller. Add a table, a small box as the part, and a gripper as the tool. Create a work object on the table surface called wobjTable. Teaching points in a work object means that if the table moves, you re-teach one frame, not every point.

Step 2: Teach three targets

Jog the robot and teach, in wobjTable with the gripper as the active tool:

  • pHome, clear of everything.
  • pPick, with the gripper exactly at the part's grip position.
  • pPlace, at the first place position.

Step 3: The motion lines

Here is the core of the pick, one RAPID line per row. tGripper is the gripper tool and doGripper is a digital output that closes the gripper when set to 1.

RAPID lineWhat it does
MoveJ pHome, v1000, z50, tGripper;Joint move to home. Fast, curved path, fine for open space.
MoveJ Offs(pPick, 0, 0, 100), v1000, z10, tGripper;Joint move to 100 mm above the pick point. Offs shifts the target in X, Y and Z.
MoveL pPick, v100, fine, tGripper;Straight line down at low speed. fine means stop exactly on the point.
SetDO doGripper, 1;Close the gripper.
WaitTime 0.5;Give the gripper half a second to close before moving.
MoveL Offs(pPick, 0, 0, 100), v300, z10, tGripper;Straight retract back up with the part.

The place is the mirror image: approach above pPlace, MoveL down with fine, SetDO doGripper, 0, WaitTime, MoveL back up.

Two rules explain almost every beginner crash. Use MoveL, not MoveJ, for the last few centimetres into and out of a part, because MoveJ does not move in a straight line. And use fine at the pick and place points, because with a zone the robot rounds the corner and the gripper acts before it arrives.

Step 4: Put it into procedures

Once one pick-and-place works, move each half into its own procedure so main stays readable.

RAPID lineWhat it does
PROC PickPart()Starts a procedure that holds the six pick lines above.
ENDPROCEnds it.
PROC PlacePart(num nX, num nY)A place procedure that takes an X and Y offset in millimetres.
MoveL Offs(pPlace, nX, nY, 0), v100, fine, tGripper;Inside PlacePart: goes down to the offset place position.

Inside PlacePart, use Offs(pPlace, nX, nY, 100) for the approach and retract, and Offs(pPlace, nX, nY, 0) for the place itself.

Step 5: Six parts in a 3 by 2 pattern

This is the module's practice task: place six parts in three columns and two rows, 60 mm apart. Declare nX and nY as num variables in the module, then write main like this.

RAPID lineWhat it does
PROC main()Program entry point.
MoveJ pHome, v1000, z50, tGripper;Start from home.
nY := 0;First row.
FOR nRow FROM 1 TO 2 DOTwo rows.
nX := 0;Back to the first column for each row.
FOR nCol FROM 1 TO 3 DOThree columns.
PickPart;Pick the next part from the same pick point.
PlacePart nX, nY;Place it at the current offset.
nX := nX + 60;Next column, 60 mm along X.
ENDFOREnd of the column loop.
nY := nY + 60;Next row, 60 mm along Y.
ENDFOREnd of the row loop.
MoveJ pHome, v1000, z50, tGripper;Finish at home.
ENDPROCEnd of main.

In a real cell the parts would come from a feeder or a conveyor with a part-present input. Here the pick point stays the same, which is enough to practise the pattern.

Run it from the RAPID editor with the virtual controller in auto mode and watch the station. If a move fails with a reach error, the offset takes the tool outside the robot's reach: move pPlace closer to the robot or reduce the spacing.

Check your program
Check your program

Where to go next

The free ABB RobotStudio and RAPID course goes on to collision checking, signals and the Signal Analyzer, physics and mechanisms, sharing stations and RobotStudio Cloud. The same ideas (approach points, linear moves, fine points, offsets, loops) are how you program every industrial robot, so the free FANUC course and the brand-neutral RoboDK course will feel familiar.

The free course and the certificate

The course is free in full: lessons by ABB Robotics, Aleksandar Haber PhD and other creators, credited on the course page, with written notes, a practice task per module and one final assessment of 15 questions (60% pass mark, three attempts, then a 24-hour wait and a fresh paper). A free account keeps your progress.

The optional EDWartens Certificate of Completion is the only paid item. The RobotStudio course is beginner level, so it is a small one-off fee, from US$2.99, with a code anyone can check at edwartens.com/verification. It is not an ABB certification. Create a free account to start.

Take the free course

Questions

Can I write RAPID in RobotStudio for free?

Yes. ABB's manual lists the RAPID editor and running a virtual controller among the Freemium features, which need no activation. Saving a station needs Premium, available through a licence or ABB's one-time 30-day trial.

What is the difference between MoveJ and MoveL?

MoveJ moves all axes to the target by the easiest joint path, so the tool path is curved and fast. MoveL moves the tool in a straight line, which you use for the last approach into a part and the retract out of it.

What does Offs do in RAPID?

Offs returns a copy of a robot target shifted by X, Y and Z distances in the work object's frame. It lets you teach one point and reach approach points and pattern positions from it.

Why use fine at the pick point?

fine makes the robot stop exactly on the target before the next instruction runs. With a zone, the robot rounds the corner and may operate the gripper before it has arrived.

Is there a free ABB robot programming course?

Yes. The ABB Robot Programming with RobotStudio and RAPID course on EDWartens is free in full, from the station and FlexPendant to frames, paths, RAPID and pick-and-place. The certificate is optional and paid.

Sources

Written by the EDWartens engineering team for general education. Product names are trademarks of their owners; mentioning them does not imply endorsement. Prices and terms of other providers were checked on the date shown and can change.