1. Background
This paper is part of the ImagingLab Robotics Library for DENSO Reference Guide. The paper assumes you are familiar with the setup and initialization of the DENSO robot from LabVIEW. For a review on these topics and an introduction to the library, follow the preceding link to the reference guide.
2. Move by Coordinates
You can command the robot to move by three methods: coordinates, position, and Denso Drive. When moving the robot by coordinates, use the Move by Coordinates VI to select the type of coordinates (Cartesian, Joint, or Trans) and then input the cluster of coordinates into the VI. Transvariables are position variables in the homogeneous transform matrix, which is further explained in the DENSO robot manual. When using Cartesian coordinates, note that they are referenced in the current coordinate system, or work number. For instance, if the user executes a Cartesian move while using the base coordinate system and then changes the coordinate system to Work 2, it is possible that the same Cartesian move may command the robot to move to a different location than before. The use of coordinate systems is discussed in further detail in the vision-guided section.

3. Move by Position
When moving the robot by position, you instruct the robot to move to a prestored location. This location can be a position, joint, or trans variable. You can store the three variables using the DENSO teaching pendant or LabVIEW. The Move by Position VI, shown in Figure 4, requires an input to select the type of variable as well as the variable number.

4. Denso Drive
The third method of moving the robot is the Denso-Drive VI, which allows the user to execute a relative or absolute move on specific axes. The user specifies the Move Option and Pass Motion, which are discussed later in this guide, as well as whether the movement is to be a relative or absolute move. The Drive Parameters feature is an input array of clusters that contains the target axis and axis coordinate. For example, if you want the fourth axis to move 16 mm, simply select Relative from the VI’s polymorphic selector, choose Axis 4 under Drive Parameters, and set the coordinate to 16. Because the Drive Parameters input is an array, you can command multiple moves on various axes; however, they must all either be relative or absolute and have the same Move Option and Pass Motion.

5. Wait for Movement to End
The move robot VIs are not blocking, meaning that once you send a move command to the robot controller, the program continues to the next VI without waiting for the move to complete. The next section on multiple-point moves examines how you can use this feature to queue the commands and blend the movements. After the final move robot VI is called, it is common to turn off power to the robot. Because the VI execution continues immediately after sending the final move command to the robot, the Power Off VI interrupts the robot and turns off the power before the final move is complete. To block the execution of the LabVIEW code until the movements are complete, use the Wait Arm Stop VI.
There is one scenario where the move robot VIs can block, however. As previously mentioned, the move robot VIs can queue up on the robot controller if multiple move commands are sent before the first movement is complete. This queue can hold up to three movement commands, and, once this queue is full, it denies any further movement commands, which causes the waiting move robot VI to block until a queue register is free.
6. Next Step
Continue on to the following paper to learn how you can combine multiple move robot commands to create blended multiple-point movements using the ImagingLab Robotics Library for DENSO.
