ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Using the household_objects_database with diamondback

asked 2011-06-06 03:55:29 -0600

NikolasEngelhard gravatar image

updated 2011-06-08 23:04:59 -0600

Hello

I'd like to use the grasping-database on our PR2 (or gazebo to start with). I installed the database according to this tutorial: http://www.ros.org/wiki/household_obj...

and the node via the object_manipulation-package.

This is my server config and launchfile for the db:

household_objects_database:
  database_host: localhost
  database_port: 5432
  database_user: willow
  database_pass: willow
  database_name: household-objects-0.4 (was 0.2 in earlier version)

and

<launch>
  <!-- load database connection parameters -->
  <rosparam command="load" 
            file="$(find object_detection)/config/my_server.yaml"/>
  <!-- start the database wrapper node -->
  <node pkg="household_objects_database" name="objects_database_node" 
        type="objects_database_node" respawn="true" output="screen"/>
</launch>

A first check on the DB looks good:

rosservice call /objects_database_node/get_model_list REDUCED_MODEL_SET
return_code: 
  code: -1
model_ids: [18665, 18685, 18691, (...)]

But I can't get any gripping positions:

rosservice call /objects_database_node/database_grasp_planning "{arm_name: right_arm, target: {type: 1, model_pose:{model_id: 18744 } } }"
ERROR: Incompatible arguments to call service:
No field name [target.model_pose]
Provided arguments are:
 * {'arm_name': 'right_arm', 'target': {'model_pose': {'model_id': 18744}, 'type': 1}} (type dict)

Service arguments are: [arm_name target.reference_frame_id target.potential_models target.cluster.header.seq (...) ]

If I use the db within the pick&place-demo, the demo aborts with the message

Object manipulator failed to call planner at /objects_database_node/database_grasp_planning

which seems rather related to the db error.

Has anyone used the db with diamondback and can give me a hint?

Nikolas

// Update (see comments)

In Standalone: rosservice call /objects_database_node/database_grasp_planning "{arm_name: right_arm, target: {potential_models: [{ model_id: 18744 }] } }"

returns

grasps: []
error_code: 
  value: 2

and the service itself prints those messages:

[ERROR] [1307478152.866188465, 25974.284000000]: Database grasp planning: database query error
[ERROR] [1307478758.305219944, 26535.359000000]: Hand description: could not find parameter /hand_description/right_arm/hand_database_name
[ERROR] [1307478758.305614745, 26535.360000000]: Database get list: query failed. Error: ERROR:  column "grasp_compliant_copy" does not exist
LINE 1: ...sp_cluster_rep, grasp_table_clearance, hand_name, grasp_comp...
                                                             ^

[ERROR] [1307478758.305675838, 26535.360000000]: Database grasp planning: database query error

// Update 2: Results for the 0.4-2 db:

grasps: []
error_code: 
  value: 0

and

[ERROR] [1307617317.355176736]: Hand description: could not find parameter /hand_description/right_arm/hand_database_name
[ INFO] [1307617317.359785243]: Database object node: retrieved 0 grasps from database
[ INFO] [1307617317.359861977]: Database grasp planner: pruned 0 grasps for table collision or gripper angle above threshold
[ INFO] [1307617317.359905145]: Database grasp planner: returning 0 grasps
edit retag flag offensive close merge delete

Comments

Any other error messages when you try running it from the pick and place demo? I am trying to get some insight into why the service call is failing.
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-06-07 05:38:33 -0600 )edit
When calling it standalone, can you please try instead: rosservice call /objects_database_node/database_grasp_planning "{arm_name: right_arm, target: {potential_models: [{ model_id: 18744 }] } }"
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-06-07 05:38:50 -0600 )edit
Thanks for your help :) I updated the question. I'll add the error messages from the demo tomorrow.
NikolasEngelhard gravatar image NikolasEngelhard  ( 2011-06-07 08:26:17 -0600 )edit
I think this is caused by using the 0.2 version of the database, which works with cturtle. Can you please give it a try with the 0.4 prerelease version, which you can download from the same spot: https://code.ros.org/svn/data/trunk/household_objects/
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-06-08 12:19:16 -0600 )edit
This already was the result for the 0.4 db (diamondback-prerelease-backup), I just forgot to change the name in the config-file after I restored the db from the 0.4-backup.
NikolasEngelhard gravatar image NikolasEngelhard  ( 2011-06-08 22:50:04 -0600 )edit
This is strange, I was pretty sure that the 0.4 version has the grasp_compliant_copy field. In any case, you can always check by hand using PGAdmin3. If the table grasp does not have that column, can you please add it by hand, type boolean, and set the default to False?
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-06-10 08:49:50 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2011-07-31 00:59:22 -0600

NikolasEngelhard gravatar image

updated 2011-07-31 01:02:23 -0600

I now installed the database (household_0.4) on our PR2 and still get some errors, though this time, they are a bit different:

engelhar@marvin:~$ rosservice call /objects_database_node/database_grasp_planning  "{arm_name: right_arm, target: {potential_models: [{ model_id: 18780 }] } }"

 grasps: []
 error_code: 
  value: 2

And the service says:

[ERROR] [1312116981.010510658]: Hand description: could not find parameter /hand_description/right_arm/hand_database_name
[ERROR] [1312116981.011074672]: Database get list: query failed. Error: ERROR:  column "fingertip_object_collision" does not exist
LINE 1: ...rasp_compliant_original_id, grasp_scaled_quality, fingertip_...
                                                             ^

[ERROR] [1312116981.011722189]: Database grasp planning: database query error

I checked for the "grasp_compliant_copy" value and its boolean and false by default.

edit flag offensive delete link more

Comments

This is caused by a mismatch between the code and the database schema, sorry about this... It seems to be complaining about the "fingertip_object_collision" field, which only appears in the prerelease_2 version of the backup file. Is that the one you downloaded?
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-08-01 12:26:16 -0600 )edit
To get rid of this, you should be able to also add the "fingertip_object_collision" boolean field to the "grasp" table and set its default to FALSE.
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-08-01 12:27:00 -0600 )edit
0

answered 2013-03-10 11:01:51 -0600

updated 2013-03-13 01:43:44 -0600

I have a different error when I type this command : $ rosservice call /objects_database_node/get_model_list REDUCED_MODEL_SET

the shell tells me that : ERROR: Unable to communicate with service [/objects_database_node/get_model_list], address [rosrpc://grasp.willowgarage.com:15432]

what should I do ?

edit flag offensive delete link more

Comments

Unfortunately, we are no longer supporting remote access to a database server hosted at Willow Garage. You'll have to install a PostgreSQL server, install the database on it, and use it locally.

Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2013-03-21 13:14:47 -0600 )edit

that is what i have done :)

RiskTeam gravatar image RiskTeam  ( 2013-03-21 14:28:08 -0600 )edit

Question Tools

Stats

Asked: 2011-06-06 03:55:29 -0600

Seen: 511 times

Last updated: Mar 13 '13