| #!/bin/bash |
| #--------------------------------------------------------------------------- |
| # Copyright (c) 2018 FIRST. All Rights Reserved. |
| # Open Source Software - may be modified and shared by FRC teams. The code |
| # must be accompanied by the FIRST BSD license file in the root directory of |
| # the project. |
| #---------------------------------------------------------------------------- |
| |
| #---------------------------------------------------------------------------- |
| # Invoke gazebo, giving it the environment variables |
| # it needs to find the FRC plugins and models. |
| #---------------------------------------------------------------------------- |
| usage() { |
| echo $1: Invoke Gazebo for FRC |
| echo Usage: |
| echo " $1 name-of-world-file" |
| } |
| |
| d=`dirname "$0"` |
| fulldir=`(cd "$d"; pwd)` |
| sharedir=/usr/share/frcgazebo |
| if [ -d "$fulldir/../share" ] ; then |
| sharedir=`(cd "$fulldir/../share/frcgazebo"; pwd)` |
| fi |
| |
| # While we wait for the frc gazebo models to have a proper |
| # home, we require the user to make them accessible |
| if [ ! -d "$sharedir" ] ; then |
| cravedir=`(cd "$fulldir/../"; pwd)` |
| echo Error: you must manually place the models and world into $cravedir/share/frcgazebo |
| exit 2 |
| fi |
| |
| libsdir=/invalid/directory |
| if [ -d "$fulldir/../libs" ] ; then |
| libsdir=`(cd "$fulldir/../libs"; pwd)` |
| fi |
| |
| # Use exactly the file they gave us, or find it in ../share/frcgazebo/worlds, |
| # or find it there by adding a .world extension |
| world="$1" |
| if [ ! -f "$world" ] ; then |
| world="$sharedir/worlds/$1" |
| fi |
| if [ ! -f "$world" ] ; then |
| world="$sharedir/worlds/$1.world" |
| fi |
| |
| if [ $# -ne 1 -o "x${1:0:1}" = "x-" ] ; then |
| usage `basename $0` |
| exit 1 |
| fi |
| if [ ! -f "$world" ] ; then |
| echo Could not find $1 directly or in $sharedir/worlds |
| exit 2 |
| fi |
| |
| export GAZEBO_MODEL_PATH="$sharedir/models":$GAZEBO_MODEL_PATH |
| for x in `find "$libsdir" -type d -name shared` ; do |
| export GAZEBO_PLUGIN_PATH="$x:$GAZEBO_PLUGIN_PATH" |
| done |
| |
| gazebo "$world" |