/naowalkoptimiser

A project to optimise walks for the NAO robot

Primary LanguageC++GNU General Public License v3.0GPL-3.0

The purpose of this software is to autonomously adjust walk parameters for Aldebaran’s NAO robot.

At present, a laser scanner is used to track, and remotely control the NAO. The measured speed is sent to the NAO, where an EHCLS algorithm is used to minimise the cost of transport.

The walk parameters adjusted are joint stiffness values. A gait cycle is split into 4 phases; stance, push, swing and impact. The joint stiffness of each leg joint is specified for each gait phase. Thus, there are 24 parameters under optimisation.

NOTE. This walk engine is now obsolete and I will not be developing it further.

CONTENTS

CMakeLists.txt
Top level cmake file generated by Aldebaran’s module generator.

LICENCE
GNU GPLv3 licence file

README.textile
This file.

config.in
Another file generated by Alderbaran’s module generator

jasondata.tgz
The steps that are linked together by JWalk1.2.

scripts.zip
The motion scripts executed by locomotion (getups, kicks, and goalie saves)

/server
The source code for the laptop server. Uses the laser scanner to track and control the NAO. The network is also used to transmit the current speed.

/src
The source code for the NAO code. This includes code for JWalk1.2, and an implementation of the EHCLS algorithm.

  • Locomotion contains all of the motion code, scripts and walking. Additionally, the code to communicate with the dcm and almemory is here. Consequently, all of the ‘sensors’ are here to. The top-level file is Walk/jwalk.h.
  • Network contains a small amount of network code. Its function is to receive network walk commands from the controller, and to receive the measured speed.

walkgenerator.zip
This archive contains everything you need if you desire to regenerate the step files included in jasondata.tgz. Documentation for this is inside the archive

/walkoptimiser.xcodeproj
XCode project files.

INSTALLING

The software is designed to be used with Aldebaran’s RoboCup ToolKit. It will compile using Aldebaran’s cross—compile tools. Thus, to compile and run the code just follow their instructions for creating a dynamic library, while targeting the NAO. Modimodify /opt/naoqi/modules/lib/autoload.ini to be

[core]
albase
[extra]
devicecommunicationmanager
walkoptimiser

There are 100s of data files required by JWalk1.2. The steps (jasondata.tgz) need to be put in /home/root/jasondata/ on the NAO, and the scripts (scripts.zip) need to be put in /home/root.

RUNNING

The libwalkoptimiser will automatically be loaded when naoqi starts, so nao restart.

After naoqi starts, robot will await your command.