openscvx 0.4.1.dev158__tar.gz → 0.4.1.dev159__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. {openscvx-0.4.1.dev158/openscvx.egg-info → openscvx-0.4.1.dev159}/PKG-INFO +1 -1
  2. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/abstract/brachistochrone.py +2 -2
  3. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/abstract/impulsive.py +3 -3
  4. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/abstract/stl_integer_variable.py +1 -1
  5. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/arm/three_link_arm.py +1 -1
  6. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car.py +5 -3
  7. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car_obstacle_conditional.py +1 -1
  8. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car_stl_or.py +4 -1
  9. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car_waypoint_stl.py +8 -5
  10. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/cinema_vp.py +1 -1
  11. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/dr_vp_nodal.py +4 -4
  12. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/dr_vp_polytope.py +2 -2
  13. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/logo.py +4 -3
  14. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/obstacle_avoidance_nodal.py +1 -1
  15. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/mpc/double_integrator_discrete.py +3 -3
  16. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/mpc/double_integrator_drone_racing.py +3 -3
  17. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/mpc/dubins_car_circle_analytical.py +3 -3
  18. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/mpc/dubins_car_circle_discrete.py +3 -3
  19. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/mpc/realtime_double_integrator_drone_racing.py +3 -3
  20. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/base_problems/cinema_vp_realtime_base.py +4 -3
  21. openscvx-0.4.1.dev159/examples/realtime/base_problems/dubins_car_realtime_base.py +138 -0
  22. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +1 -1
  23. openscvx-0.4.1.dev159/examples/realtime/dubins_car_realtime.py +247 -0
  24. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/rocket/3DoF_pdg.py +3 -3
  25. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/spacecraft/halo_orbit.py +3 -2
  26. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/spacecraft/proxops_cw.py +1 -1
  27. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/_version.py +3 -3
  28. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/__init__.py +2 -1
  29. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/augmented_lagrangian.py +3 -2
  30. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/base.py +7 -599
  31. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/constant_proximal_weight.py +3 -2
  32. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/penalized_trust_region.py +32 -68
  33. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/ramp_proximal_weight.py +3 -2
  34. openscvx-0.4.1.dev159/openscvx/algorithms/weights.py +493 -0
  35. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/problem.py +8 -4
  36. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159/openscvx.egg-info}/PKG-INFO +1 -1
  37. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx.egg-info/SOURCES.txt +2 -0
  38. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_autotuning.py +1 -1
  39. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_brachistochrone.py +9 -9
  40. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_examples.py +19 -12
  41. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_loader.py +4 -4
  42. openscvx-0.4.1.dev158/examples/realtime/dubins_car_realtime.py +0 -409
  43. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/assets/logo.svg +0 -0
  44. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/release-drafter.yml +0 -0
  45. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/_docs.yml +0 -0
  46. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/branch-name.yml +0 -0
  47. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/docs.yml +0 -0
  48. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/lint.yml +0 -0
  49. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/nightly.yml +0 -0
  50. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/release-drafter.yml +0 -0
  51. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/release.yml +0 -0
  52. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/tests-integration.yml +0 -0
  53. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.github/workflows/tests-unit.yml +0 -0
  54. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/.gitignore +0 -0
  55. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/CONTRIBUTING.md +0 -0
  56. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/LICENSE +0 -0
  57. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/README.md +0 -0
  58. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/constraint_reformulation.md +0 -0
  59. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/control_parameterization.md +0 -0
  60. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/discretization.md +0 -0
  61. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/ocp.md +0 -0
  62. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/scvx.md +0 -0
  63. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/Foundations/time_dilation.md +0 -0
  64. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UnderTheHood/lowering_architecture.md +0 -0
  65. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
  66. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/00_introduction.md +0 -0
  67. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
  68. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
  69. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
  70. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
  71. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/05_visualization.md +0 -0
  72. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/06_logic.md +0 -0
  73. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/07_lie.md +0 -0
  74. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/UsersGuide/08_mpcc.md +0 -0
  75. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/favicon.png +0 -0
  76. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/ct-scvx_dark.png +0 -0
  77. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/ct-scvx_light.png +0 -0
  78. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/ctcs_dark.png +0 -0
  79. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/ctcs_light.png +0 -0
  80. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/problem_class_dark.png +0 -0
  81. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/images/problem_class_light.png +0 -0
  82. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/assets/logo.svg +0 -0
  83. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/citation.md +0 -0
  84. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/examples.md +0 -0
  85. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/getting-started.md +0 -0
  86. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/index.md +0 -0
  87. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/docs/javascripts/mathjax.js +0 -0
  88. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/abstract/stl_or.py +0 -0
  89. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car_disjoint.py +0 -0
  90. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/car/dubins_car_obstacle_stl.py +0 -0
  91. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/dr_double_integrator.py +0 -0
  92. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/dr_vp.py +0 -0
  93. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/drone_racing.py +0 -0
  94. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/logo_utils/acl_logo.svg +0 -0
  95. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/logo_utils/svg_path_utils.py +0 -0
  96. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/obstacle_avoidance.py +0 -0
  97. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/drone/obstacle_avoidance_vmap.py +0 -0
  98. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/plotting.py +0 -0
  99. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/plotting_viser.py +0 -0
  100. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
  101. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/cinema_vp_realtime.py +0 -0
  102. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/drone_racing_realtime.py +0 -0
  103. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
  104. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/examples/spacecraft/hohmann_transfer.py +0 -0
  105. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/ctlos_cine.gif +0 -0
  106. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/ctlos_dr.gif +0 -0
  107. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/dtlos_cine.gif +0 -0
  108. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/dtlos_dr.gif +0 -0
  109. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/openscvx_logo.svg +0 -0
  110. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/openscvx_logo_square.png +0 -0
  111. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/oscvx_structure_full_dark.svg +0 -0
  112. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/figures/video_preview.png +0 -0
  113. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/__init__.py +0 -0
  114. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/1-background.avif +0 -0
  115. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
  116. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
  117. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
  118. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
  119. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/2-mars.avif +0 -0
  120. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
  121. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
  122. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
  123. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
  124. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/3-moon.avif +0 -0
  125. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
  126. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
  127. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
  128. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
  129. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
  130. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
  131. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
  132. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
  133. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
  134. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/5-space.avif +0 -0
  135. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
  136. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
  137. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
  138. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
  139. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/6-earth.avif +0 -0
  140. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
  141. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
  142. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
  143. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
  144. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/javascripts/parallax.js +0 -0
  145. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/logo.svg +0 -0
  146. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/stylesheets/custom.css +0 -0
  147. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/assets/stylesheets/parallax.css +0 -0
  148. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/home.html +0 -0
  149. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/main.html +0 -0
  150. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/partials/parallax/hero.html +0 -0
  151. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/material/overrides/partials/parallax.html +0 -0
  152. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/mkdocs.yml +0 -0
  153. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/__init__.py +0 -0
  154. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/__main__.py +0 -0
  155. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/algorithms/optimization_results.py +0 -0
  156. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/config.py +0 -0
  157. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/__init__.py +0 -0
  158. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/base.py +0 -0
  159. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/discretize_linearize.py +0 -0
  160. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/linearize_discretize.py +0 -0
  161. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/linearize_discretize_sparse.py +0 -0
  162. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/sparse_utils/__init__.py +0 -0
  163. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/sparse_utils/bcoo_helpers.py +0 -0
  164. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/discretization/sparse_utils/sparse_jacobian.py +0 -0
  165. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/expert/__init__.py +0 -0
  166. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/expert/byof.py +0 -0
  167. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/expert/lowering.py +0 -0
  168. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/expert/validation.py +0 -0
  169. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/init/__init__.py +0 -0
  170. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/init/interpolation.py +0 -0
  171. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/integrators/__init__.py +0 -0
  172. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/integrators/diffrax.py +0 -0
  173. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/integrators/runge_kutta.py +0 -0
  174. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/loader.py +0 -0
  175. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/__init__.py +0 -0
  176. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/cvxpy_constraints.py +0 -0
  177. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/cvxpy_variables.py +0 -0
  178. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/dynamics.py +0 -0
  179. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/jax_constraints.py +0 -0
  180. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/parameters.py +0 -0
  181. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/problem.py +0 -0
  182. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/lowered/unified.py +0 -0
  183. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/__init__.py +0 -0
  184. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/plotting.py +0 -0
  185. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/scp_iteration.py +0 -0
  186. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/__init__.py +0 -0
  187. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/animated.py +0 -0
  188. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/orbits.py +0 -0
  189. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/plotly_integration.py +0 -0
  190. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/primitives.py +0 -0
  191. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/scp.py +0 -0
  192. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/plotting/viser/server.py +0 -0
  193. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/propagation/__init__.py +0 -0
  194. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/propagation/post_processing.py +0 -0
  195. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/propagation/propagation.py +0 -0
  196. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/solvers/__init__.py +0 -0
  197. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/solvers/base.py +0 -0
  198. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/solvers/ptr_solver.py +0 -0
  199. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/__init__.py +0 -0
  200. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/augmentation.py +0 -0
  201. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/builder.py +0 -0
  202. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/constraint_set.py +0 -0
  203. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/__init__.py +0 -0
  204. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/arithmetic.py +0 -0
  205. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/array.py +0 -0
  206. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/constraint.py +0 -0
  207. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/control.py +0 -0
  208. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/expr.py +0 -0
  209. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/lie/__init__.py +0 -0
  210. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
  211. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/lie/se3.py +0 -0
  212. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/lie/so3.py +0 -0
  213. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/linalg.py +0 -0
  214. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/logic.py +0 -0
  215. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/math.py +0 -0
  216. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/spatial.py +0 -0
  217. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/state.py +0 -0
  218. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/stl.py +0 -0
  219. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/stljax.py +0 -0
  220. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/time.py +0 -0
  221. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/variable.py +0 -0
  222. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/expr/vmap.py +0 -0
  223. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/hashing.py +0 -0
  224. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lower.py +0 -0
  225. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/__init__.py +0 -0
  226. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
  227. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
  228. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
  229. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
  230. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
  231. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
  232. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
  233. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
  234. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
  235. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
  236. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
  237. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
  238. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
  239. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
  240. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
  241. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
  242. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/array.py +0 -0
  243. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
  244. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/control.py +0 -0
  245. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
  246. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
  247. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
  248. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
  249. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/math.py +0 -0
  250. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
  251. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/state.py +0 -0
  252. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
  253. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/stljax.py +0 -0
  254. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
  255. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/__init__.py +0 -0
  256. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/_registry.py +0 -0
  257. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/array.py +0 -0
  258. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/constraint.py +0 -0
  259. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/lie.py +0 -0
  260. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/linalg.py +0 -0
  261. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/logic.py +0 -0
  262. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/math.py +0 -0
  263. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/parser.py +0 -0
  264. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/spatial.py +0 -0
  265. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/stl.py +0 -0
  266. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/stljax.py +0 -0
  267. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/parser/tokenizer.py +0 -0
  268. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/preprocessing.py +0 -0
  269. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/problem.py +0 -0
  270. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/sparsity.py +0 -0
  271. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/symbolic/unified.py +0 -0
  272. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/__init__.py +0 -0
  273. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/cache.py +0 -0
  274. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/caching.py +0 -0
  275. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/printing.py +0 -0
  276. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/profiling.py +0 -0
  277. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx/utils/utils.py +0 -0
  278. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx.egg-info/dependency_links.txt +0 -0
  279. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx.egg-info/entry_points.txt +0 -0
  280. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx.egg-info/requires.txt +0 -0
  281. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/openscvx.egg-info/top_level.txt +0 -0
  282. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/pyproject.toml +0 -0
  283. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/scripts/gen_example_pages.py +0 -0
  284. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/scripts/gen_ref_pages.py +0 -0
  285. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/setup.cfg +0 -0
  286. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/__init__.py +0 -0
  287. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/brachistochrone_analytical.py +0 -0
  288. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/expr/__init__.py +0 -0
  289. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/expr/test_gmsr.py +0 -0
  290. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/fixtures/brachistochrone.json +0 -0
  291. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/fixtures/brachistochrone.yaml +0 -0
  292. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/hohmann_analytical.py +0 -0
  293. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/__init__.py +0 -0
  294. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/__init__.py +0 -0
  295. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_arithmetic.py +0 -0
  296. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_array.py +0 -0
  297. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_constraint.py +0 -0
  298. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_expr.py +0 -0
  299. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_lie.py +0 -0
  300. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_linalg.py +0 -0
  301. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_logic.py +0 -0
  302. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_math.py +0 -0
  303. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_node_reference.py +0 -0
  304. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_parameters.py +0 -0
  305. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_scaling.py +0 -0
  306. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_spatial.py +0 -0
  307. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_stl.py +0 -0
  308. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_variable.py +0 -0
  309. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/expr/test_vmap.py +0 -0
  310. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/__init__.py +0 -0
  311. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_array.py +0 -0
  312. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_constraint.py +0 -0
  313. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_lie.py +0 -0
  314. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_linalg.py +0 -0
  315. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_load.py +0 -0
  316. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_logic.py +0 -0
  317. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_math.py +0 -0
  318. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_parser.py +0 -0
  319. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_spatial.py +0 -0
  320. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_stl.py +0 -0
  321. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_tokenizer.py +0 -0
  322. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/parser/test_vmap.py +0 -0
  323. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_augmentation.py +0 -0
  324. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_hashing.py +0 -0
  325. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_lower_cvxpy.py +0 -0
  326. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_lower_jax.py +0 -0
  327. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_preprocessing.py +0 -0
  328. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_sparsity.py +0 -0
  329. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/symbolic/test_unified.py +0 -0
  330. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_cvxpygen_optional.py +0 -0
  331. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_discretization.py +0 -0
  332. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_expert.py +0 -0
  333. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_impulsive.py +0 -0
  334. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_init.py +0 -0
  335. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_integrators.py +0 -0
  336. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_optimization_results.py +0 -0
  337. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_plotting.py +0 -0
  338. {openscvx-0.4.1.dev158 → openscvx-0.4.1.dev159}/tests/test_propagation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openscvx
3
- Version: 0.4.1.dev158
3
+ Version: 0.4.1.dev159
4
4
  Summary: A general Python-based successive convexification implementation which uses a JAX backend.
5
5
  Author-email: Chris Hayner and Griffin Norris <haynec@uw.edu>
6
6
  License: Apache Software License
@@ -87,8 +87,8 @@ problem = Problem(
87
87
  licq_max=1e-8,
88
88
  algorithm={
89
89
  "autotuner": "ConstantProximalWeight",
90
- "lam_prox": 1e1,
91
- "lam_cost": 1e0,
90
+ "lam_prox": 1e0,
91
+ "lam_cost": 1e-1,
92
92
  },
93
93
  )
94
94
 
@@ -86,9 +86,9 @@ problem = Problem(
86
86
  N=n,
87
87
  )
88
88
 
89
- problem.algorithm.lam_prox = 1e-2 # Weight on the Trust Reigon
90
- problem.algorithm.lam_vc = 5e1 # Weight on the Trust Reigon
91
- problem.algorithm.lam_cost = 1e0 # Weight on the Minimal Time Objective
89
+ problem.algorithm.lam_prox = 2e-4 # Weight on the Trust Region
90
+ problem.algorithm.lam_vc = 1e0 # Weight on the Virtual Control
91
+ problem.algorithm.lam_cost = 2e-2 # Weight on the Minimal Time Objective
92
92
  problem.algorithm.k_max = 100
93
93
 
94
94
  plotting_dict = {}
@@ -87,7 +87,7 @@ problem = Problem(
87
87
  controls=controls,
88
88
  N=N,
89
89
  time=time,
90
- algorithm={"autotuner": ox.ConstantProximalWeight(), "ep_vc": 1e-3, "lam_cost": 1e1},
90
+ algorithm={"autotuner": ox.ConstantProximalWeight(), "ep_vc": 1e-3, "lam_cost": 1e0},
91
91
  discretizer={"dis_type": "ZOH"},
92
92
  float_dtype="float64",
93
93
  )
@@ -201,7 +201,7 @@ problem = Problem(
201
201
  time=time,
202
202
  constraints=constraints,
203
203
  N=n,
204
- algorithm={"lam_vb": 1e1},
204
+ algorithm={"lam_vb": 1e0},
205
205
  )
206
206
 
207
207
  # Solver settings
@@ -97,8 +97,8 @@ problem = Problem(
97
97
  time=time,
98
98
  constraints=constraints,
99
99
  N=n,
100
- licq_max=1e-8,
101
- algorithm={"lam_cost": 4e1, "lam_vc": 1e3},
100
+ licq_max=1e-6,
101
+ algorithm={"lam_prox": 1e-3, "lam_cost": 4e-2, "lam_vc": 1e0},
102
102
  )
103
103
 
104
104
  plotting_dict = {
@@ -118,7 +118,9 @@ if __name__ == "__main__":
118
118
  problem.reset()
119
119
  problem.parameters["obs_center"] = np.array([0.5, 0.0])
120
120
  total_time = 0.7 # Adjust total time for second run
121
- problem.algorithm.lam_vc = 1e2 # Adjust virtual control weight
121
+ problem.algorithm.lam_prox = 1e-2
122
+ problem.algorithm.lam_vc = 1e0
123
+ problem.algorithm.lam_cost = 1e-3
122
124
  position.guess = np.linspace([0, -2], [0, 2], n)
123
125
  theta.guess = np.zeros((n, 1))
124
126
  speed.guess = np.zeros((n, 1))
@@ -110,7 +110,7 @@ problem = Problem(
110
110
  time=time,
111
111
  constraints=constraints,
112
112
  N=n,
113
- algorithm={"lam_vc": 1e3},
113
+ algorithm={"lam_prox": 1e-3, "lam_vc": 1e0, "lam_cost": 1e-4},
114
114
  )
115
115
 
116
116
  plotting_dict = {
@@ -105,10 +105,13 @@ problem = Problem(
105
105
  time=time, # Time is already defined above as ox.Time
106
106
  constraints=constraints,
107
107
  N=n,
108
- algorithm={"autotuner": ox.AugmentedLagrangian(eta_lambda=1e0), "lam_vb": 1e0},
108
+ algorithm={"autotuner": ox.AugmentedLagrangian(eta_lambda=1e0)},
109
109
  float_dtype="float64",
110
110
  )
111
111
 
112
+ problem.algorithm.lam_vb = 1e0
113
+ problem.algorithm.lam_vc = 1e1
114
+
112
115
  # Extract parameter values from problem.parameters (not Parameter objects)
113
116
  plotting_dict = {
114
117
  "wp1_center": problem.parameters.get("wp1_center", None),
@@ -126,15 +126,18 @@ problem = Problem(
126
126
  time=time,
127
127
  constraints=constraints,
128
128
  N=n,
129
- algorithm={"autotuner": ox.RampProximalWeight()},
129
+ algorithm={
130
+ "autotuner": ox.ConstantProximalWeight(),
131
+ "lam_prox": 1e-3,
132
+ "lam_vc": 1e1,
133
+ "lam_cost": 1e-3,
134
+ "ep_vc": 1e-6,
135
+ "ep_tr": 5e-4,
136
+ },
130
137
  float_dtype="float64",
131
138
  licq_max=1e-10,
132
139
  )
133
140
 
134
- # problem.algorithm.ep_vc = 1e-6
135
- # problem.algorithm.ep_tr = 5e-4
136
- problem.algorithm.lam_vc = 2e3
137
-
138
141
  plotting_dict = {
139
142
  "obs_radius": problem.parameters["obs_radius"],
140
143
  "obs_center": problem.parameters["obs_center"],
@@ -235,7 +235,7 @@ problem = Problem(
235
235
  constraints=constraints,
236
236
  N=n,
237
237
  licq_max=1e-8,
238
- algorithm={"lam_prox": 4e0, "ep_tr": 1e-6},
238
+ algorithm={"lam_prox": 4e-1, "ep_tr": 1e-6},
239
239
  )
240
240
 
241
241
  plotting_dict = {
@@ -226,10 +226,10 @@ problem = Problem(
226
226
  constraints=constraints,
227
227
  N=n,
228
228
  algorithm={
229
- "lam_prox": 1e1,
230
- "lam_cost": 1e1,
231
- "lam_vc": 1e2,
232
- "lam_vb": 4e0,
229
+ "lam_prox": 1e-1,
230
+ "lam_cost": 1e-1,
231
+ "lam_vc": 1e0,
232
+ "lam_vb": 4e-2,
233
233
  },
234
234
  )
235
235
 
@@ -241,8 +241,8 @@ problem = Problem(
241
241
  time=time,
242
242
  constraints=constraints,
243
243
  N=n,
244
- algorithm={"lam_prox": 2e0, "lam_vc": 4e1, "ep_tr": 1e-5},
245
- discretizer={"atol": 1e-4},
244
+ algorithm={"lam_prox": 5e-2, "lam_vc": 1e0, "lam_cost": 2.5e-3, "ep_tr": 1e-5},
245
+ discretizer=ox.VectorizeDiscretizeLinearize(diffrax_kwargs={"atol": 1e-4}),
246
246
  )
247
247
 
248
248
  plotting_dict = {
@@ -357,11 +357,12 @@ problem = Problem(
357
357
  byof=byof,
358
358
  algorithm={
359
359
  "autotuner": {"type": "RampProximalWeight", "ramp_factor": 1.06, "lam_prox_max": 1e3},
360
- "lam_vc": 1e3,
361
- "lam_cost": 6e0,
360
+ "lam_prox": 1e-3,
361
+ "lam_vc": 1e0,
362
+ "lam_cost": 6e-3,
362
363
  },
363
364
  float_dtype="float64",
364
- discretizer=ox.DiscretizeLinearizeVectorize(atol=1e-4),
365
+ discretizer=ox.DiscretizeLinearizeVectorize(diffrax_kwargs={"atol": 1e-4}),
365
366
  solver={"solver_args": {"canon_backend": "COO", "enforce_dpp": True}},
366
367
  )
367
368
 
@@ -150,7 +150,7 @@ problem = Problem(
150
150
  time=time,
151
151
  constraints=constraints,
152
152
  N=n,
153
- algorithm={"lam_vb": 1e0},
153
+ algorithm={"lam_vb": 1e-1, "lam_prox": 2e0},
154
154
  )
155
155
 
156
156
  plotting_dict = {
@@ -147,9 +147,9 @@ pz_data = np.tile(pz_lap, len(laps))
147
147
  n_mpc = 10 # Horizon nodes
148
148
  horizon_duration = 1.0 # Horizon length [s]
149
149
 
150
- Q_LAG = 1e0 # Lag error weight (high -> accurate progress tracking)
151
- Q_CONTOUR = 1e-1 # Contour error weight
152
- Q_PROGRESS = 1e-1
150
+ Q_LAG = 1e-1 # Lag error weight (high -> accurate progress tracking)
151
+ Q_CONTOUR = 1e-2 # Contour error weight
152
+ Q_PROGRESS = 1e-2
153
153
 
154
154
  ###############################################################################
155
155
  # MPCC problem definition
@@ -211,9 +211,9 @@ obstacle_radius = 5.0
211
211
  n_mpc = 11 # Horizon nodes
212
212
  horizon_duration = 2.0 # Horizon length [s]
213
213
 
214
- Q_LAG = 1e0 # Lag error weight (high -> accurate progress tracking)
215
- Q_CONTOUR = 5e-2 # Contour error weight
216
- Q_PROGRESS = 1e-1
214
+ Q_LAG = 1e-1 # Lag error weight (high -> accurate progress tracking)
215
+ Q_CONTOUR = 5e-3 # Contour error weight
216
+ Q_PROGRESS = 1e-2
217
217
 
218
218
  ###############################################################################
219
219
  # Main
@@ -39,9 +39,9 @@ total_arc_length = 2 * np.pi * R_circle # One full lap
39
39
  n_mpc = 8 # Horizon nodes
40
40
  horizon_duration = 1.5 # Horizon length [s]
41
41
 
42
- Q_LAG = 1e0 # Lag error weight (high -> accurate progress tracking)
43
- Q_CONTOUR = 1e-1 # Contour error weight
44
- Q_PROGRESS = 1e-1
42
+ Q_LAG = 1e-1 # Lag error weight (high -> accurate progress tracking)
43
+ Q_CONTOUR = 1e-2 # Contour error weight
44
+ Q_PROGRESS = 1e-2
45
45
 
46
46
  ###############################################################################
47
47
  # MPCC problem definition
@@ -61,9 +61,9 @@ py_data = np.tile(py_lap, len(laps))
61
61
  n_mpc = 10 # Horizon nodes
62
62
  horizon_duration = 1.0 # Horizon length [s]
63
63
 
64
- Q_LAG = 1e0 # Lag error weight (high -> accurate progress tracking)
65
- Q_CONTOUR = 1e-1 # Contour error weight
66
- Q_PROGRESS = 1e-1
64
+ Q_LAG = 1e-1 # Lag error weight (high -> accurate progress tracking)
65
+ Q_CONTOUR = 1e-2 # Contour error weight
66
+ Q_PROGRESS = 1e-2
67
67
 
68
68
  ###############################################################################
69
69
  # MPCC problem definition
@@ -206,9 +206,9 @@ obstacle_radius = 5.0
206
206
  n_mpc = 11 # Horizon nodes
207
207
  horizon_duration = 2.0 # Horizon length [s]
208
208
 
209
- Q_LAG = 1e0 # Lag error weight (high -> accurate progress tracking)
210
- Q_CONTOUR = 5e-2 # Contour error weight
211
- Q_PROGRESS = 1e-1
209
+ Q_LAG = 1e-1 # Lag error weight (high -> accurate progress tracking)
210
+ Q_CONTOUR = 5e-3 # Contour error weight
211
+ Q_PROGRESS = 1e-2
212
212
 
213
213
  ###############################################################################
214
214
  # Main
@@ -198,12 +198,13 @@ problem = Problem(
198
198
  N=n,
199
199
  licq_max=1e-8,
200
200
  algorithm={
201
- "lam_prox": 4e0,
202
- "lam_cost": 1e-2,
203
- "lam_vc": 1e1,
201
+ "lam_prox": 4e-1,
202
+ "lam_cost": 1e-3,
203
+ "lam_vc": 1e0,
204
204
  "ep_tr": 1e-6,
205
205
  "ep_vb": 1e-4,
206
206
  "ep_vc": 1e-8,
207
+ "autotuner": ox.ConstantProximalWeight(),
207
208
  },
208
209
  )
209
210
 
@@ -0,0 +1,138 @@
1
+ """Dubins car path planning with obstacle avoidance.
2
+
3
+ This example demonstrates minimum-time path planning for a Dubins car
4
+ (car-like vehicle with minimum turning radius) navigating around a
5
+ circular obstacle. The problem includes:
6
+
7
+ - 2D position and heading dynamics
8
+ - Speed and angular rate control inputs
9
+ - Circular obstacle avoidance constraint
10
+ - Minimal time objective with free final heading
11
+ - Parameter updates for multiple scenarios
12
+ """
13
+
14
+ import os
15
+ import sys
16
+
17
+ import jax.numpy as jnp
18
+ import numpy as np
19
+
20
+ # Add repo root to path (this file lives in examples/realtime/base_problems/)
21
+ _this_dir = os.path.dirname(os.path.abspath(__file__))
22
+ _repo_root = os.path.dirname(os.path.dirname(os.path.dirname(_this_dir)))
23
+ sys.path.append(_repo_root)
24
+
25
+ import openscvx as ox
26
+ from openscvx import Problem
27
+
28
+ n = 8
29
+ total_time = 1.2 # Total simulation time
30
+
31
+ # Define state components
32
+ position = ox.State("position", shape=(2,)) # 2D position [x, y]
33
+ position.min = np.array([-5.0, -5.0])
34
+ position.max = np.array([5.0, 5.0])
35
+ position.initial = np.array([0, -2])
36
+ position.final = np.array([0, 2])
37
+
38
+ theta = ox.State("theta", shape=(1,)) # Heading angle
39
+ theta.min = np.array([-2 * jnp.pi])
40
+ theta.max = np.array([2 * jnp.pi])
41
+ theta.initial = np.array([0])
42
+ theta.final = [ox.Free(0)]
43
+
44
+ # Define control components
45
+ speed = ox.Control("speed", shape=(1,)) # Forward speed
46
+ speed.min = np.array([0])
47
+ speed.max = np.array([10])
48
+ speed.guess = np.zeros((n, 1))
49
+
50
+ angular_rate = ox.Control("angular_rate", shape=(1,)) # Angular velocity
51
+ angular_rate.min = np.array([-5])
52
+ angular_rate.max = np.array([5])
53
+ angular_rate.guess = np.zeros((n, 1))
54
+
55
+ # Define list of all states and controls
56
+ states = [position, theta]
57
+ controls = [speed, angular_rate]
58
+
59
+ # Define Parameters with initial values for obstacle radius and center
60
+ obs_center = ox.Parameter("obs_center", shape=(2,), value=np.array([-2.01, 0.0]))
61
+ obs_radius = ox.Parameter("obs_radius", shape=(), value=1.0)
62
+
63
+ # Generate box constraints for all states
64
+ constraints = []
65
+ for state in states:
66
+ constraints.extend([ox.ctcs(state <= state.max), ox.ctcs(state.min <= state)])
67
+
68
+ # Add obstacle avoidance constraint
69
+ constraints.append(ox.ctcs(obs_radius <= ox.linalg.Norm(position - obs_center)))
70
+
71
+
72
+ # Define dynamics as dictionary mapping state names to their derivatives
73
+ dynamics = {
74
+ "position": ox.Concat(
75
+ speed[0] * ox.Sin(theta[0]), # x_dot
76
+ speed[0] * ox.Cos(theta[0]), # y_dot
77
+ ),
78
+ "theta": angular_rate[0],
79
+ }
80
+
81
+
82
+ # Build the problem (parameters auto-collected from Parameter objects)
83
+ time = ox.Time(
84
+ initial=0.0,
85
+ final=ox.Minimize(total_time),
86
+ min=0.0,
87
+ max=20,
88
+ time_dilation_min=0.02 * total_time,
89
+ uniform_time_grid=True,
90
+ )
91
+
92
+ problem = Problem(
93
+ dynamics=dynamics,
94
+ states=states,
95
+ controls=controls,
96
+ time=time,
97
+ constraints=constraints,
98
+ N=n,
99
+ licq_max=1e-6,
100
+ algorithm={
101
+ "lam_prox": 1e-1,
102
+ "lam_cost": 4e-2,
103
+ "lam_vc": 2e0,
104
+ "autotuner": ox.ConstantProximalWeight(),
105
+ },
106
+ )
107
+
108
+ plotting_dict = {
109
+ "obs_radius": problem.parameters["obs_radius"],
110
+ "obs_center": problem.parameters["obs_center"],
111
+ }
112
+
113
+ if __name__ == "__main__":
114
+ problem.initialize()
115
+ problem.solve()
116
+ results = problem.post_process()
117
+ results.update(plotting_dict)
118
+
119
+ # plot_dubins_car(results, problem.settings).show()
120
+
121
+ # # Second run with different parameters
122
+ # problem.reset()
123
+ # problem.parameters["obs_center"] = np.array([0.5, 0.0])
124
+ # total_time = 0.7 # Adjust total time for second run
125
+ # problem.algorithm.lam_prox = 1e-2
126
+ # problem.algorithm.lam_vc = 1e0
127
+ # problem.algorithm.lam_cost = 1e-3
128
+ # position.guess = np.linspace([0, -2], [0, 2], n)
129
+ # theta.guess = np.zeros((n, 1))
130
+ # speed.guess = np.zeros((n, 1))
131
+ # angular_rate.guess = np.zeros((n, 1))
132
+
133
+ # plotting_dict["obs_center"] = np.array([0.5, 0.0])
134
+
135
+ # results = problem.solve()
136
+ # results = problem.post_process()
137
+ # results.update(plotting_dict)
138
+ # plot_dubins_car(results, problem.settings).show()
@@ -152,7 +152,7 @@ problem = Problem(
152
152
  time=time,
153
153
  constraints=constraints,
154
154
  N=n,
155
- algorithm={"autotuner": "ConstantProximalWeight", "lam_cost": 1e0},
155
+ algorithm={"autotuner": "ConstantProximalWeight", "lam_cost": 1e-1},
156
156
  )
157
157
 
158
158
  plotting_dict = {