{"id":24098452,"url":"https://github.com/matlab-deep-learning/pretrained-dlchomp","last_synced_at":"2026-04-24T21:31:47.154Z","repository":{"id":237552645,"uuid":"794687585","full_name":"matlab-deep-learning/pretrained-dlCHOMP","owner":"matlab-deep-learning","description":"Pretrained networks for Deep-Learning-Based Covariant Hamiltonian Optimization for Motion Planning (DLCHOMP) of robotic manipulators for MATLAB®","archived":false,"fork":false,"pushed_at":"2024-05-01T19:05:25.000Z","size":2551,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-11T05:46:58.341Z","etag":null,"topics":["deep-learning","matlab","matlab-deep-learning","motion-planning","pretrained-models","pretrained-networks","robotic-manipulators","robotics"],"latest_commit_sha":null,"homepage":"https://www.mathworks.com/help/robotics/ref/dlchomp.html","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matlab-deep-learning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-01T18:34:43.000Z","updated_at":"2025-02-05T07:18:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"e077ca5c-9914-48d5-9949-83d7dbe842ae","html_url":"https://github.com/matlab-deep-learning/pretrained-dlCHOMP","commit_stats":null,"previous_names":["matlab-deep-learning/pretrained-dlchomp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matlab-deep-learning/pretrained-dlCHOMP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matlab-deep-learning%2Fpretrained-dlCHOMP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matlab-deep-learning%2Fpretrained-dlCHOMP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matlab-deep-learning%2Fpretrained-dlCHOMP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matlab-deep-learning%2Fpretrained-dlCHOMP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matlab-deep-learning","download_url":"https://codeload.github.com/matlab-deep-learning/pretrained-dlCHOMP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matlab-deep-learning%2Fpretrained-dlCHOMP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32241591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["deep-learning","matlab","matlab-deep-learning","motion-planning","pretrained-models","pretrained-networks","robotic-manipulators","robotics"],"created_at":"2025-01-10T14:45:56.873Z","updated_at":"2026-04-24T21:31:47.148Z","avatar_url":"https://github.com/matlab-deep-learning.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pretrained DLCHOMP Networks for Manipulator Motion Planning\nThis repository provides pretrained networks for Deep-Learning-Based Covariant Hamiltonian Optimization for Motion Planning (DLCHOMP) of robotic manipulators for MATLAB®. These pretrained networks can output intermediate trajectory guesses for desired start to goal configurations in a given spherical obstacle environment. [![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=matlab-deep-learning/pretrained-dlCHOMP)\n\n![DLCHOMP High Level Visualization](/resources/images/dlCHOMP_High-Level_Vizualization.svg)\n\n**Creator**: MathWorks Development\n\n**Includes un-trained model**: ❌  \n\n**Includes transfer learning script**: ✅  \n([See this page](https://www.mathworks.com/help/releases/R2024a/robotics/ref/dlchomp.html#mw_87c86e03-23d5-48f9-818f-356a363287ab))\n\n**Supported Robots**: ✅   \n([See this page](https://www.mathworks.com/help/releases/R2024a/robotics/ref/dlchomp.html#mw_93957c22-f6cc-4e8c-ac45-1ae16cfcb2ef))\n\n## Requirements\n- MATLAB® R2024a or later\n- Robotics System Toolbox™\n- Deep Learning Toolbox™\n\n## Getting Started\nDownload or clone this repository to your machine and open it in MATLAB®.\n\n### Setup\nAdd path to the source directory.\n\n```matlab\naddpath(\"src\");\n```\n\n### Download Pretrained Network\nUse the code below to download the pretrained network for a supported robot. For a list of supported robots, see the table in the [Metrics and Evaluation](#metrics-and-evaluation) section. To demonstrate this workflow, download the pretrained DLCHOMP network for the KUKA LBR iiwa 7.\n\n```matlab\nrobotName = \"kukaIiwa7\";\ndata = helper.downloadPretrainedDLCHOMPForRobot(robotName);\n```\n\n### Summarize Pretrained Network\nExtract the pretrained network. You can summarize and analyze the network as needed to better understand the architecture of the network.\n\n```matlab\npretrainedNetwork = data.trainedNetwork;\nsummary(pretrainedNetwork);\nanalyzeNetwork(pretrainedNetwork);\n```\n\nIf you only need the pretrained network and not the pretrained optimizer, skip to the [DLCHOMP Details](#dlchomp-details) section. Otherwise, continue to obtain a pretrained optimizer.\n\n### Obtain Pretrained DLCHOMP Optimizer\nExtract the pretrained optimizer.\n\n```matlab\npretrainedDLCHOMP = data.trainedDLCHOMP;\n```\n\n### Predict Trajectory Using Pretrained DLCHOMP Optimizer\nUse the pretrained optimizer to predict a trajectory between a start joint configuration and goal joint configuration in an obstacle environment.\n\n```matlab\n% Extract obstacle environment that was used to train the DLCHOMP optimizer.\npretrainedDLCHOMP.SphericalObstacles = data.unseenObstacles;\n\n% Predict a trajectory using the optimizer.\n[optimWpts,optimTpts,solinfo] = optimize(pretrainedDLCHOMP,data.unseenStart,data.unseenGoal);\n\n% Visualize results.\nshow(pretrainedDLCHOMP,optimWpts);\n```\n![DLCHOMP Output Prediction](/resources/images/dlCHOMP_Output_Prediction.png)\n\n### Create and Train DLCHOMP Optimizer for New Applications\nTo generate data and train a DLCHOMP optimizer to suit your application or task, follow the [Train Deep-Learning-Based CHOMP Optimizer for Motion Planning](https://www.mathworks.com/help/releases/R2024a/robotics/ug/train-deep-learning-based-chomp-optimizer.html) example.\n\n### Train Custom DLCHOMP Optimizer Using Transfer Learning\nTransfer learning enables you to adapt a pretrained DLCHOMP optimizer to your dataset. Follow these examples to create a custom DLCHOMP optimizer and train it for transfer learning to:\n- A different number of waypoints in trajectory by following the [Using Pretrained DLCHOMP Optimizer to Predict Higher Number of Waypoints](https://www.mathworks.com/help/releases/R2024a/robotics/ug/retrain-dlchomp-optimizer-for-different-trajectory.html) example.\n- A different spherical obstacle environment and/or a different set of CHOMP optimization options by following the [Using Pretrained DLCHOMP Optimizer in Unseen Obstacle Environment](https://www.mathworks.com/help/releases/R2024a/robotics/ug/retrain-dlchomp-optimizer-for-new-environment.html) example.\n\n## DLCHOMP Details\n\nYou can enhance the efficiency of optimization-based motion planning tasks by applying deep learning [[1]](#references). [`dlCHOMP`](https://www.mathworks.com/help/releases/R2024a/robotics/ref/dlchomp.html) is one such MATLAB® feature that utilizes a neural network initial guesser to provide an educated initial guess for a robot's intermediate start to goal trajectory, which is then optimized using the **Covariant Hamiltonian Optimization for Motion Planning (CHOMP)**[[2]](#references) algorithm.\n\n![DLCHOMP Overview](/resources/images/dlCHOMP_Overview.svg)\n\n- **Env**: Spherical obstacle environment in which robot motion planning is to be performed. This is provided as a 4-by-N numeric input matrix to `dlCHOMP`. This input is the fed to the **CHOMP** and **BPS Encoder** modules.\n- **BPS Encoder**: Basis point set encoder for the obstacle environment. The basis point set is a set of fixed points that are used to convert an arbitrary size obstacle environment into a fixed-size encoding vector. This encoding vector is then fed as an input to the **Pretrained Network** module along with the desired start and goal configurations of the robot.\n- **Pretrained Network**: Feed-forward neural network that guesses an initial intermediate trajectory for a robot by taking a start configuration, an end configuration, and an obstacle environment encoding vector as inputs. An intermediate trajectory is a trajectory that does not include the start and goal configurations. More details on the architecture of this neural network can be seen in the [Neural Network Details section](#neural-network-details) below.\n- **CHOMP**: Motion planning optimizer that uses the Covariant Hamiltonian Optimization for Motion Planning algorithm [[2]](#references). It takes the initial intermediate trajectory guess output of the **Pretrained Network** and the spherical obstacle environment **Env** as its inputs to then output an optimized start to goal trajectory.\n\n\n### Neural Network Details\n\nThis figure shows the architecture of the DLCHOMP neural network [[2]](#references). \n\n![DLCHOMP Network Architecture](/resources/images/dlCHOMP_Network_Architecture.svg)\n\nIt takes a given motion task (a world obstacle encoding vector **WB**, a start configuration **q1** and an end configuration **qNt**) to output an initial guess **Q**. Blocks of tapered Fully Connected Layers (gray) are combined like the DenseNet architecture [[3]](#references) via skip-connections and concatenations (circular nodes).\n\n## Metrics and Evaluation\n\nThe test dataset for each pretrained network consists of 1000 data samples, identical to the validation dataset created during the network training phase. To augment the data, these 1000 test samples were flipped, capitalizing on the symmetric nature of the motion planning problem, resulting in a total of 2000 test data samples. The results in these tables are for these 2000 test data sample sets that were created for each robot.\n\n### Size and Accuracy Metrics\n\n\u003ctable\u003e\n \u003ctr\u003e\n    \u003cth\u003eHeader\u003c/th\u003e\n    \u003cth\u003eDefinition\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eDLCHOMP Optimizer\u003c/th\u003e\n    \u003ctd\u003eName of the supported robot for whom the metrics are being listed in the current row. This name is a short-hand name used to quickly identify each robot. To obtain the full robot name, and hence determine the exact robot model, see the [Pretrained Optimizers](https://www.mathworks.com/help/releases/R2024a/robotics/ref/dlchomp.html#mw_93957c22-f6cc-4e8c-ac45-1ae16cfcb2ef) section of the dlCHOMP page. \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eSize (MB)\u003c/th\u003e\n    \u003ctd\u003eMemory footprint of the DLCHOMP optimizer object in megabytes.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003e% of samples with DLCHOMP Itns \u003c CHOMP\u003c/th\u003e\n    \u003ctd\u003ePercentage of data samples where the dlCHOMP optimizer took lesser number of iterations than an equivalent manipulatorCHOMP optimizer with similar optimization options.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eMean % of Itns Saved\u003c/th\u003e\n    \u003ctd\u003eThe mean percentage of iterations saved by the dlCHOMP optimizer for the data samples where the dlCHOMP optimizer took lesser iterations than the equivalent manipulatorCHOMP optimizer with similar optimization options.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003e% of samples with DLCHOMP Inference Time \u003c CHOMP\u003c/th\u003e\n    \u003ctd\u003ePercentage of data samples where the dlCHOMP optimizer's optimization time was lesser than that of an equivalent manipulatorCHOMP optimizer with similar optimization options.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eMean % of Inference Time Saved\u003c/th\u003e\n    \u003ctd\u003eThe mean percentage of inference time saved by the dlCHOMP optimizer for the data samples where the dlCHOMP optimizer took lesser iterations than that of an equivalent manipulatorCHOMP optimizer with similar optimization options. Inference time of a dlCHOMP optimizer is the sum of the network guess time and subsequent the optimization time. Inference time of a manipulatorCHOMP optimizer is the same as its optimization time since it does not have a neural network component.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eFeasibility\u003c/th\u003e\n    \u003ctd\u003eThe percentage of test data samples where the dlCHOMP optimizer gave a collision free optimized trajectory.\u003c/td\u003e\n\u003c/table\u003e\n\nThe table above defines the headers present in the table below:\n\n| DLCHOMP Optimizer | Size (MB) | % of samples with DLCHOMP Itns \u003c CHOMP | Mean % of Itns Saved  | % of samples with DLCHOMP Inference Time \u003c CHOMP | Mean % of Time Saved | Feasibility\n|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| abbYuMi | 25 | 84.70 | 78.36 | 78.20 | 73.95 | 74.50 |\n| fanucLRMate200ib | 25 | 87.20 | 80.42 | 79.10 | 72.30 | 78.65 |\n| fanucM16ib | 25 | 75.30 | 82.17 | 67.40 | 76.09 | 73.95 |\n| frankaEmikaPanda | 25 | 84.40 | 83.10 | 77.60 | 77.93 | 77.25 |\n| kinovaJacoJ2S7S300 | 25 | 99.00 | 78.63 | 74.00 | 75.07 | 68.55 |\n| kinovaGen3 | 25| 77.90 | 74.56 | 63.70 | 67.44 | 72.15 |\n| kukaIiwa7 | 25 | 83.80 | 79.02 | 74.90 | 72.38 | 80.40 |\n| meca500r3 | 25 | 85.00 | 79.24 | 74.90 | 71.41 | 65.15 |\n| techmanTM5-700 | 25 | 78.40 | 74.49 | 67.40 | 66.38 | 71.20 |\n| universalUR5e | 25 | 73.60 | 76.44 | 62.20 | 70.21 | 71.05 |\n\n\n### CPU Time Metrics\n\n\u003ctable\u003e\n \u003ctr\u003e\n    \u003cth\u003eHeader\u003c/th\u003e\n    \u003cth\u003eDefinition\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003cth\u003eDLCHOMP Model Without Codegen\u003c/th\u003e\n    \u003ctd\u003eName of the supported robot for whom the metrics are being listed in the current row. These metrics were computed in MATLAB without using its code generation feature. This name is a short-hand name used to quickly identify each robot. To obtain the full robot name, and hence determine the exact robot model, [Pretrained Optimizers](https://www.mathworks.com/help/releases/R2024a/robotics/ref/dlchomp.html#mw_93957c22-f6cc-4e8c-ac45-1ae16cfcb2ef). \u003c/td\u003e\n  \u003ctr\u003e\n    \u003cth\u003eMean Network Guess Time (secs)\u003c/th\u003e\n    \u003ctd\u003eThe mean time taken by the dlCHOMP optimizer to obtain its neural network's intermediate guess trajectory in seconds.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003cth\u003eMean Inference Time (secs)\u003c/th\u003e\n    \u003ctd\u003eThe mean of the total time taken by the dlCHOMP optimizer to obtain its neural network's intermediate guess trajectory and then optimize it using CHOMP, in seconds.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nThe table above defines the headers present in the table below:\n\n| DLCHOMP Model without Codegen | Mean Network Guess Time (secs) | Mean Inference Time (secs)|\n|:---:|:---:|:---:|\n| abbYuMi | 0.0072 | 19.2465 |\n| fanucLRMate200ib | 0.0100 | 0.6899 |\n| fanucM16ib | 0.0069 | 1.2242 |\n| frankaEmikaPanda | 0.0075 | 1.6912 |\n| kinovaJacoJ2S7S300 | 0.0098 | 4.4300 | \n| kinovaGen3 | 0.0072 | 3.0774 |\n| kukaIiwa7 | 0.0060 | 1.5289 |\n| meca500r3 | 0.0057 | 0.5911 |\n| techmanTM5-700 | 0.0052 | 1.2719 |\n| universalUR5e | 0.0075 | 1.6614 |\n\n**Note:** Dual-arm YuMi® (abbYuMi) being the only two-armed robot in this list, takes much longer for optimization as compared to other robots due to the higher probability of self-collisions.\n\n\n## References\n[1] J. Tenhumberg, D. Burschka and B. BÃ¤uml, \"Speeding Up Optimization-based Motion Planning through Deep Learning,\" 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Kyoto, Japan, 2022, pp. 7182-7189, doi: 10.1109/IROS47612.2022.9981717.\n\n[2] N. Ratliff, M. Zucker, J. A. Bagnell and S. Srinivasa, \"CHOMP: Gradient optimization techniques for efficient motion planning,\" 2009 IEEE International Conference on Robotics and Automation, 2009, pp. 489-494, doi: 10.1109/ROBOT.2009.5152817.\n\n[3] S. J´egou et al., “The one hundred layers tiramisu: Fully convolutional densenets for semantic segmentation,” CoRR, vol. abs/1611.09326, 2016\n\nCopyright 2024 The MathWorks, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatlab-deep-learning%2Fpretrained-dlchomp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatlab-deep-learning%2Fpretrained-dlchomp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatlab-deep-learning%2Fpretrained-dlchomp/lists"}