Revision 10 as of 2010-05-11 23:05:01

Clear message

API review

Proposer: John Hsu

Present at review:

  • List reviewers

Newly proposed, mistyped, or obsolete package. Could not find package "gazebo" in rosdoc: /var/www/docs.ros.org/en/api/gazebo/manifest.yaml

Proposed ROS services API

  • gazebo style API's
    • spawn_model - given a model name and some string, determines if the string is filename/parameter name/GazeboXML/URDF, then spawn model with an initial pose. Option to specify another model name as dependency, such that the current model will not be spawned unless the dependent model exists in simulation already. For example, to spawn a cup, one could designate table as the dependent model.
    • delete_model - given a model name, delete it from simulation. Option to specify a dependent model, will not delete until the dependent model is deleted first.
    • get_gazebo_model_info - get back info about the gazebo model. Name, state, canonical body, list of bodies, list of joints, parent model, children models. (Gazebo XML?). etc.
    • get_gazebo_world_info - get back information about the world in general. List of models in the world.
    • get_gazebo_physics_info - get back physics engine configuration info.
    • set_gazebo_physics_info - updates physics engine configuration.
    • set_gazebo_body_wrench - applies a wrench on a body. Start at start_time and lasts for duration seconds.

    • set_gazebo_joint_info - sets gazebo joint properties such as stopERP, stopCFM, etc.
    • set_gazebo_model_state - set pose, twist of the gazebo model. this effectively sets the canonical body pose and twist. An optional relative_entity_name specifies what reference frame to set target pose and twist.

  • urdf/ROS style API's
    • get_link_info - link properties such as inertia and link state.
    • set_link_state - for now, we'll ignore the case that if link is connected to another link via a joint. Correct way to handle this is to to propagate changes.
    • set_link_wrench - applies a wrench on a link (gazebo body).
    • get_joint_info - joint properties such as type, damping etc. and joint state.
    • set_joint_effort - sets joint force or torque, given specific start_time and duration in seconds.

    • set_joint_properties - set dynamic joint properties such as friction and damping coefficients.

Question / concerns / comments

Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.

  • Eitan
    • I worry that the spawn_model service will be a bit difficult to use just because it will be unclear from the service definition what the special string should be used for. I suppose that with proper documentation, it'll probably work, though the alternative would be to create 4 separate spawn_model services. That might be more explicit. For example, what will you do now if you have a filename that is also a parameter name?
    • For clarity, I think GetGazeboModelInfo shoud be GetGazeboModelState.

    • I'm not sure that the Set*Info services make sense. I like the use of the word State better, but I think it should be either State or Info and not both. Did you intend for state and info to convey different meanings?

Meeting agenda

To be filled out by proposer based on comments gathered during API review period

Conclusion

Stack status change mark change manifest)

  • /!\ Action items that need to be taken.

  • {X} Major issues that need to be resolved