mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
The models and meshes are not included. We will need to find an alternate way to reintegrate these and use them. * Add simulation/gz_msgs back, and build with Gradle. * Add back in the frc simulation plugins for gazebo. * Add a new shared library, halsim_gazebo. This library will become the interface between the HAL sim layer and gazebo. * Preserve the first channel number used in created Encoders in the Sim MockData. This allows us to use the DIO channel number to connect with simulated encoders. * Have the HAL Simulator set the reverse direction on creation. This enables a simulator to be aware of the direction. * Add a drive_motor plugin. This is a bit of a 'magic' motor, which allows us to build robot models that drive in a more realistic fashion. It does this by apply forces directly to the chassis, rather than relying on the complex motion dynamics of a driven wheel. This in turn allows the model to reduce wheel friction, reducing scrub, and allowing for a more natural driving experience.
64 lines
1.9 KiB
Bash
64 lines
1.9 KiB
Bash
#!/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"
|