Skip to content

robofeiathome/sim_worlds

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Worlds

This is a ROS package that contains a set of gazebo worlds, plugins and nodes.

This sets provides environments for a robot to learn social behaviors.

Dependencies:

Models:

The models used in this package was developed by the author or imported from 3D Gazebo Models and OSRF Gazebo Models.

MSG and SRV:

  • Region.msg: Used to store a region representation with the region name and a set of points inside the region.
  string name
  geometry_msgs/Point[] points
  • ActorTrajectory.srv: Used to request a actor to follow a determined pathway.
  std_msgs/String animation
  geometry_msgs/Pose[] waypoints
  ---
  • Regions.srv: Used to request the set o regions available in a world.
  ---
  social_worlds/Region[] regions

Nodes:

  • check_collision_node: Node used to check if a model is in collision.
  • check_region_node: Node used to check if a region is occupied by a model.
  • real_time_factor_publisher_node: Node used to publish the gazebo real_time_factor on ROS ecosystem.

plugins:

  • region: Define regions in the world and provide a service to get points in this regions.

    • ex.:
      <plugin name="path" filename="lib_regions.so">
        <region name="start">
          <layer>1</layer>
          <color>Green</color>
          <area>-6.75 0 1.5 4</area>
        </region>
        <region name="goal">
          <layer>2</layer>
          <color>Blue</color>
          <area>6.75 0 1.5 4</area>
        </region>
      </plugin>
    
    • Service provided:
      • topic: /regions/<plugin name>
      • srv: social_worlds/Region.srv
  • actor_control: Used to control a actor by geometry_msgs/Twist interface.

    • ex.:
      <plugin name="actor_control" filename="libactor_control.so"/>
    
    • You can control the actor using teleop_twist_keyboard:
      rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/<plugin name>/cmd_vel
    
  • link_actor_to_model: Used to link an actor to a model, so when the actor moves, the model moves as well.

    • ex.:
    <plugin name="link_human_1" filename="lib_link_actor_to_model.so">
      <actor>human_actor_1</actor>
      <model>human_model_1</model>
    </plugin>
    
  • objects_publisher: Publish a set o objects position with a ROS topic.

    • ex.:
    <plugin name="objects" filename="lib_objects_publisher.so">
      <model>box_1</model>
      <model>table_1</model>
      <model>picture_frame</model>
      <model>box_small_1</model>
      <model>box_small_2</model>
      <model>box_small_3</model>
      <model>box_3</model>
      <model>box_4</model>
    </plugin>
    
    • publisher provided:
      • topic: /<plugin name>
      • msg: object_recognition_msgs/RecognizedObjectArray.msg
  • people_publisher: Publish a set o persons position with a ROS topic.

    • ex.:
    <plugin name="people" filename="lib_people_publisher.so">
      <model>human_actor_1</model>
      <model>human_actor_2</model>
      <model>human_actor_3</model>
      <model>human_actor_4</model>
    </plugin>
    
    • publisher provided:
      • topic: /<plugin name>
      • msg: people_msgs/People.msg

worlds:

<style type="text/css" media="screen"> .crop img { object-fit: cover; width: 150px; height: 250px; } </style>
  • simple_room

A simple room with start(green) and goal(blue) regions used for navigation purpose.

  • simple_room__boxes

A simple room with 6 boxes as obstacles.

  • simple_room__narrow_corridors

A simple room with 12 boxes forming narrow corridors.

  • simple_room__tables

A simple room with 6 tables (hard to see by a laser).

  • simple_room__boxes_small

A simple room with 6 sets with 3 small boxes (10cm height, hard to see by a laser).

  • simple_room__mix_1

A simple room with a mix of boxes, tables, narrow corridor and small boxes.

  • simple_room__static_people

A simple room with 6 static persons.

  • simple_room__dynamic_people

A simple room with 4 dynamic persons.

  • simple_room__mix_2

A simple room with 3 static persons and 2 dynamic persons.

  • simple_room__interaction_object

A simple room with 4 static persons looking to a object (picture) in the wall and forbidden(red) regions used for navigation purpose.

  • simple_room__interaction_people

A simple room with 4 pairs of static persons looking to each others and forbidden(red) regions used for navigation purpose..

  • simple_room__mix_3

A simple room.

  • robocup_2019

A representation of the 2019 RoboCup@home arena.

  • robocup_2019__receptionist

A representation of the 2019 RoboCup@home arena with objects and people used in the receptionist task.

  • fei_k5

A representation of test environment located at FEI University Center.

  • fei_k5__marathon

A representation of test environment located at FEI University Center and used for a robot marathon.

How to use this package:

Launch files used to start the package functionalities.

  |-- launch
    |--start_world.launch
    |--check_regions_test.launch
    |--real_time_factor_publisher_test.launch
  • start_world: Used to start a world in the package. Parameters:

    • world_name: (string, default: empty) - World name.
    • enable_gui: (bool, default: true) - Use or not the gazebo GUI (gzclient).
    • paused: (bool, default: false) - Start simulation paused or not. Ex.:
      roslaunch social_worlds start_world.launch world_name:=robocup_2019__receptionist
    
  • check_regions_test: Used to test check_region_node:

    • world_name: (string, default: simple_room) - World name.
    • region_name: (string, default: path) - Region to be checked. Ex.:
      roslaunch social_worlds check_region_test.launch world_name:=simple_room region_name:=path
      rostopic echo /check_path
    
  • real_time_factor_publisher_test: Used to test the real_time_factor publisher.

    • world_name: (string, default: simple_room) - World name. Ex.:
      roslaunch social_worlds real_time_factor_publisher_test.launch
      rostopic echo /real_time_factor
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 69.3%
  • CMake 27.8%
  • Shell 2.9%