applet |  download |  browse source |  javadoc

Also Available: MultiShadySim

The Shady Project

Shady (click for more info) is a climbing robot under development at the MIT CSAIL Distributed Robotics Lab. We work in the Stata Center in a room with a large wall-window, about 4m tall and 8m wide, which currently has no other means to shade sunlight. Shady is a mobile robot that climbs on the window's aluminum frame and dynamically deploys a localized sunshade:

Shady shading

Shady is fun, but it's there's also some serious robotics research here. It's challenging to build a robot that climbs on this kind of structure with high reliability. We've addressed this by designing intentional mechanical compliances into Shady's joints. Combined with a proprioceptive control strategy, this results in a system that is over 99.8% reliable in tests of over one thousand motions. More info and research context is available here.

This page introduces ShadySim, the Shady simulator. Right now the simulation includes kinematics and energy consumption modeling, but not full dynamics or collision detection.

Uses

ShadySim is intended to

About

See the javadoc and the source. The basic mechanism cababilities are defined in ShadyCommonAPI, and the extended simulator mechanism capabilities are given in ShadySimAPI. You will also want to read about the mechanism state (which includes the definition of coordinate frames), pose, and accounting info. The environment is defined as a set of 2D segments.

Usage

ShadySim is implemented as a REPL-style interactive interpreter. The language is JScheme with some additional built-in API. Several variables are pre-set:

shady
the shady instance
environment
the environment instance
ui
the ui instance
left and l
identifies the left barrel
right and r
identifies the right barrel
Convenience bindings are provided for ShadyCommonAPI (shady-common-api.scm), ShadySimAPI (shady-sim-api.scm), and the public UI (shady-common-api.scm) and SimUI (shady-sim-api.scm) APIs. For example, to call the Java method rotateBarrel(LEFT, -32.3) you can just say (rotate-barrel left -32.3).

Additional scheme sugar is defined in shady-common-extra.scm and shady-sim-extra.scm.

When run as an application, you interact with ShadySim via the console. Source files specified on the command line (ending in ".scm"), if any, are loaded in order. If a file named "init.scm" is specified, it is loaded before the GUI is displayed and can thus set an initial configuration. Other files are loaded after the GUI is displayed.

When run as an applet, you interact with ShadySim via the provided text box.

You can use the mouse to navigate around in the graphics window. Drag with the default (left) mouse button to pan. To zoom, drag with any other mouse button, roll the mouse wheel, or drag with any button while holding CTRL, or, on OSX, the Apple key. By default zoom is performed relative to the location of the mouse at the start of the zoom, this can be changed to the center of the window by holding down ALT. Any navigation can be accelerated by holding down SHIFT.

Download

ShadySim is released in under the GNU GPL.

Requirements

ShadySim has been tested under 1.5 JREs from Sun on GNU/Linux (Mozilla) and Windows (Firefox) and under the 1.4.2 JRE from sun on Mac OS X (Safari). Others may work.

Disclaimer

THIS INFORMATION AND/OR SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.