{"id":30745457,"url":"https://github.com/zju-fast-lab/ddr-opt","last_synced_at":"2025-09-04T03:47:01.268Z","repository":{"id":272718436,"uuid":"853199700","full_name":"ZJU-FAST-Lab/DDR-opt","owner":"ZJU-FAST-Lab","description":"Universal Trajectory Optimization Framework for Differential Drive Robot Class","archived":false,"fork":false,"pushed_at":"2025-07-25T09:39:19.000Z","size":76528,"stargazers_count":192,"open_issues_count":6,"forks_count":22,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-07-25T15:43:36.736Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZJU-FAST-Lab.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,"zenodo":null}},"created_at":"2024-09-06T07:22:32.000Z","updated_at":"2025-07-25T14:30:57.000Z","dependencies_parsed_at":"2025-07-25T11:22:02.559Z","dependency_job_id":"44a8771c-9dbf-4a6e-990c-f05b470dbaac","html_url":"https://github.com/ZJU-FAST-Lab/DDR-opt","commit_stats":null,"previous_names":["zju-fast-lab/ddr-opt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZJU-FAST-Lab/DDR-opt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FDDR-opt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FDDR-opt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FDDR-opt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FDDR-opt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/DDR-opt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FDDR-opt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273549099,"owners_count":25125257,"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","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"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":[],"created_at":"2025-09-04T03:46:59.075Z","updated_at":"2025-09-04T03:47:01.251Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DDR-opt\n\nDDR-opt is a universal Trajectory Optimization Framework for Differential Drive Robot Class.\n\nThe paper is published in T-ASE!\n\nPlease visit our project website [DDR-opt](https://zju-fast-lab.github.io/DDR-opt/).\nIf you find this work useful or interesting, please kindly give us a star ⭐, thanks! 😀\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"others/picture/head_figure_trajectory2.png\" alt=\"Trajectory\" width=\"70%\"\u003e\n\u003c/p\u003e\n\n## Quick Start\nCompiling tests passed on ubuntu **18.04, and 20.04** with ros installed.\nYou can just execute the following commands one by one.\n### Dependence:\n``` bash\nsudo apt install ros-${ROS_DISTRO}-tf2-sensor-msgs # noetic or melodic\n```\n\nOSQP and OSQP-Eigen make it easier to modify parameters and are used to solve control problems under velocity and angular velocity control.\nYou can download them from the following two links:\n- Download [osqp-v0.6.3-src.tar.gz](https://github.com/osqp/osqp/releases/tag/v0.6.3) or click [here](https://github.com/osqp/osqp/releases/download/v0.6.3/osqp-v0.6.3-src.tar.gz), and then follow the [installation instructions](https://osqp.org/docs/get_started/sources.html)\n- Download [OSQP-eigen v0.8.1](https://github.com/robotology/osqp-eigen/releases/tag/v0.8.1).\n```bash\ncd osqp-eigen\nmkdir build\ncd build\ncmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../\nmake\nsudo make install\n```\n\n**NOTE:** We may have forgotten other dependencies 😟, sorry! If you could provide missing dependencies, we would greatly appreciate it. \n\n### Build\n``` bash\nmkdir -p DDRopt_ws/src\ncd DDRopt_ws/src\ngit clone git@github.com:ZJU-FAST-Lab/DDR-opt.git\ncd ..\ncatkin build\n```\n\n### Run\nYou can run any of the following: \n``` bash\nroslaunch plan_manager planner_nmpc.launch # for robots controlled by wheel speeds\nroslaunch plan_manager planner_sim_unknown.launch # for planning in unknown space\nroslaunch plan_manager planner_sim.launch # for robots controlled by linear and angular velocity\n```\n\nYou can use `2D Nav Goal` to set goal point.  \n\n## Update\n25-07-25  \n1. Enhanced the 'if_directly_constrain_v_omega' feature. Users can now select between: 1) Constraining linear (v) and angular (omega) velocities independently, or 2) Constraining the product (v * omega) considering wheel speed limits.\n2. Reduced the number of ROS messages in the code that do not use topic remapping. \n3. Fixed the bug reported in [Issue 11](https://github.com/ZJU-FAST-Lab/DDR-opt/issues/11). Thanks to SCUTBob for the report!\n\n## Citing\nThe method used in this software are described in the following paper (available on [IEEE](https://ieeexplore.ieee.org/document/10924228) and [arxiv](https://arxiv.org/abs/2409.07924v3))\n```\n@ARTICLE{zhang2024universaltrajectoryoptimizationframework,\n  author={Zhang, Mengke and Chen, Nanhe and Wang, Hu and Qiu, Jianxiong and Han, Zhichao and Ren, Qiuyu and Xu, Chao and Gao, Fei and Cao, Yanjun},\n  journal={IEEE Transactions on Automation Science and Engineering}, \n  title={Universal Trajectory Optimization Framework for Differential Drive Robot Class}, \n  year={2025},\n  volume={22},\n  number={},\n  pages={13030-13045},\n  keywords={Robots;Mobile robots;Kinematics;Trajectory optimization;Planning;Robot kinematics;Computational modeling;Dynamics;Wheels;Tracking;Motion planning;trajectory optimization;differential drive robot class;nonholonomic dynamics},\n  doi={10.1109/TASE.2025.3550676}}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fddr-opt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Fddr-opt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fddr-opt/lists"}