Skip to content

Gazebo plugins for the dynamic behaviour of FloorPlan models

Notifications You must be signed in to change notification settings

secorolab/floorplan-gazebo-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FloorPlan DSL Gazebo Plugins

This repository host three plugins for dynamic behaviour of articulated objects:

Getting started

  1. Install ROS Jazzy Jalisco

  2. Make the script 'build_gazebo_plugins.sh' executable:

sudo chmod +x build_gazebo_plugins.sh
  1. Run the build script
./build_gazebo_plugins.sh
  1. Source your bashrc
source ~/.bashrc
  1. Add the plugins to your model as defined in the section Usage

Usage

Initial Joint Pose Plugin

This plugin was created to support one companion tool of the FloorPlan DSL. The companion tool allows for modelling kinematic chains and their states, as well as their placement in the world.

<plugin name="initial_plugin" filename="libinitial_plugin.so">
    <joint>JOINT_NAME</joint>
    <position>JOINT_POSITION</position>
</plugin>

Where:

  • JOINT_NAME: string, name of the model joint that will have a position set up.
  • JOINT_POSITION: float, position of the joint. If the joint is revolute it is interpreted as radians, and if it is prismatic it is interpreted as meters.

Time-Based Dynamic Joint Pose Plugin

<plugin name="dynamic_joint_pluginss" filename="libdynamic_joint_plugin.so">
    <joint>JOINT_NAME</joint>
    <uri>PATH_TO_JSON_FILE</uri>
</plugin>

Where:

  • JOINT_NAME: string, name of the model joint that will have a position set up.
  • PATH_TO_JSON_FILE: string, path to a json file that specifies the positions and timestamps at which the joint moves.

The json file has this format:

{
    "keyframes": [
        {
            "pose": 0,
            "time": 10.0
        }
    ]
}

Similar to JOINT_POSITION, If the joint is revolute the float value is interpreted as radians, and if it is prismatic it is interpreted as meters. The time is specified in seconds.

Trigger-Based Dynamic Joint Pose Plugin

<plugin name="adversarial_joint_plugin" filename="libadversarial_joint_plugin.so">
    <joint>JOINT_NAME</joint>
    <x>JOINT_POSITION_BEFORE_TRIGGER</x>
    <near>DISTANCE_TO_TRIGGER</near>
    <y>JOINT_POSITION_AFTER_TRIGGER</y>
</plugin>

Where:

  • JOINT_NAME: string, name of the model joint that will have a position set up.
  • JOINT_POSITION_BEFORE_TRIGGER: float, similar to JOINT_POSITION.
  • DISTANCE_TO_TRIGGER: float, distance at which the joint goes from the before_trigger position to the after_trigger position, in meters.
  • JOINT_POSITION_AFTER_TRIGGER: float, similar to JOINT_POSITION.

Acknowledgement

This work is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programm SESAME under grant agreement No 101017258.

drawing drawing

About

Gazebo plugins for the dynamic behaviour of FloorPlan models

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published