Skip to content

edrumwri/schaal-juggler

Repository files navigation

This directory should be installed under the Gazebo models directory (typically
$HOME/.gazebo/models). 

Build the controller for the juggler using CMake.

Then start juggling with:

  $ gazebo ../schaal-juggler.world

from your directory used for building the plugin.

--------------------------------------------------

Alternative physics engines:

This example requires restitution to run successfully. Only ODE's restitution
model in Gazebo has been tuned to work with this example (circa Gazebo 4.0).
Bullet's restitution model should work with few changes. It remains for
to make restitution parameters settable through API calls for Gazebo's other 
supported physics engines (DART and Simbody at the time of this writing).

--------------------------------------------------

Searching for parameters:

For new physics engines- or getting existing physics working with
the Schaal juggler- it may take a parameter search to find reasonable
parameters.

Replace the text "libjuggler.so" with "libjuggler-search.so" and run the
juggler as usual- except now you will tell Gazebo to use the alternative
physics engine. For example:

  $ gazebo -e dart ../juggler.world 

will use the DART physics engine and attempt to find good parameter settings
for the juggler. The method used is grid search, and the search will likely take
several hours. Before running the grid search you will need to set
two environment variables:

  $ export GZ_BRUTE_PARAM_FILE=params
  $ export GZ_BRUTE_OUTPUT_FILE=output

The first line will tell the search the ranges and steps for the parameter
search. The second line indicates where the evaluation results should go.
The grid search will terminate Gazebo when complete. Assuming that
your file is named 'output', you will likely want to sort it to find
parameters that yield juggling, like so:

  $ sort -g -k5 < output

The tail of this output should look something like this:

bounce:1:ball-geom mu:0:ball-geom limit:0.59000000000000008 period:2.2000000000000002 20000

This means that the parameters bounce=1.0, mu=0.0, limit=0.59, and 
period=2.2 yielded a juggle for 20000 iterations (the maximum used in the
search). If the juggle does not last 20000 iterations, the juggling failed 
some time before. 
 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages