{"id":16177623,"url":"https://github.com/raphaelm/ba-dynfil","last_synced_at":"2026-05-11T16:02:40.470Z","repository":{"id":136535563,"uuid":"85601273","full_name":"raphaelm/ba-dynfil","owner":"raphaelm","description":"Code used to obtain the results for my Bachelor's thesis","archived":false,"fork":false,"pushed_at":"2018-05-17T15:00:28.000Z","size":4518,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-05T01:43:02.839Z","etag":null,"topics":["optimzation","robotics","stability","zmp"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphaelm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-20T16:38:48.000Z","updated_at":"2019-10-27T12:43:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"5fc1fe21-9974-4c15-8296-0d6dca618e57","html_url":"https://github.com/raphaelm/ba-dynfil","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raphaelm/ba-dynfil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelm%2Fba-dynfil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelm%2Fba-dynfil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelm%2Fba-dynfil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelm%2Fba-dynfil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphaelm","download_url":"https://codeload.github.com/raphaelm/ba-dynfil/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelm%2Fba-dynfil/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32902254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["optimzation","robotics","stability","zmp"],"created_at":"2024-10-10T05:09:43.493Z","updated_at":"2026-05-11T16:02:40.437Z","avatar_url":"https://github.com/raphaelm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dynamic Filter for Walking Motion Correction\n\nThis repository contains all code used to produce the results of my Bachelor's thesis.\n\nThe code works, but is **not actively maintained**.\nThanks to the friendly folks at [ORB](https://orb.uni-hd.de) for helping me make this happen.\n\n## Installation\n\n* Install Python 2.7, virtualenv and pip\n\n* Create and activate a virtual environment and install Python-level dependencies with\n  ``pip install -r requirements.txt``\n\n* Install custom RBDL version with the modified IK and improved Python wrapper by K. Stein,\n  M. Kudruss, P. Manns and myself from the dev branch available here:\n  https://bitbucket.org/mkudruss/rbdl/\n\n  If you are on Arch Linux, install the ``lua51`` package and run cmake with the following options:\n\n      cmake .. -DRBDL_BUILD_ADDON_LUAMODEL=ON -DRBDL_BUILD_ADDON_URDFREADER=ON \\\n               -DRBDL_BUILD_PYTHON_WRAPPER=ON -DLUA_INCLUDE_DIR=/usr/include/lua5.1 \\\n\n  Make sure to execute cmake and make within your Python virtualenv, then the python\n  versions will be automatically correct.\n\n* Set your PYTHONPATH such that it includes the build/python/ directory from RBDL, e.g.\n  ``export PYTHONPATH=../rbdl/build/python:$PYTHONPATH``\n\n## Usage\n\nThe repository contains two executable Python scripts, ``patterngenerator.py`` and\n``main.py``. Both take a similar set of options.\n\nCurrently, the following models are available in this repository:\n\n* ``heicub`` -- A model of the HeiCub robot available at ORB\n\n* ``simple`` -- A model of a very simple walking robot\n\n* ``simplelx2`` -- Same as ``simple``, but with 2x heavier legs\n\n* ``simplelx5`` -- Same as ``simple``, but with 5x heavier legs\n\n* ``simplelx10`` -- Same as ``simple``, but with 10x heavier legs\n\n### Pattern Generator\n\nThis repository comes with a very simple pattern generator that can be invoked with\n\n\tpython patterngenerator.py [options ...]\n\nIt has the following options:\n\n    --model [simple|heicub|simplelx5|simplelx10|simplelx2]\n                                    Model\n    --out-dir TEXT                  Output directory\n    --help                          Show this message and exit.\n\nIt will output plots and a trajectory file to ``out/pg_data.txt`` by default.\n\n### Main Script\n\nThe main script supports a number of commandline options and subcommands.\nIt can be invoked in the following way:\n\n\tpython main.py [toplevel options ...] subcommand [command options ...]\n\nCurrently, the following values can be set as top-level options:\n\n    --model [simple|heicub|simplelx5|simplelx10|simplelx2]\n                                    Model\n    --trajectory TEXT               Trajectory file  [required]\n    --csv-delim TEXT                CSV delimiter of trajectory file\n    --out-dir TEXT                  Output directory\n    --show                          Open plot windows\n    -w / --show-warnings            Show warnings\n    --help                          Show this message and exit.\n\nThere are multiple subcommands. The most important one is ``filter``, which performs\nthe full set of actions required to evaluate the results of the dynamic filter, that\nmeans it:\n\n* Calculates the inverse kinematics on the pattern generator data and calculates\n  the ZMP trajectory from that using inverse dynamics\n\n* Applies the dynamic filter\n\n* Calculates a ZMP trajectory again\n\n* Creates MeshUp animation files\n\n* Creates a lot of plots.\n\nIt again takes a number of options, as a number of interpolation and filter\nmethods are currently implemented.\n\n    --filter-method [steepestdescent|gaussnewton|newton|pc]\n                                    Filter method\n    --ik-method [numerical|analytical]\n                                    IK method\n    --iterations INTEGER RANGE      Number of filter iterations\n    --interpolate [none|savgol]     Apply interpolation to filter result\n    --help                          Show this message and exit.\n\nThe other subcommands, ``compare_ik`` and ``compare_interpolation`` are for \nevaluation purposes of parts of the codebase.  ``evaluate`` creates plots for\na huge number of filter configurations at once, ``evaluate_speed`` evaluates\nthe performance of the algorithms, ``evaluate_zmp_accuracy`` compares two\ndifferent ZMP computation algorithms and ``plot_error`` creates a plot of the\nraw result without any filters applied.\n\nYou can get more information on their options using e.g.\n\n    python main.py --trajectory out/pc_data.txt compare_interpolation --help\n\n### Makefile\n\nThe Makefile included runs a number of batch tasks that together generate (nearly)\nall plots used in my thesis -- and a lot more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelm%2Fba-dynfil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphaelm%2Fba-dynfil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelm%2Fba-dynfil/lists"}