Generating Virtual 3D Scene
Visualization environment
BondSim3DVisual program comes with several already preinstalled projects. One of these is Puma 560, a project that visualizes the motion of the famous Puma 560 robot arm. To open the corresponding project script we click menu File and select Open submenu, and then Project command. We can do it also using Open Project toolbar button. A dialog window opens, which contains a list from which we can select the corresponding project name (see the figure below). We select Puma560_Project and click OK.
A Notepad window opens containing the script, which defines the virtual scene. The Figure below shows Puma 560 project script. It is a very simple one, which defines only the global (world) coordinates, size of the workspace and inserts the Puma 560 robot arm from the robot space.
The robot subcommand (after Insert) denotes the model space part where the models of different robots and other complex mechanisms are held. Thus using Insert command different robots and other mechanisms can be placed in the scene.
To open the corresponding Puma 560 arm script we apply Open->Robot command from File menu (or use Open Robot toolbar button). In the dialog that opens select Puma 560 robot and click OK. The Notepad opens the corresponding script, a part of which is shown in the figure below.
Puma560 script
For every object there is a Device command. It is designed with robots in mind, but can be used also for other objects. It defines the name of the device. The robot has the links (members) that are connected one to other and to the body by the joints. The joints could be revolute or prismatic. More complex joints can be described by these simple ones, e.g. the robot’s wrist. To every link there is attached a local coordinate frame. These frames rotate/slide about/along the joints axes driven by the actuators. The displacements of the links are not defined by the script. They are supplied from outside. The device command defines only their initial position as well as their minimum and maximum displacements.
The most of other commands serves to construct the Puma 560 body and links by assembling the primitive bodies such as cubes, cylinders, polyprisms, etc. The script could be much shorter if CAD models of the parts are used in the form of .stl files. (This is the case with ABB_IRB1600_12 robot contained also in the projects list.).
There are two important visualization commands: render and probe. The first serves to render (draw) a particular body object on the screen in a specified color. In the script part shown above we can see the render command for Puma body. It asks the system to render it in a gray color.
The probe command (not shown above) serves to define a probe as a point attached to an object in the scene. During the motion of the object, the probe moves with it, and its coordinates are picked and sent out. Thus, we can add a probe to the robot tip and during the motion of the robot its positions are returned back to the client.
The detailed description of the script and the commands can be found in the book shown on the top of the page.
To create the corresponding virtual scene we close the script and click Create 3D scene toolbar button (the fith from the left), or select the corresponding command from File menu. A similar dialog as earlier opens (see the figure below).
We select the project from the list for which we wish to create the virtual scene. Note that we can also define the background color. It is defined by red, green and blue values in the range 0.0-1.0. The currently default background is white, but it can be changed to any other color. When we are finished with the selection we click OK button. After a short delay (depending on the computer) the virtual scene appears with Puma robot as shown in the next figure.
The robot is shown in its initial pose defined by the script. The colored thick lines represent the coordinate axes of the robot base. We can change the viewing direction on the scene by clicking to the screen. Thus, if we click by the mouse on the left side of the robot but close to its body, the scene changes as shown in the figure below.