The contents of this repository were created in the scope of the project "Autonomous Systems" at Ulm University.
This is the main contribution of the project.
It contains the implementation of the modular cost function for modelling humans' social space along with the jupyter notebook playground.
Moreover, the employment of the cost function as the social space navigation layer is in this package.
msg: contains the messages
src: contains "mock" publishers for humans messages, there is a file for each scenario
src: contains "mock" publishers for people messages, there is a file for each scenario
src: contains a node to publish navigation goals to the robot
contains worlds for the respective scenarios with the TIAGo robot, need to be placed in the following directory/package tiago_simulation/tiago_gazebo/worlds
launch: contains a file for launching the navigation with "mock" publishers for people messages and the respective social_navigation_layers (Proxemic and Passing Layer)
config: contains the respective config files for the navigation
launch: contains a file for launching the navigation with "mock" publishers for human messages and the respective socialspace_navigation_layer (our SocialSpace Layer from above)
config: contains the respective config files for the navigation
Make sure that all .py
(and to be on the save side all .launch
) files have execute permissions.
In order to so, execute the following in this directory
chmod +x humans/src/*.py people_publisher/src/*.py socialspace_navigation_layer/src/*.py navgoal_publisher/src/*.py
chmod +x navigation_baseline/launch/*.launch navigation_baseline/launch/*.launch
You can use the socialspace_navigation_layer
along with the humans
package on its own.
It can be used in the costmap as a plugin. See ROS-Plugins_Specification for more details.
You may also use the packages navigation_baseline
and navigation_socialspace
as a reference for integration (see config/base/common/
directory for plugin usage).
In order to select the hyperparemters of the navigation layer, you may want to make use of rqt_reconfigure via: rosrun rqt_reconfigure rqt_reconfigure
.
If you want to navigate the robot to a specific destination (without making use of the rviz UI), you may want to run: rosrun navgoal_publisher navgoal.py <dest_x> <dest_y> <dest_yaw>
.
Install ROS with TIAGo according to the following description with the deviations noted below: http://wiki.ros.org/Robots/TIAGo/Tutorials/Installation/InstallUbuntuAndROS
- before running rosdep:
- place all packages of this repository into the
src
directory of the TIAGo workspace - place the files from the
worlds_for__tiago_simulation__tiago_gazebo__worlds
directory into the directory/packagetiago_simulation/tiago_gazebo/worlds
- if you also want to run the baseline, clone the following github repository into the
src
directory: https://github.com/wg-perception/people.git (branch: melodic)
- place all packages of this repository into the
Even when you have TIAGo already installed, it is required that you perform the above named steps and execute rosdep and catkin again as described in the above-linked TIAGo installation tutorial.
baseline: roslaunch navigation_baseline tiago_navigation.launch public_sim:=true scenario:=scenario#
(replace # with the respective scneario number)
socialspace: roslaunch navigation_socialspace tiago_navigation.launch public_sim:=true scenario:=scenario#
(replace # with the respective scneario number)
In order to manipulate the hyperparemters of the navigation layer, you may want to make use of rqt_reconfigure via: rosrun rqt_reconfigure rqt_reconfigure
.
If you want to navigate the robot to a specific destination (without making use of the rviz UI), you may want to run: rosrun navgoal_publisher navgoal.py <dest_x> <dest_y> <dest_yaw>
.