robotics-upo / gazebo_sfm_plugin

A plugin for simulation of human pedestrians in ROS Gazebo
BSD 3-Clause "New" or "Revised" License
57 stars 15 forks source link

gazebo_sfm_plugin

A plugin for simulation of human pedestrians in ROS Gazebo.

Check the branch galactic for the ROS2 version of this plugin

The persons are affected by the obstacles and other persons using the Social Force Model

The plugin has been tested under ROS Melodic and Noetic and Gazebo 9.x and Gazebo 11.

Acknowledgment

This work has been financed by the European Regional Development Fund (FEDER) and by the Ministry of Economy, Knowledge, Business and University, of the Government of Andalucía , within the framework of the FEDER Andalucía 2014-2020 operational program. Specific objective 1.2.3. "Promotion and generation of frontier knowledge and knowledge oriented to the challenges of society, development of emerging technologies" within the framework of the reference research project UPO-1264631. FEDER co-financing percentage 80%

Plugin configuration

The plugin can be applied to each Gazebo Actor indicated in the Gazebo world file.

An example snippet is shown next:

<actor name="actor1">
    <pose>-1 2 1.25 0 0 0</pose>
    <skin>
        <filename>walk.dae</filename>
        <scale>1.0</scale>
    </skin>
    <animation name="walking">
        <filename>walk.dae</filename>
        <scale>1.000000</scale>
        <interpolate_x>true</interpolate_x>
    </animation>
    <!-- plugin definition -->
    <plugin name="actor1_plugin" filename="libPedestrianSFMPlugin.so">
        <velocity>0.9</velocity>
        <radius>0.4</radius>
        <animation_factor>5.1</animation_factor>
        <people_distance>6.0</people_distance>
        <!-- weights -->
        <goal_weight>2.0</goal_weight>
        <obstacle_weight>80.0</obstacle_weight>
        <social_weight>15</social_weight>
        <group_gaze_weight>3.0</group_gaze_weight>
        <group_coh_weight>2.0</group_coh_weight>
        <group_rep_weight>1.0</group_rep_weight>
        <ignore_obstacles>
            <model>cafe</model>
            <model>ground_plane</model>
        </ignore_obstacles>
        <trajectory>
            <cyclic>true</cyclic>
            <waypoint>-1 2 1.25</waypoint>
            <waypoint>-1 -8 1.25</waypoint>
        </trajectory>
    </plugin>
</actor>

The parameters that can be configured for each pedestrian are:

General params

SFM Weights

Obstacle params

Trajectory params

Dependencies

Compilation

Example

An example Gazebo world can be launched through:

roslaunch gazebo_sfm_plugin cafe.launch