Fra Robin

Revisjon per 13. feb 2016 kl. 14:40 av Fredrsae (Diskusjon | bidrag)
Gå til: navigasjon, søk



Fredrik Sævland

M.Sc Robotikk og Intelligente Systemer,

Thesis: Optimizing and adapting gait pattern of a legged robot

I'm using an EA to evolve and adapt a legged robot (e.g Arachna, Quadratot) to different environments by changing the gait pattern based on what type of terrain it is currently walking on.

Progress plan

  • October through December
    • Essay and progress plan
    • Set up Evorob, Gazebo and possibly other sim-platforms, and figure out which one to use
    • By this month I should have decided upon a simulator to use. Experiment with this platform
    • Do further research on IT&E and The Transferability Approach, and work on implementation
    • Start work on implementation, the simulator and robot should be able to work together in some form by now
  • January
    • Have GA implemented and most of IT&E ready
  • February
    • Write some of the implementation-part of the thesis
    • Start gathering the test-results
    • Finish the implementation-part
  • March
    • Write about the experiments
  • April
    • Finish up the thesis


Git repository

The implementation of this master thesis is done in C++11 using a set of free software frameworks called Robdyn and Sferes2.


Screenshot of Robdyn 'walking' demo

Robdyn is a simple C++ wrapper around ODE <ref>OpenDynamicsEngine</ref> and OSG <ref>OpenSceneGraph</ref> which makes a nice basis for simulating robots without having to dwelve into the more complex parts of these libraries. Robdyn works by simply defining your own robot similar to, and then testing it out in a demo. By then compiling the code using the bundled waf build-system it will create a two library-files, librobdyn.a and librobdyn_osgvisitor.a, which can then be linked into any other code together with the header-files. Robdyn makes it very easy to do your simulations headless by separating out the simulation and graphics into a visitor design pattern called the OSG-visitor. This means that dropping the graphical rendering is as simple as not making the objects accept the OSG-visitor.


Sferes2 is a high-performance, multi-core, lightweight, generic C++98 <ref>Although the code written for this application is C++11</ref> framework for evolutionary computation. It is the second component used in this implementation, and is the framework responsible to do the evolutionary algorithm. Although there are a few evolutionary algorithms to choose between, the algorithm called NSGA-II with a single objective optimization will be used in this case. Sferes2 offers multi-core support, as well as OpenMPI-support, which invites computation on massive computer clusters.

The Robot

Photo of "Robot 4", courtesy of K. Glette and E. Samuelsen"
Schematic of "Robot 4", courtesy of K. Glette and E. Samuelsen
Rough estimation of "Robot 4" implemented in Robdyn

The robot used for this application is a four-legged quadrapod that was developed in-house here at Robin by Kyrre Glette and Eivind Samuelsen in the paper Real-World Reproduction of Evolved Robot Morphologies: Automated Categorization and Evaluation, and goes under the nonchalant name of "Robot 4". The interesting thing about this robot is that it is designed by evolving itself and was evaluated by a genetic algorithm to be an offspring with good performance-fitness.



IT&E builds a multidimensional map of different robot-configurations, and searches and eliminates neighbourhoods to close in on a suitable result.

In the case of this thesis I will use IT&E as a form of collection of previously evolved configurations, so that I can use environment input to determine which previously evolved gait will best suit the terrain.

The robot stores knowledge from previous experience in the form of a map of the behaviour-performance space. Guided by this map, the robot tries different types of behaviours that are predicted to perform well, and as tests are conducted it updates the estimates of the performance of those types of behaviours. The process then ends when the robot has predicted that the best behaviour has been discovered.

The gaits can be described by how much the legs touch the ground and speed of the robot. In this scenario the best features would probably be how high the robot lifts the legs, and how far ahead it moves them, where the behaviour is tested by applying the scenario in the simulator and then measuring the speed.

Personlige verktøy