mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
|
|
#!/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"
|