FACTO: Function-space Adaptive Constrained Trajectory Optimization for Robotic Manipulators
Organizations: J. Mike Walker ’66 Department of Mechanical Engineering, Texas A&M University, College Station, TX 77843, USA · Zachry Department of Civil and Environmental Engineering, Texas A&M University, College Station, TX 77843 USA
Abstract
This paper introduces Function-space Adaptive Constrained Trajectory Optimization (FACTO), a new trajectory optimization algorithm for both single- and multi-arm manipulators. Trajectory representations are parameterized as linear combinations of orthogonal basis functions, and optimization is performed directly in the coefficient space. The constrained problem formulation consists of both an objective functional and a finite-dimensional objective defined over truncated coefficients. To address nonlinearity, FACTO uses a Gauss-Newton approximation with exponential moving averaging, yielding a smoothed quadratic subproblem. Trajectory-wide constraints are addressed using coefficient-space mappings, and an adaptive constrained update using the Levenberg-Marquardt algorithm is performed in the null space of active constraints. Comparisons with optimization-based planners (CHOMP, TrajOpt, GPMP2) and sampling-based planners (RRT-Connect, RRT*, PRM) show the improved solution quality and feasibility, especially in constrained single- and multi-arm scenarios. The experimental evaluation of FACTO on Franka robots verifies the feasibility of deployment.
Figures & tables
| Scenario | ||||
| bookshelf_small | 0.065 | 6 | 5e-2 | (0.250, 0.125) |
| bookshelf_tall | 0.065 | 6 | 5e-2 | (0.250, 0.125) |
| bookshelf_thin | 0.065 | 6 | 5e-2 | (0.250, 0.125) |
| box | 0.075 | 6 | 5e-2 | (0.250, 0.125) |
| kitchen | 0.075 | 7 | 5e-2 | (0.250, 0.125) |
| cage | 0.035 | 8 | 5e-3 | (0.500, 0.250) |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | TrajOpt | GPMP2 | RRT-C | RRT* | PRM |
|---|---|---|---|---|---|---|---|---|---|---|
| bookshelf_small | Success (%) | 93 | 97 | 98 | 98 | 67 | 97 | 96 | 47 | 78 |
| Time (s) | 0.0376 | 0.2114 | 0.0387 | 0.1010 | 0.1297 | 0.0624 | 0.6753 | 1.5649 | 0.8481 | |
| Time max (s) | 0.1819 | 0.5763 | 0.1235 | 0.2410 | 0.4280 | 0.1594 | 9.5129 | 9.9939 | 8.4673 | |
| Roughness | 52.41 | 17.32 | 52.02 | 36.59 | 96.17 | 22.52 | 75.15 | 61.16 | 178.60 | |
| Roughness max | 100.31 | 66.30 | 85.62 | 54.06 | 579.64 | 37.42 | 555.34 | 198.49 | 408.42 | |
| bookshelf_tall | Success (%) | 98 | 98 | 98 | 98 | 84 | 97 | 93 | 28 | 83 |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | TrajOpt | GPMP2 | RRT-C | RRT* | PRM |
|---|---|---|---|---|---|---|---|---|---|---|
| box | Success (%) | 90 | 92 | 98 | 98 | 22 | 93 | 99 | 4 | 85 |
| Time (s) | 0.0838 | 0.1430 | 0.0546 | 0.0961 | 0.2428 | 0.0590 | 0.2927 | 4.7499 | 1.9173 | |
| Time max (s) | 0.3000 | 0.4993 | 0.2863 | 0.2390 | 0.4431 | 0.3306 | 4.4057 | 9.4519 | 9.5398 | |
| Roughness | 40.91 | 18.43 | 53.14 | 33.94 | 225.98 | 22.48 | 120.63 | 68.01 | 178.07 | |
| Roughness max | 78.90 | 92.20 | 103.93 | 46.99 | 472.49 | 40.59 | 466.65 | 139.62 | 443.24 | |
| cage | Success (%) | 95 | 93 | 95 | 19 | 0 | 82 | 92 | 0 | 17 |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | TrajOpt | GPMP2 | RRT-C | RRT* | PRM |
|---|---|---|---|---|---|---|---|---|---|---|
| kitchen | Success (%) | 87 | 90 | 94 | 85 | 43 | 74 | 99 | 55 | 78 |
| Time (s) | 0.1044 | 0.1710 | 0.0841 | 0.1592 | 0.2247 | 0.1126 | 0.5383 | 1.6377 | 1.2332 | |
| Time max (s) | 0.3939 | 0.5831 | 0.9290 | 0.4375 | 0.5261 | 0.1998 | 6.0240 | 8.7961 | 8.2058 | |
| Roughness | 81.45 | 41.94 | 79.26 | 53.69 | 299.30 | 33.01 | 189.48 | 149.74 | 274.39 | |
| Roughness max | 133.54 | 106.45 | 154.38 | 115.46 | 212.52 | 46.36 | 824.69 | 506.71 | 630.49 | |
| table_pick | Success (%) | 91 | 98 | 99 | 87 | 56 | 97 | 98 | 33 | 85 |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | IMACS-RRT-C |
|---|---|---|---|---|---|---|
| kitchen_constr | Success (%) | 79 | 88 | 90 | 10 | 86 |
| Time (s) | 0.1800 | 0.5602 | 0.2077 | 1.5915 | 4.0364 | |
| Time max (s) | 0.8345 | 1.6304 | 1.0268 | 1.8074 | 8.7817 | |
| Roughness | 125.12 | 93.97 | 141.20 | 335.49 | 2117.17 | |
| Roughness max | 482.55 | 266.14 | 424.33 | 1852.22 | 7570.24 | |
| table_under_pick_constr | Success (%) | 77 | 88 | 96 | 9 | 72 |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | TrajOpt | GPMP2 | RRT-C | RRT* | PRM |
|---|---|---|---|---|---|---|---|---|---|---|
| table_under_pick | Success (%) | 70 | 90 | 92.5 | 27.5 | 27.5 | 47.5 | 90 | 12.5 | 12.5 |
| Time (s) | 0.2056 | 0.4776 | 0.2421 | 0.4379 | 0.4767 | 0.3116 | 2.0272 | 7.0996 | 5.3386 | |
| Time max (s) | 0.3828 | 1.0061 | 0.8534 | 0.5005 | 0.5297 | 0.8220 | 8.3906 | 8.1623 | 10.0060 | |
| Roughness | 134.59 | 80.76 | 250.56 | 88.85 | 88.85 | 60.00 | 512.03 | 337.10 | 498.88 | |
| Roughness max | 331.68 | 176.61 | 466.41 | 108.28 | 108.28 | 88.56 | 1013.21 | 628.82 | 847.33 |
| Scene | Metric | FACTO-Cheby | FACTO-Sin | FACTO-Cos | CHOMP | IMACS-RRT-C |
|---|---|---|---|---|---|---|
| table_under_pick_constr | Success (%) | 62.5 | 77.5 | 87.5 | 7.5 | 27.5 |
| Time (s) | 0.2453 | 1.5373 | 0.3703 | 3.5326 | 4.2324 | |
| Time max (s) | 0.3948 | 2.6837 | 0.6560 | 4.2109 | 8.6093 | |
| Roughness | 197.39 | 129.74 | 322.18 | 95.55 | 1122.33 | |
| Roughness max | 647.02 | 270.11 | 488.10 | 140.23 | 2674.44 |
| Robot | Scenario | Scaled time (s) | |
|---|---|---|---|
| Single arm | bookshelf | 6 | 2.754 |
| bookshelf_half | 6 | 3.517 | |
| box | 6 | 4.626 | |
| table_pick | 6 | 5.853 | |
| table_under_pick | 6 | 5.138 | |
| table_under_pick_constr | 7 | 5.291 |
Trajectory Optimization
Trajectory optimization computes motion or control sequences that minimize costs while satisfying system dynamics, safety limits, and task constraints.
See all 199 papers