Tutorials

主に graspPlugin を初めて使う方、まだ使い始めたばかりの方を対象にしたチュートリアルです。

用語

把持計画:アームが物体をつかむ(把持する)ための関節の動きを、実際の動作に先立って算出すること

Choreonoid 1.0 Basic Tutorial

Directions for opening the model file with Choreonoid to arrange the Scene screen are provided below.

Starting Choreonoid

Inputting

 % ~/workspace/Choreonoid/bin/choreonoid

at the terminal, starts Choreonoid.

Choreonoid_1.png
Among the five levels of toolbars available, primarily the Scene View bar of the second level, the Kinematics bar of the third level, the Planner bar of the fourth level, and the Items tab on the left pane are used in this text to manipulate the model displayed on the Scene tab on the right side of the screen. (The functions carried out by the respective buttons will be described later.)

Scene View bar
SceneViewBar.png
Kinematics bar
KinematicsBar.png
Planner bar
PlannerBar.png

Various messages are also displayed on the Message tab in the lower section of the Planner bar screen. Refer to Choreonoid Help for details about the toolbar.

Opening a model file

Models used by graspPlugin are opened from the File menu using Open–OpenHRP model file.
OpenHRPModelMenu_0.png
Once the model is opened, a checkbox and the model name are displayed in the Items tab. A 3D model is displayed at the origin on the Scene screen when the
checkbox is turned on.

Model files are arranged under extplugin/graspPlugin/Grasp.

PA10 directory
A model of the hand robot PA10, PA10.yaml, is available.
Object directory
Various model files (with extention “.wrl”) are available. There are two or three files with very similar names, but those that can be used with graspPlugin are file names that include “hrp.”
For example, from the two files ahiru.wrl and ahiruhrp.wrl, the file that can be opened with graspPlugin would be arihuhrp.wrl.
OpenHRP_model_files.png
Even if ahiru.wrl is loaded, nothing else will happen if the following message is displayed.
 Loading OpenHRP model file "/home/asa/workspace/Choreonoid/extplugin/graspPlugin/Grasp/Object/ahiru.wrl" Humanoid node is not found -> failed. 

Object directory models

These are indicated by the names of the models. The file names are composed of a model name + hrp.wrl.
M0
A rectangular parallelepiped (large)
M1
A rectangular parallelepiped (medium)
M2
A rectangular parallelepiped (small)
ahiru
A duck toy
biscuit
A box of biscuits (rectangular column)
box
A container
can200
A drink can
cap
A small cap
chipstar2
Potato chips in a case (cylinder)
cup2
A cup with a grip handle
grcTemplate
A box with one side open
greentea350
A PET bottle of green tea.
Iemon
A PET bottle for green tea (slightly smaller than greentea350)
mug2
A mug on its side
packncho
Sweets in a rectangular column packet
packncho2
Sweets in the rectangular parallelepiped packet, with two edges on one side remove
petfruit
A PET bottle (on its side)
phone2
A straight-type mobile phone (with antenna)
remote
A TV remote control
souken
A PET bottle with a dent in the middle
table-can
A table

Items tab

An opened list of models (items) is displayed on the Item tab in the left pane. Left click to select item A and manipulate it with the right click menu.
ItemMenu_0.png
Cut
The selected item is deleted from the list and transferred to the clip board. Subordinate items can also be deleted at the same time.
Copy
The selected item is not deleted from the list but copied to the clipboard.
Copy with subordinate
The selected item, along with all its subordinates, are copied to the clipboard.
Paste
An item in the clipboard is added as a subordinate item to the selected item.

Furthermore, when a new model is opened while item A is still selected, the new model is added to item A as subordinate item B. Click on the triangular mark in front of the file name of item A to open and close the subordinate model list.

Scene screen

As described earlier, turning on the checkbox in the Items tab will display a 3D model on the Scene screen. Models that have just been loaded are all arranged at the origin. Smaller models may be buried underneath the larger models and so may not be readily visible.
BuriedAhiru.png
For example, in this diagram a duck is buried under the base of PA10. In such cases, first click the Edit button in the Scene View bar and switch to the Edit mode.
EditMode.png
Red cubes appear around the model in the Edit mode. When the cursor of the mouse is placed on a model in this mode, the contour of the model is surrounded by a red line.
EditBuriedAhiru.png
Once the presence of a previously invisible model is verified by changing the perspective or by zooming in the Scene screen, use the left button to drag and relocate it.
DugAhiruUp.png
Press the View button in the Scene View bar to enter the View mode.

View mode

The Scene screen is initially in the View mode. Place the cursor of the mouse on the Scene screen, rotate a grid with the origin at the center using the left drag, and change perspective by moving it in a parallel direction using the center drag. The wheel can also be used to zoom in and out of the central point of the screen.

When the origin becomes lost, press the return to home view button of the Scene View bar to revert to the original conditions.

Models can be moved by using the Edit button on the Scene View bar to switch to the Edit mode.

Edit mode

Red dots are displayed around models in the Edit mode.
In addition, placing the cursor of the mouse on a model will surround it with a red line and cause it to be selected (an operation with no model selected is the same as an operation in the View mode). Operation changes according to the Kinematics mode in the Menu bar.

KinematicsBar.png
Switches the FK/IK modes automatically.
Forward kinematics mode (FK)
Forward kinematics mode. Taking the arm of a human, for example, determining the angle of the shoulder joint and the angle of the cubital joint determines the position of the wrist.
Inverse kinematics mode (IK)
Inverse kinematics mode. First moves the wrist to the targeted position and then uses that position to calculate the angles of the arm and the shoulder.

Switching to the IK mode and then left-dragging the model will relocate the position (drag the base in order to relocate the hand robot PA10). The movement axis of the model changes depending on the aspect, so please combine correctly the rotation and the aspect movement of the grid in order to move the model to your preferred location.

Adjusting the orientation of the model

Turn on Enable Attitude Edit in the IK mode and click on the model to adjust the orientation of the model. The model becomes surrounded by rings in three colors of red, blue and green. Drag these rings with the left drag and the orientation of the model changes accordingly.
attitude.png

Red represents the roll (rolling), blue represents the yaw (yawing) and green represents the pitch (pitching).

Reverting to View mode

Press View in the Scene View bar or select View mode in the right click menu of the Scene screen to revert to the View mode.

Saving and loading a project

The conditions of the hand robot arranged on the Scene screen, as well as the model, can all be summarized and saved in a project file (with extension ".cnoid"). Select Save Project As in the File menu to display the File dialog and save the project with any name and in any directory. Similarly, a project file can be selected from Open Project in the same File menu to return the project back to the condition it was when the file was saved. Click on O.P. in the File bar to overwrite the project file instantly with the current conditions.

Grasp Planning Tutorial

Three of these functions, SetObject, SetRobot, and Grasp are used in this document.
See Grasp Plug-in.

Running Choreonoid

Run Choreonoid from the terminal. There is no need to include and use GraspPlannerComp and Eclipse at this time.

Preparing grasp planning (example)

First, refer to Choreonoid 1.0 Basic Tutorial to open the hand robot, PA10.yaml, and the duck, ahiruhrp.wrl, and arrange them appropriately.
Once the items have been arranged, set the grasping robot and an object. Select PA10 in the Items tab and click on “SetRobot” in the Planner bar.
SetRobot.png SetRobotToolBar.png

If “PA10 is grasping robot” is displayed on the Message tab, then the procedure has been completed successfully. Select ahiru in the Items tab and then click on “SetObject” in the Planner bar.
SetObject.png SetObjectToolBar.png

If “ahiru is grasped object” is displayed on the Message tab, then the procedure has been completed successfully. Once the robot and the object have been set, click on “Grasp” in the Planner bar.
GraspToolBar.png

If all goes well, the position of the robot changes to that of grasping the object (note: no animated images are provided; use the PRM plugin to generate a motion plan for the arm). In addition, “GRC” is added as a subordinate item to PA10 in the Items tab.
graspAhiru.png
ItemGRC.png

The following message will appear in the message column:

 prehension 0 is selected 
 Success: Grasp Planning

The position and angle of the gripper is obtained based on the positional relationship between the robot and the object at this point, with the stance of the robot calculated based on that position. If this does not work correctly and the message, “cannot find palm position” is displayed, this means that the position of the gripper could not be obtained. Try clicking on Grasp again after moving the object closer to the robot.

CannotFind.png MoveAhiru.png SucceedGrasp.png
The object was too far away to grasp Object moved closer to robot Successful grasping!

When Grasp has been successfully completed, click on a location near the robot where there is no other object at this time and click on “Place.” The robot sets the object at the clicked location (currently being developed).
The grasping motion plan can be saved to file using SaveGraspPattern for external use (currently being developed).

Motion Plan Tutorial

PRMプラグイン、Graspプラグインを用いて、プランナーバーと、パスプランバーによりアームの動作計画を行うチュートリアルです。PRMプラグインについてはPRM プラグイン解説をごらんください。

Preparing motion plan (example)

As with the Grasp plugin description, load the PA10 and the duck, and then link each to SetRobot/SetObject respectively.
Next, prepare a table. In the File menu, select Grasp/Object/table-can.wrl in the Open - OpenHRP model file. Check table on the Items tab, relocate the table to an appropriate location (not close enough to interfere with the movement of the PA10 but not so far that it cannot be reached), and place the duck on the table.
SelectTableScene.png

Verify that table-can has been selected with the Items tab and click SetEnv in the Planner bar.
SelectTable.png SetEnv.png
When the message

 table-can is the surrounding environment

is displayed in the message column, the procedure has been completed successfully. If SetEnv was forgotten, then
 Please select more than one bodyitem

is displayed. Select table-can again and click SetEnv. This operation sets the PRM to make the necessary considerations to ensure that the arm does not interfere with table-can when executing the motion plan of the arm. Then as always, click on Grasp in the Planner bar to make the PA10 grasp the duck.
GraspAhiruWithTable.png
Once the PA10 has grasped the duck, the next step is the motion plan. Click on Start in the Path Planner bar.
PathPlanStart.png
When the message:
 Trajectory Planning is finished

Is displayed, the procedure has been completed successfully. In addition, at this point a “GraspPoseSeqItem” item is added to the Items tab.
GraspPoseSeqItem.png StartAnimation.png
Select GraspPoseSeqItem—a subordinate of PA10—and press Start Animation on the Time bar to view a series of animated images depicting the arm moving and grasping the duck.
action800.png

This animation can be saved as serial-numbered static images, using the Movie Generator function in the Tools menu.
MovieGenerator.png
The static images, with serial numbers starting from “scene00000000.png,” are stored at ~/workspace/Choreonoid.
Folder
The destination folder for saving the static images (the default setting is, ~/workspace/Choreonoid).
Basename
The base name for the static images (the output image file name is composed of Basename + 8-digit serial number + extension .png).
Begin
The starting position for saving (seconds)
End
The stopping position for saving (seconds); however, be sure to turn the immediately preceding check switch on.
FPS
Frame rate
Image size
Size of the images

Grasp Motion Planning Tutorial by GraspConsumer Plug-in

Preparing the environment

These instructions start with the assumption that graspPlugin has already been installed. Refer to Installation of graspPlugin environment for details on how to install graspPlugin.

Running the software

In order to use graspPlugin it is necessary to run Choreonoid, the motion generating tool for the robot; also the grasp motion planning component, GraspPlannerComp; and to link these two tools with the RT system editor in Eclipse.

Run Choreonoid

Select “Terminal” in the accessory under the Application menu of Ubuntu and execute the following command:

 % ~/workspace/Choreonoid/bin/choreonoid 

A new Choreonoid window will open.
Choreonoid.png

Run GraspPlannerComp

Select “Open New Tab” in the File menu of the terminal to open another terminal, then execute the following command:

 % cd GraspConsumer/GraspPlan20100623
 % ./GraspPlannerComp 

GraspPlannerComp does not display any messages, even when it is executed.

Run Eclipse

Once again, open a terminal from “Open New Tab” and execute the following command:

 % cd ~/workspace/eclipse/eclipse

A new Eclipse window will open.

Set Eclipse

Open RT System Editor

Select “Open Perspective” and “Others” from the “Window” menu bar in Eclipse.
perspective.png
Select <RT System Editor> from the “Open Perspective” dialog box and press OK to display the following screen.
RTSystemEditor.png
At this point, press the “ON” button in the tool bar to open “System Diagram.”
SystemDiagram.png

Set RT components

Click on the right pointing triangle in front of the item “127.0.0.1” in the Name Service View list, located on the left side of the Eclipse window. Two items appear: *EventChannelFactory
If the item Name Server View cannot be selected here, refer to the settings for set /etc/hosts.
Next, when opening the right facing arrow on the item below, the following two items are displayed.

 “GraspConsumer0|rtc” and “GraspPlanner0|rtc” are RT components that correspond to “Choreonoid” and “GraspPlannerComp,” respectively. First of all, drag and drop GraspConsumer0|rtc onto the System Diagram. 

DragConsumer.png

When it is dropped, a blue rectangular component, “GraspConsumer0” appears.
drop1.png

In the same way, drag and drop GraspPlanner0|rtc onto the System Diagram.
drop2.png

Two RT components will appear on the System Diagram.

Connect the ports of the RT components

The two small squares located on the right side of each component represent the ports. GraspConsumer0 and GraspPlanner0 are both components that have two ports each.
These two ports are connected here. The sequence is not important, but ensure that the upper port of one component is dragged and dropped onto the upper port of the other component.
DragToConnect.png
After doing that, the dialog, “enter port profile” is displayed. Press the OK button to connect both upper ports.
PortProfile.png
Connect the remaining lower ports in the same way, as in the arrangement shown in the diagram below.

Activate.png

If the ports are connected incorrectly...

If an upper port is connected to a lower port by mistake, this can be corrected.
misconnect.png

Click on the line that forms the incorrect link.
A point will appear on the line at the center of the link between the ports.
clickline.png
Right click on any of the three points to display a menu.
disconnect-menu.png

Select “Delete” in the menu to delete the line, then connect the ports correctly.

Activation

Once the upper and lower ports have been connected correctly, activate the RT components by clicking the “All Activate” button in the tool bar. If the components that were displayed in blue change to green, then the activation has been completed successfully.
Activated.png

Setting up Choreonoid

Load the models of the robot and the object in Choreonoid and perform the grasping motion.

Load PA10

Load the model data of the PA10 robot first. Select “Open” and “Open HRP Model File” in the File menu of Choreonoid and select workspace/Choreonoid/extplugin /graspPlugin/Grasp/PA10/PA10.yaml
in the File dialog box to load the model of PA10.
This creates a “PA10” check item in the Items tab on the left side of the Choreonoid window. Check this item to display the bundle of a green line, which represents a collision.
OpenHRPModelMenu.png
LoadPA10.png

Click on the “collision visualization on/off”
button collision.png in the tool bar to turn off the collision display. The green lines disappear and an upright PA10 is displayed.

CollisionVisualization.pngHideCollision.png

The perspective can be manipulated in this condition, by dragging and using the wheel of the mouse.
Dragging with the left button: the bottom surface rotates about the origin.
Dragging with the wheel button:The perspective is moved in a parallel direction.
Turning the wheel:The perspective moves in the direction of depth on the screen.

The object can be viewed from any preferred direction by combining these operations.

Right click the Scene tab and select the Edit mode. The base of the PA10 becomes surrounded with red dots.
Click the “Inverse kinematics mode” http://www.hlab.sys.es.osaka-u.ac.jp/grasp/sites/default/files/ik.png button in the toolbar to drag the base and move the PA10.

Move the object approximately one grid from its original location.
http://www.hlab.sys.es.osaka-u.ac.jp/grasp/sites/default/files/InverseKinematicsButton.png

Loading a can object model

Now, select a can object model, can200hrp. Then, once again select “Open” and “Open HRP Model File” in the File menu and select workspace/Choreonoid/extplugin /graspPlugin/Grasp/Object/can200hrp.wrl in the File dialog box (note: It is not possible to load can200.wrl!).
LoadCan200.png

As with the PA10, check “can200” that appears in the Items tab to display the black cylindrical model, can200.
Can200.png

This also can be moved to any desired location in the Edit mode.

Set Robot and Set Object

Click PA10 in the Items tab and click on “SetRobot” in the “=GRASP=” toolbar. The message, "PA10 is grasping robot" appears on the Message tab at the lower section of the screen.
SetRobotButton.png
GraspingRobotMessage.png

Next, click “can200” in the Items tab and this time click on “SetObject” in the “=GRASP=” toolbar. If “can200 is grasped object” is displayed on the Message tab, then the procedure has been completed successfully.
SetObjectButton.png[[Image:GraspedObjectMessage.png

The preparations are now complete. Press the “Grasp” button in the “=GraspRTC=” toolbar to bring the PA10 into a grasping stance.
ClickGraspRTCGrasp.png
GraspCan200.png

Similarly, it is possible to grasp a variety of objects by opening the file “*hrp.wrl”, listed under Grasp/Object and executing SetObject and Grasp.
In addition, to remove unnecessary objects, right click the object in the Items tab and select “Cut” in the Context menu.

Saving projects

There is a technique to perform all of the operations each time Choreonoid is used. Using “Save Project As” in the File menu of Choreonoid, makes it possible to save the current conditions of the robot and object of Choreonoid with any desired file name as a project file (with the extension cnoid). The current conditions can therefore be saved as a project file, ~/workspace/PA10.cnoid.
The settings are restored when Choreonoid is run again anytime subsequent to that by opening “Open Project” in the File menu and loading ~/workspace/PA10.cnoid.

Closing graspPlugin

Display the Eclipse System Diagram and press the “All Deactivate” button in the tool bar. When the components on the screen change from green to blue, close each of Choreonoid, GraspPlannerComp, and Eclipse.
This concludes the tutorial. Good job!

About the manual of the demonstration in International Robot Exhibition 2011

See the above documents.

Hiro Service Demo Manual

This document is a demo manual for the pick-and-place manipulations of the dual-arm robot, HiroNX, which is part of “The Development Project for Intelligent Technologies for Next-Generation Robots.”

Reference material

This document targets users with a basic knowledge of RT Middleware (RTM) and RT Components (RTC). Refer to the link below for details on RTM and RTC.

OpenRTM-aist Official Website:
http://www.openrtm.org/openrtm/ja

Further, refer to all the documents below for details on the visual system, grasp planning system, and the robot control system used in the Demo.

  • OpenVGR
    • Please read the introduction
    • Operating procedure
    • Functional specification
  • OpenVGR Coordinate Transformation Tool (OpenVGRextra)
    • Please read the introduction
    • How to use the cloth-marker detection program
    • How to use the coordinate transformation matrix calculation program.
  • Installation guide for graspPlugin for Choreonoid
  • Instruction manual for the use of the HiroNXInterface

System Specification

This manual assumes that the computer's operating system is Ubuntu 10.04LTS. The dual-arm robotic demo is carried out using the software specified below.

It is assumed that (a) OpenRTM-aist1.0.0-RELEASE, Choreonoid1.0.0, graspPlugin for Choreonoid1.0.0, and HiroNXInterface 1.0.0 are installed on a host computer called “VisionPC” that is associated with HiroNX, and (b) OpenRTM-aist1.0.0-RELEASE, OpenVGR, and OpenVGRextra are installed on another host computer called “openvgr-host.” Further, it is assumed that the robot body’s power connections are made beforehand.

Preparation

Starting graspPlugin for Choreonoid

graspPlugin for Choreonoid is a software plug-in that provides functionalities such as grasp planning, and trajectory planning in robots in which the Choreonoid software has been installed. If the graspPlugin for Choreonoid has not been installed, install the same as per the installation guide. Then, change to the “~/src/choreonoid-1.0.0” directory (at the VisualPC terminal) and execute the following commands to start graspPlugin for Choreonoid.

 % bin/choreonoid extplugin/graspPlugin/GripperManipulation/project /worldexpo.cnoid

The dual-arm robot HiroNX, a table, a box, and parts are displayed in the Scene View below.

Choreonoid_0.png
Figure 1. Startup Screen of graspPlugin for Choreonoid

HIROController0|rtc and VisionRecognitionTrigger0|rtc can be confirmed inside the localhost if the Eclipse RT System Editor is used.

hirocontroller_visionrecognition_rtc.png
Figure 2. Eclipse RT System editor

The RT component is represented on dragging and dropping these into the system diagram.

hirocontroller_visionrecognition_diagram.png
Figure 3. Eclipse system diagram

Starting HiroNXInterface

If HiroNXInterface has not already been installed, install the same as per the instruction manual. HiroNXInterface has two RT modules, namely HiroNXProvider and HiroNXGUI. Start two VisionPC terminals and launch these modules, one in each terminal. Then, using the RT System editor, connect the upper and lower ports of HiroNXGUI0 and HiroNXProvider, respectively. Then, connect the upper and lower ports of HIROController0 and HiroNXProvider in a similar manner. The system diagram will look like the one shown below.

HiroRTCConnect.png
Figure 4. Connection between the components included in HiroNXInterface.

Then, activate these RT modules and set up the dual-arm robot, HiroNX, from the HiroNXGUI.

HiroNXGUI_system.png
Figure 5. HiroNXGUI

Press the buttons from top to bottom, from the “Setup” button to the “Servo Hands ON” button.

1. [Setup Robot]: Connect HiroNXGUI and the Hiro body.

2. [Calibrate Joints]: Perform joint calibration (accompanied by the operation of HiroNX)

3. [Go Initial]: Switch to the initial pose.

4. [Servo Hands/ ON]: Switch “ON” the Servo Hand so that the left and right hands can be opened and closed.

Starting OpenVGR

Install OpenVGR and OpenVGRextra in openvgr-host by (i) following the OpenVGR operating procedure and (ii) reading the OpenVGRextra introduction mentioned in section 1.2. Invoke the RT components included in OpenVGR and OpenVGRextra at the openvgr-host terminal. Please note that all the RT components on openvgr-host should have references to the VisionPC “name server” while configuring rtc.conf. Use the RT system editor to connect the RT modules as shown below and activate them.

connection_for_hirodemo.png
Figure 6. RT components connection diagram

Table setup

Prepare a 1-m-high table and place it so that the pedestal of HIRO touches it. Using the front-right corner of the pedestal as a reference, place the box on the table at a position 170 mm to the right and 170 mm to the front, with the longer side inclined at 45° (refer to Figure 7).

Parette.png
Figure 7. Position of the box

Next, place the parts on the table. Though the parts can be placed anywhere within reach of the robot’s arm and camera's view, they will be difficult to grasp if many parts are crowded together. This is to ensure that grasp planning is carried out by recognizing individual parts.

Figure 8. Illustration for arranging the parts

graspPlugin for Choreonoid’s toolbar

The demo progresses further by primarily pressing the toolbar buttons of graspPlugin for Choreonoid.

Toolbar.png
Figure 9. Toolbar of graspPlugin for Choreonoid

Figure 9 shows an illustration of a graspPlugin for Choreonoid toolbar. Though the arrangement of the tools in the toolbar varies depending on the number of plug-ins and the data fetching sequence, this is a typical graspPlugin for Choreonoid toolbar.

The toolbar buttons given below are primarily used in this demo.


Position in the figure Title Plug-in invoked Remarks
Second from the right in the middle row =VisionRTC= VisionTrigger Interfaces with the visual system
First from the right in the bottom row =PathPlan= PRM Performs trajectory planning
Second from the right in the bottom row =Interface= RobotInterface Interfaces with the dual-arm robot control system
First from the left in the bottom row =Planner= Grasp, GripperManipulation Performs grasp planning

In addition, as explained later in this document, the “Play” button of the “SceneView” bar and the Slidebar may be used to confirm the grasp planning before it is generated.

Pick-and-place Demo

Specifying the part placement location

In the SceneView present on the right of the graspPlugin for Choreonoid screen, there is a box on the table (to the right of HiroNX) for arranging the parts. There are four circular and four rectangular cavities in the box for placing circular and rectangular parts, respectively. Manually specify any one of the cavities as the location for placing a rectangular part. To achieve this, place the mouse cursor on a rectangular cavity and left click while pressing the “Ctrl” key. In the figure, there is an upright pin at the position indicated by the mouse cursor.

[inline:location_to_place.png=Figure 10. Specify the location to place the part]
Figure 10. Specify the location to place the part

Visual recognition

When the “Start” button on the VisionRTC toolbar is pressed, visual recognition is carried out via OpenVGR and the position of the parts in the SceneView screen reflect the actual positions of the parts on the table.

Grasp planning

When the “Grasp” button of the “Planner” toolbar is pressed, the gra
sping posture (for grasping the recognized part) is planned. When the “Start” button of the “PathPlan” toolbar is pressed, the trajectory of the robot (starting from the initial position to placing the part in the box) is planned. It is possible to verify how HiroNX grasps the part and places it in the box through an animation in the SceneView screen by pressing the “play” button and moving the Slidebar at the top of the screen. It is necessary to verify the planned operation before actually making the robot operate.
Playbar.png

Robotic motion

After verifying that there is no abnormality in the operation, make HiroNX perform the actual grasping operation. Press the “Move” button on the Interface toolbar (right end of the image).With this, HiroNX will actually start its operation.
InterfaceMove.png

Other Operations

Two other operations are implemented, apart from the pick-and-place operation, which are (i) dismantling an assembly made of four parts and (ii) moving the box.

Dismantling the assembled parts

This can be achieved by following the steps below.

1.Check the checkbox on the left of W10 of the itemView present on the left side of the Choreonoid window. A model with four parts assembled in the box is then displayed in the SceneView.
2.Click the W10 portion with a mouse and press the “SetObject” button of the “Planner” bar on the resulting colored background. W10 is recognized as the target object for graspPlugin in this manner.
3.Press the “Start” button of the VisionRTC bar to see the four parts in the assembled state, reflected in the SceneView.
4.Press the “Grasp” button of the “Planner” bar followed by the “Start” button of the “PathPlan” bar. This plans an operation for dismantling the assembled parts. The planned operation can be verified by pressing the “Play” button and moving the “Slide” bar.
5.Press the “Move” button of the “Interface” bar to make HiroNX execute the planned operation.

Moving the box

This can be achieved by following the steps below.

1.Click the W4 portion with a mouse and press the “SetObject” button of the “Planner” bar on the resulting colored background. This results in W4 being recognized as the target object for graspPlugin.
2.Press the “Grasp” button of the “Planner” bar followed by the “Start” button of the “PathPlan” bar. This plans an operation to move the box. The planned operation can be verified by pressing the “Play” button and moving the “Slide” bar.
3.Press the “Move” button of the “Interface” bar to make HiroNX execute the planned operation.

Calibrating the robot with respect to the visual system

It is necessary to calibrate the visual system and the robot in preparation for the demo. First, uncomment the “define” statement defining the CALIB_MODE in graspPlugin/GripperManipulation/ManipController.cpp and compile the GripperManipulation plug-in.

Then, use graspPlugin/GripperManipulation/project/worldexpo.cnoid as the project file and start Choreonoid. Press the “Grasp” button of the “Planner” bar. Then, in the SceneView of Choreonoid, carry out an operation similar to that of robot calibration. During this time, a sequence of joint angle and marker positions is displayed in the terminal. Use this sequence of joint angles and operate the robot; record the marker positions measured by the visual system. Then, use the sequence of marker positions displayed at the terminal to compute the calibration matrix.

Exiting the Demo

Shut down the software and hardware used in the sequence given below.

  • 1.Exit OpenVGR
  • 2.Exit OpenVGRextra
  • 3.Exit Choreonoid
  • 4.Use HiroNXGUI and shut down HiroNX in the order given below.
    • 1. [Go Off Pose] – Switch to standby Pose
    • 2. [Servo Hands/OFF] – Switch OFF the hand servos
    • 3. [Servo/OFF] – Switch off the HiroNX body servos
    • 4. [Shutdown] – Shutdown HiroNX (also exit the HiroNXGUI)
  • 5. Exit HiroNXProvider

With this, the dual-arm Robot demo is complete.

How to install graspPlugin for Choreonoid

This document is an installation guide for the graspPlugin for Choreonoid, which is used during robotic manipulations of a dual-arm robot in “The Development Project for Intelligent Technologies for Next-Generation Robots.” The graspPlugin for Choreonoid was developed as a plug-in for Choreonoid (an integrated software for choreographing robotic motions), with Hand grasp planning, Arm Trajectory Planning, etc. conforming to OpenRTM standards.

Reference materials

This document targets users with a basic knowledge of RT Middleware (RTM) and RT Components (RTC). Refer to the link below for details on RTM and RTC.

OpenRTM-aist Official Website:
http://www.openrtm.org/openrtm/ja

Furthermore, refer to all the documents listed below for details on the “Demo” using the dual-arm robot, HiroNX.

  • OpenVGR
    • Please read the introduction.
    • Operating procedure.
    • Functional specification.
  • OpenVGR Coordinate transformation tool (OpenVGRextra)
    • Please read the introduction.
    • How to use the cloth-marker detection program.
    • How to use the coordinate transformation matrix calculation program.
  • Demo manual for the dual-arm robot
  • Instruction manual for the use of HiroNXInterface

Request for users downloading the plug-in

The graspPlugin for Choreonoid is composed of multiple plug-ins for Choreonoid. One of them is the trajectory planning plug-in that is used in planning a collision-free trajectory. Professor Claude Latombe has kindly allowed us to port the Motion Planning Kit developed at Stanford University as a plug-in for Choreonoid. We request that users who download the graspPlugin for Choreonoid send their names and affiliated organizations to the contact address mentioned at the end of this document. This would facilitate us in sending information on users using the Motion Planning Kit to Professor Latombe.

System Specification

Essential software

This installation guide assumes that the computer's operating system is Ubuntu 10.04LTS. The software versions to be installed are given below.

graspPlugin for Choreonoid

Figure 1 shows a broad overview of the graspPlugin for Choreonoid configuration.

graspPlugin_for_Choreonoid_overview_0.png
Figure 1. graspPlugin for Choreonoid

graspPlugin for Choreonoid is a set of plug-ins that provide grasp Planning, Trajectory planning, and Object manipulation planning functionalities, among others. The plug-ins included in this package are listed below.

  • Vision Trigger Plug-in: Receives information from visual systems through the OpenRTM interface.
  • Grasp Planning Plug-in: Provides the functionality for performing grasp planning and the ability to share it with other plug-ins.
  • Trajectory Planning Plug-in: Plans a collision-free robot motion trajectory.
  • Gripper Manipulation Plug-in: Plans pick-and-place operations by assuming parallel grippers.
  • Robot Interface Plug-in: Sends information such as the “joint angle control order” to the dual-arm robot, HiroNX, through the OpenRTM Interface.

Installing OpenRTM

Install OpenRTM-aist 1.0.0-RELEASE on Ubuntu 10.04 using the batch setup script. If you have already completed the installation of OpenRTM, you can skip this section and proceed to the next section.

Download the batch setup script, pkg_install_ubuntu.sh for Ubuntu, from the OpenRTM-aist-1.0.0-RELEASE website ((http://www.openrtm.org/openrtm/ja/node/849).

(Note: The file is listed as “pkg_install_ubuntu.sh” on the website, but the name actually changes to “pkg_install_ubuntu100.sh” when downloaded.)

When not using a browser, the file can be downloaded via wget as follows: (from here on, the lines inside the text box starting with a “%” represent commands entered at the computer terminal; however, do not include the “%” at the beginning of your entries at the computer terminal.)

 % wget http://openrtm.org/svnroot/OpenRTM-aist/trunk/OpenRTM-aist/build/pkg_install100_ubuntu.sh

The necessary packages are automatically installed when the following script is executed at the command line.

 % sudo sh pkg_install100_ubuntu.sh

Prompts, such as those described below, appear many times during execution. Respond with a “y” to all such prompts and continue.

Example 1

 No repository entry for OpenRTM-aist is configured in your system.
 repository entry for OpenrRTM-aist:
    deb http://www.openrtm.de/pub/Linux/ubuntu/ lucid main
 Do

Example 2

 After this operation, XXXMB of additional disk space will be used.
 Do you want to continue [Y/n]? 

Example 3

 WARNING: The following packages cannot be authenticated!
   xxxx-xxx
 Install these packages without verification [y/N]? 

When prompted for “[Y/n],” pressing the Enter key would be considered a “y” and installation would proceed. However, when prompted for “[y/N],” unless the “y” key is explicitly pressed and followed by the Enter key, the entry would be considered an “n” and the installation would be aborted. If the installation is aborted accidentally, execute the pkg_install_ubuntu.sh package once again.

Building Choreonoid

The installation procedure for Choreonoid (integrated software for choreographing robotic motions) is outlined below. In this section, only Choreonoid is built and executed, instead of installing the graspPlugin in one shot. The installation directory is taken as “~/src/choreonoid-1.0.0.”

Acquiring the source for the build

Download the source package file “http://choreonoid.org/_downloads/choreonoid-1.0.0.zip” from the official Choreonoid site (http://choreonoid.org/en/). Unzip and extract the files by specifying “~/src” as the destination directory to create the “~/src/choreonoid-1.0.0” directory for the extracted files.

Once the computer has booted, make the “~/src/choreonoid-1.0.0” directory your current directory.

 % cd choreonoid-1.0.0 

Installing the required packages

Execute the batch installation script that is available at choreonoid /misc/script.

 % cd choreonoid/misc/script
 % sudo ./install-requisities-ubuntu.sh
  (an omittion)
 Need to get xxxMB of archives.
 After this operation, xxxMB of additional disk space will be used.
 Do you want to continue [Y/n]? 

A large volume of packages will be installed. Re-execute the script if a failure occurs prior to completion.

 % sudo apt-get update
 % sudo ./install-requisities-ubuntu.sh

Installation of libgstreamermm-0.10-dev and libqt4-phonon-dev is also necessary, so enter them manually.

 % sudo apt-get install libgstreamermm-0.10-dev libqt4-phonon-dev 

Once this is completed, return to the Choreonoid directory.

 % cd ../.. 

Building Choreonoid using ccmake

Invoke ccmake to generate the Makefile.

 % ccmake . 

ccmake displays only “EMPTY CACHE” on its first launch.

emptycache.png
Figure 2. ccmake: EMPTY CACHE

On pressing the “c” key to configure, a menu showing the key and values should be displayed within a few seconds.

configure1.png
Figure 3. ccmake: configure

On pressing “c” again, a new menu item will be displayed in the lower section of the screen displaying the message, “Press [g] to generate and exit.”

configure2.png
Figure 4. ccmake: generate and exit

Press “g” to exit ccmake. The Makefile will be generated by this “generate and exit” operation. Execute make and build Choreonoid.

 % make 

The execution time will vary depending on the PC used.

Invoking Choreonoid

Once the execution of make is completed, execute Choreonoid.

 % bin/choreonoid 

If a startup screen like the one shown below appears, Choreonoid has been built successfully.

Choreonoid_2.png
Figure 5. Choreonoid startup screen

Building graspPlugin

The procedure for installing graspPlugin on Choreonoid is given below.

Installing Subversion

Since subversion is required for the installation of graspPlugin, install the same, if it is not already installed.

 % sudo apt-get install subversion 

graspPlugin source check out

Use subversion to check out and extract the graspPlugin source under the “extplugin” directory of “~/src/choreonoid-1.0.0.”

 % cd ~/src/choreonoid-1.0.0/extplugin
 % svn checkout http://grasp-plugin.googlecode.com/svn/trunk/graspPlugin

Installing essential packages

Execute the graspPlugin installation script (a user password is required).

 % ./graspPlugin/Grasp/install-requisities-ubuntu.sh 

Furthermore, the wx-common package is also required.

 % sudo apt-get install wx-common 

If the wx-common package is not present, the configure step of ccmake will fail with a “wxWidgets_wxrc_EXECUTABLE NOT FOUND” message.

Building graspPlugin using ccmake

In order to install graspPlugin as a plug-in, change Choreonoid’s build settings using ccmake.

 % cd ~/src/choreonoid-1.0.0
 % ccmake . 

To build graspPlugin, it is necessary to edit the items using ccmake.
In ccmake, the items displayed on the left half of the screen with a white background are the keys, while the items displayed on the right half with a black background are the values for those keys. Use the “UP” and “DOWN” arrow keys to move the cursor to the desired item and press the Enter key to edit the desired value. After modifying the value, press the Enter key again. This releases the cursor to move UP and DOWN again.

Pressing the “c” key twice will configure and create two items: GRASP_PLUGINS and GRASP_ROBOT_MODEL_PLUGINS.

ccmake.png
Figure 6. ccmake: Editing the keys

Set the following values to the respective items:


Key Value
GRASP_PLUGINS Grasp;PRM;GripperManipulation;VisionTrigger;RobotInterface
GRASP_ROBOT_MODEL_PLUGINS HIRO/Plug-in

Once the values have been edited, press “c” to configure. Next, press the “g” key to generate the makefile and exit. Then, execute make to build Choreonoid and the plug-in.
 % make 

Execution

Execute Choreonoid.

 % bin/choreonoid 

If a screen like the one below is displayed, the execution is successful.

Choreonoid.png
Fig 7. graspPlugin execution screen

In comparison to the build using Choreonoid alone, the toolbar now contains increased options due to the addition of graspPlugin. Furthermore, messages to the effect of “.... plug-in file being loaded” and “... plug-in being activated” are displayed in the message tab.