{"id":19526643,"url":"https://github.com/zju-fast-lab/implicit-svsdf-planner","last_synced_at":"2025-03-17T16:13:15.630Z","repository":{"id":229272125,"uuid":"776296629","full_name":"ZJU-FAST-Lab/Implicit-SVSDF-Planner","owner":"ZJU-FAST-Lab","description":"[SIGGRAPH 2024 \u0026 TOG]","archived":false,"fork":false,"pushed_at":"2024-07-18T15:07:45.000Z","size":64084,"stargazers_count":169,"open_issues_count":2,"forks_count":12,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-02T14:19:11.614Z","etag":null,"topics":["computer-graphics","optimization","path-planning","swept-volumes","trajectory-generation"],"latest_commit_sha":null,"homepage":"","language":"C++","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/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}},"created_at":"2024-03-23T05:32:36.000Z","updated_at":"2025-02-28T21:13:42.000Z","dependencies_parsed_at":"2024-05-02T04:23:20.622Z","dependency_job_id":"c0717fbe-0d61-41c9-8ac0-9ee8fa0aafc7","html_url":"https://github.com/ZJU-FAST-Lab/Implicit-SVSDF-Planner","commit_stats":null,"previous_names":["zju-fast-lab/implicit-svsdf-planner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FImplicit-SVSDF-Planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FImplicit-SVSDF-Planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FImplicit-SVSDF-Planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FImplicit-SVSDF-Planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/Implicit-SVSDF-Planner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244066189,"owners_count":20392406,"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":["computer-graphics","optimization","path-planning","swept-volumes","trajectory-generation"],"created_at":"2024-11-11T01:11:12.483Z","updated_at":"2025-03-17T16:13:15.611Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Implicit-SVSDF-Planner\nCode Release for SIGGRAPH 2024 \u0026 TOG\n\n**Related Paper**: \n\n- [Implicit Swept Volume SDF: Enabling Continuous Collision-Free Trajectory Generation for Arbitrary Shapes](https://arxiv.org/pdf/2405.00362v1)\n- Authors: Jingping Wang*, Tingrui Zhang*, Qixuan Zhang, Chuxiao Zeng, Jingyi Yu, Chao Xu, Lan Xu†, Fei Gao†.\n\n  \n* [Video on Bilibili](https://www.bilibili.com/video/BV1SJ4m1E7YF/?spm_id_from=333.999.0.0\u0026vd_source=86f7d513b2e1d5a2a395a307e7802996)\n* [Video on Youtube](https://youtu.be/XbcX-jPE89U)\n\n\n\u003ca href=\"https://www.bilibili.com/video/BV1SJ4m1E7YF/?spm_id_from=333.999.0.0\u0026vd_source=86f7d513b2e1d5a2a395a307e7802996\" target=\"blank\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"figs/Teaser.png\" width=\"1000\"/\u003e\n  \u003c/p\u003e\n\u003c/a\u003e\n\n## Abstract\nIn the field of trajectory generation for objects, ensuring continuous collision-free motion remains a huge challenge, especially for non-convex geometries and complex environments. Previous methods either oversimplify object shapes, which results in a sacrifice of feasible space or rely on discrete sampling, which suffers from the 'tunnel effect'. To address these limitations, we propose a novel hierarchical trajectory generation pipeline, which utilizes the **S**wept **V**olume **S**igned **D**istance **F**ield (SVSDF) to guide trajectory optimization for **C**ontinuous **C**ollision **A**voidance (CCA). Our interdisciplinary approach, blending techniques from graphics and robotics, exhibits outstanding effectiveness in solving this problem. We formulate the computation of the SVSDF as a Generalized Semi-Infinite Programming model, and we solve for the numerical solutions at query points implicitly, thereby eliminating the need for explicit reconstruction of the surface. Our algorithm has been validated in a variety of complex scenarios and applies to robots of various dynamics, including both rigid and deformable shapes. It demonstrates exceptional universality and superior CCA performance compared to typical algorithms.\n\n\n\n  \u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"figs/a.gif\" width=\"48%\" /\u003e\n  \u003cimg src=\"figs/b.gif\" width=\"48%\" /\u003e\n  \u003c/div\u003e\n  \u003cbr\u003e\n  \u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"figs/c.gif\" width=\"48%\" /\u003e\n  \u003cimg src=\"figs/d.gif\" width=\"48%\" /\u003e\n  \u003c/div\u003e\n \n\n# Prerequisites\nWe use ros-noetic, which is commonly used for robotics development. To install ros-noetic, follow the instructions in the [ros-noetic for ubuntu20.04](http://wiki.ros.org/noetic/Installation/Ubuntu).([ros-melodic for ubuntu18.04](http://wiki.ros.org/melodic/Installation/Ubuntu))\nMake sure that the necessary Python packages catkin_pkg and empy(empy==3.3.4) are installed in your Python environment.For example, if the python environment in build.sh is set to \"-DPYTHON_EXECUTABLE=/usr/bin/python3\", you should have installed catkin_pkg under /usr/bin/python3:\n```sh\nsudo apt-get install gcc g++ make gfortran cmake libomp-dev\n/usr/bin/python3 -m pip3 install pygame==2.0.0.dev12 \n/usr/bin/python3 -m pip install catkin_pkg\n/usr/bin/python3 -m uninstall em\n/usr/bin/python3 -m install empy==3.3.4\n```\n\n## Qucik Start\n\n```sh\ngit clone https://github.com/ZJU-FAST-Lab/Implicit-SVSDF-Planner.git\ncd Implicit-SVSDF-Planner\n./build.sh\nsource devel/setup.bash #(If use bash)\nsource devel/setup.zsh  #(If use zsh) \nroslaunch plan_manager xxxxx.launch \n```\nWe provide several launch files for different shapes. If loadStartEnd in someshape.yaml (src/plan_manager/config/) is set to true, the start and end points will be loaded automatically, otherwise, the start and end points will be selected by clicking on the 3D nav goal in rviz or pressing the 'G' key in the keyboard. \n```sh\nroslaunch plan_manager run_sdTunnel.launch\nroslaunch plan_manager run_star.launch\nroslaunch plan_manager run_sdUnevenCapsule.launch\nroslaunch plan_manager run_sdRoundedX.launch\nroslaunch plan_manager run_sdRoundedCross.launch\nroslaunch plan_manager run_sdRhombus.launch\nroslaunch plan_manager run_sdPie2.launch\nroslaunch plan_manager run_sdPie.launch\nroslaunch plan_manager run_sdHorseshoe.launch\nroslaunch plan_manager run_sdHeart.launch\nroslaunch plan_manager run_sdCutDisk.launch\nroslaunch plan_manager run_sdArc.launch\n```\nThe shape variant demos will be released later...\n## Tips\nThis is an extension of our previous work：\n- [Continuous Implicit SDF Based Any-shape Robot Trajectory Optimization(IROS 2023)](https://github.com/ZJU-FAST-Lab/Implicit-SDF-Planner). Similarly, \n1. We use OpenMp for parallel acceleration, so the \"threads_num\" in the yaml should be adjusted to improve performance. The recommended threads_num is about 1.5 times the number of logical cores on the machine.\n2. If users customize the shape, the obj file must be provided. We recommend using meshlab to generate obj files. For better performance, users can also implement corresponding SDF function, otherwise Libigl is used by default to compute the SDF.\n3. The kernel_size multiplied by the map resolution should not be too small, this value should be greater than the maximum length of the robot's shape. So the \"kernel_size\" in the yaml should be adjusted accordingly (not too small).\n\n## Licence\n\nThe source code is released under [MIT](https://en.wikipedia.org/wiki/MIT_License) license.\n\n## Maintaince\n\nFor any technical issue or bug, please contact Tingrui Zhang (tingruizhang@zju.edu.cn) or Jingping Wang (22232111@zju.edu.cn).\nFor commercial inquiries, please contact [Fei GAO](http://zju-fast.com/fei-gao/) (fgaoaa@zju.edu.cn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fimplicit-svsdf-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Fimplicit-svsdf-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fimplicit-svsdf-planner/lists"}