RiSE Platform Gait Builder Notes

This page contains information about the steps used to modify and test gaits on the RiSE platform.

The RiSE platform software development environment includes a tool known as GaitBuilder that helps create/adjust gaits for the robot. In the RoboDevel tree, it is located at RoboDevel/RiSE/Tools/Matlab/. The GaitBuilder folder contains the scripts that are used to transform the gait parameters in a robot-usable .RC file. The GaitScripts folder contains scripts that use the GaitBuilder tools to create gaits with certain characteristics (grouped by families). For more info on the use of GaitBuilder tools see README.txt and TUTORIAL.txt, which are in the GaitScripts folder. The easiest way to get a new gait is to take an existing one and tweak it to your needs. There are a few visualization tools described below that help plan trajectories and leg phasings for gait development. Once you get a gait that you are satisfied with, you should copy it to the robot and insert it into the GUI to access it.

Leg phasing and trajectory development for gaits

Using the CustomGaitX tools in GaitBuilder, it is possible to create individual trajectories for each leg. Browse the scripts in RoboDevel/RiSE/Tools/Matlab/GaitScripts/ for some examples of how this can be done. To better visualize the leg trajectories, many of these scripts contain a plot flag variable, that will create a 3D drawing of a leg trajectory being created (using the GBplot3.m or GBanimate3.m scripts). Also, to better visualize the phasing of legs in a gait (using the PIF, PIR, and PC variables), GPlan.m was written. GPlan.m will display the leg timings, on both a time scale plot and body representation.

Copying gaits to the robot

On the robot, the gaits for CustomGaitX (the most commonly used mode) are sorted among folders at RoboDevel/RiSE/Supervisor/Config/default. The gaits generated at Stanford should be placed in the su_gaits folder. To copy a gait (.RC file) to the robot, the scp command can be used. Here is an example of how this can be done:

scp cgx_testgait_1.rc rise@surise:RoboDevel/RiSE/Supervisor/Config/default/su_gaits

A short Matlab script has been written that will take care of this for you. The script cpgait2suriseslot.sh can be used in the following way (from within Matlab):


The script currently prompts the user to select a slot for the gait. In the robot control GUI, the gaits are arranged into 6 groups, each having 6 slots for gaits to be accessed. A 'SU Test Gaits' group has been created for Stanford gaits and currently 3 or these slots are setup for quick gait uploads. In order to do this, the gaits have to be uploaded to a certain folder, and have a specific name in order for the gait software to find the gait. This is all taken care of by the cpgait2suriseslot script.

Changing the gaits available in the GUI

When the robot begins program execution, it reads in a specified list of gaits to use while it is running. In order to use a gait, it must be one of the files that is read during program startup. The list of the groups and the corresponding gaits that are read in for CustomGaitX are located in a file named gaitx_list.rc, which is located at RoboDevel/RiSE/Supervisor/Config/robots/risebus.

On the Stanford robot, we have set up 3 placeholder gait slots for easy gait uploading. Files are copied to the robot with specific filenames, and thus there is no need to edit gaitx_list.rc. The various gaits can easily be distiguished by using the 'gait_name' variable in the Matlab script that generated the gait. This name will then appear in the GUI once the file is copied over.

After the gaits have been copied to the robot and included in the GUI, it is simply a matter of 1) calibrating the robot, 2) selecting CustomGaitX, 3) selecting the gait group, 4) selecting the gait, and 5) launching the gait.

-- AMcClung? - 27 Sep 2005

This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback