{"id":15638056,"url":"https://github.com/aravindr93/trajopt","last_synced_at":"2025-04-15T16:54:19.169Z","repository":{"id":95978416,"uuid":"154569696","full_name":"aravindr93/trajopt","owner":"aravindr93","description":"Trajectory optimization algorithms for robotic control.","archived":false,"fork":false,"pushed_at":"2022-11-20T10:39:40.000Z","size":53,"stargazers_count":108,"open_issues_count":2,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T22:41:32.341Z","etag":null,"topics":["mujoco","robotics","robotics-control","trajectory-optimization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aravindr93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-10-24T21:09:57.000Z","updated_at":"2025-03-13T17:40:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"9dac0953-223b-4782-9516-7949dea1156a","html_url":"https://github.com/aravindr93/trajopt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aravindr93%2Ftrajopt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aravindr93%2Ftrajopt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aravindr93%2Ftrajopt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aravindr93%2Ftrajopt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aravindr93","download_url":"https://codeload.github.com/aravindr93/trajopt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246339431,"owners_count":20761553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["mujoco","robotics","robotics-control","trajectory-optimization"],"created_at":"2024-10-03T11:17:19.698Z","updated_at":"2025-03-30T15:32:11.542Z","avatar_url":"https://github.com/aravindr93.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trajectory Optimization Algorithms\nThis package contains trajectory optimization algorithms meant predominantly for continuous control taks (simulated with [MuJoCo](http://www.mujoco.org/)).\n\n# Installation\nThe main package dependencies are `MuJoCo` and `mjrl`. See [setup-instructions](https://github.com/aravindr93/mjrl/tree/master/setup) to get a working conda environment and setup dependencies.\n\nAfter [`mujoco_py`](https://github.com/openai/mujoco-py) has been installed, the package can be used by either adding to path as:\n```\nexport PYTHONPATH=\u003cpath/to/trajopt\u003e$PYTHONPATH\n```\nor through the pip install module\n```\n$ cd trajopt\n$ pip install -e .\n```\nThe tricky part of the installation is likely to be `mujoco_py`. Please see [instructions and known issues](https://github.com/aravindr93/mjrl/tree/master/setup) for help.\n\n# API and example usage\nThe algorithms assume an environment abstraction similar to OpenAI `gym`, but requires two additional functions to be able to run the algorithms provided here.\n- `get_env_state()` should return a dictionary with all the information required to reconstruct the scene and dynamics. For most use cases, this can just be the `qpos` and `qvel`. However, in some cases, additional information may be required to construct scene and dynamics. For example, in multi-goal RL, we can represent virtual goals using sites as opposed to real joints.\n- `set_env_state(state_dict)` should take in a dictionary, and use the contents of the dictionary to recreate the scene specified by the dictionary.\nThe example [reacher environment](https://github.com/aravindr93/trajopt/blob/redesign/trajopt/envs/reacher_env.py) has an illustrative.\n\n# Example Usage\nSee this directory for illustrative examples: [`trajopt/examples`](https://github.com/aravindr93/trajopt/tree/master/examples).\n\n# Bibliography\nIf you find the package useful, please cite the following paper.\n```\n@INPROCEEDINGS{Lowrey-ICLR-19,\n    AUTHOR    = {Kendall Lowrey AND Aravind Rajeswaran AND Sham Kakade AND \n                 Emanuel Todorov AND Igor Mordatch},\n    TITLE     = \"{Plan Online, Learn Offline: Efficient Learning and Exploration via Model-Based Control}\",\n    BOOKTITLE = {ICLR},\n    YEAR      = {2019},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faravindr93%2Ftrajopt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faravindr93%2Ftrajopt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faravindr93%2Ftrajopt/lists"}