Releases: csu-hmc/opty
Releases · csu-hmc/opty
Version 1.4.0
- Dropped support for Python 3.8.
- Added support for Python 3.13.
- Added explicit dependency on setuptools.
ConstraintCollocator
raises an error if all equations of motion
are algebraic, i.e. none are differential equations.plot_constraint_violations()
now returns a variable number of
subplot rows depending on the number of instance constraints. This
makes the plot readable with large numbers of instance constraints.- Internal common sub expression replacement symbols are now assumed
to be real. - Improvements to docstrings of
Problem.solve()
. - Added
Problem.parse_free()
to simplify use of theparse_free()
function. - Added attribute descriptions to
ConstraintCollocator
docstring. - Support for single first order differential equation instead of
limiting to two first order (i.e. only second order systems). - Enabled math constants on Windows to support
sympy.pi
, for
example. - Made SciPy an optional dependency (was required).
- Fixed bug from backwards incompatible change in Python 3.13 for
docstring indentation. - Fixed bug where
Problem.plot_
methods did not return anything. - Fixed bug in trajectory plots so that the input trajectories are
labeled with known, unknown, or both types of inputs. - Made all
ConstraintCollocator
attributes properties with no setter
methods, i.e. everything must be passed into the constructor to
properly construct the object. - Separated examples into beginner, intermediate, and advanced groups.
- Added
MathJaxRepr
for printing SymPy expressions in the example
gallery. - Use MathJax v2 in the documentation so that long expressions will
line wrap. - Examples added:
- Ball rolling on spinning disc
- Car moving around pylons
- Car parking into a garage
- Crane moving a load
- Delay equation (inequality constraints example)
- Human gait
- Mississippi steamboat
- Non-contiguous parameter identification
- ODE vs DAE comparison
- Particle moving through a helical tube
- Single EoM & hypersensitive control
- Sit-to-stand
- Standing balance control identification
What's Changed
- Subexpression replacements in the Jacobian should be real. by @moorepants in #216
- Plot constraint violations by @Peter230655 in #218
- Added a example: crane moving a load by @Peter230655 in #197
- Handle variable h by @Peter230655 in #221
- ball rolling on a spinning disc by @Peter230655 in #210
- make plot_trajectories work if no input trajectories are given by @Peter230655 in #231
- Ensure number of instance constraints is valid and use inside plot me… by @moorepants in #232
- Drop support for Python 3.8. by @moorepants in #233
- check that equations_of_motion are not AEs by @Peter230655 in #236
- reduced number of frames in animation form 300 to about 75 by @Peter230655 in #242
- New Example: Parameter Identification from Non-Contiguous Measurements by @Peter230655 in #246
- Mississippi steamboat on a lake by @Peter230655 in #208
- Deal with loss of whitespace in Python 3.13. by @moorepants in #254
- Correcting time step width of trajectory plots to equal node_time_int… by @chris-konrad in #283
- Make setuptools a required dependency, fixes #295. by @moorepants in #296
- changed a typo in line 434 by @Peter230655 in #300
- add parse_free method to Problem class, add test fubction by @Peter230655 in #303
- improved HTML rendering by @Peter230655 in #305
- trial push whether layout is o.k. by @Peter230655 in #306
- Testing the RTD preview builds. by @moorepants in #307
- park a car in a garage by @Peter230655 in #289
- docstrings changed for solve to match opty by @Peter230655 in #301
- Allow for one differential equation only. Removed lines near 1300, 1680 by @Peter230655 in #311
- betts 10 103 and 104. Replaces PR # 261 by @Peter230655 in #312
- car around pylons by @Peter230655 in #298
- corrected error in rounding part of the method plot_constraint_violat… by @Peter230655 in #288
- Betts 10 50 by @Peter230655 in #272
- Simplified the code and improve wording/formatting in Betss 10 103-104. by @moorepants in #314
- Load math constants on Windows, fixes #257. by @moorepants in #320
- Added Ackermann & van den Bogert 2010 example. by @moorepants in #29
- Linting, spelling, and wording cleanup on the ball rolling on disc example. by @moorepants in #322
- raise ValueError if duplicate state symbols are present. Fixes #317 by @Peter230655 in #323
- changed I / we wordings by @Peter230655 in #329
- removed I /we wordings, some small changes by @Peter230655 in #328
- Make SciPy an optional dependency, fixes #319. by @moorepants in #327
- removed I wordings by @Peter230655 in #330
- I wording removed by @Peter230655 in #332
- particle-in-tube-new by @Peter230655 in #286
- Break examples into beginner, intermediate, and advanced. Fixes #334 by @moorepants in #338
- Changes ConstraintCollocator attributes to read only properties. Replaces PR #315 by @Peter230655 in #337
- probable typo corrected by @Peter230655 in #341
- removed leading minus by @Peter230655 in #342
- examples-gallery now has three subdirectories by @Peter230655 in #343
- Move the Park 2004 example to the gallery. by @moorepants in #340
- using windows explorer by @Peter230655 in #346
- added more textrm, first attempt at structure as per #348 by @Peter230655 in #350
- Added a sit-to-stand example with the gait2d model. by @moorepants in #356
- Release Version 1.4.0 by @moorepants in #352
New Contributors
- @chris-konrad made their first contribution in #283
Full Changelog: v1.3.0...v1.4.0
Version 1.3.0
- Added support for Python 3.12.
- Added a function that generates a numerical objective function and its
gradient from a symbolic objective function:create_objective_function()
. - Fixed constraint violation plot on
Problem
by removing the assumption
that each equation of motion was simply a function of one state. - Added an option to display the Cython compilation output and to automatically
display the output if compilation fails. Display does not always work on
Windows due to limitations in Python's capturingSTDOUT
on Windows with
certain system encodings. - Added support for variable duration solutions by passing in a symbol for the
node time interval instead of a float. - Switched to Sphinx Gallery for displaying examples in the documentation.
- Moved the three documentation examples to the Sphinx Gallery page.
- Added new examples:
- A variable duration pendulum swing up example.
- A car parallel parking example.
- A quadcopter drone flight example.
- A cycling time trial example that uses SymPy's new muscle models.
- A block sliding over a hill example.
- Updated the generated Cython code to use memory views.
Problem
now supports solving problems with no unknown input trajectories.- Corrected plot ordering for the trajectories so that mismatches no longer
occur. - Improved default plot display for larger number of variables and support
customizing axes to default plots. Problem
and other primary classes and methods can now be imported
directly from the top level opty namespace, e.g.from opty import Problem
.- Better handling of SymPy variable names that generate invalid or clashing C
variable names by appending an underscore to all opty generated C variable
names. - Switched to pytest for unit testing.
What's Changed
- Version 1.2.0 by @moorepants in #113
- Change setup() -> setup_method() due to pytest deprecation. by @moorepants in #116
- Fix mistake in the parse_free docstring by @tjstienstra in #118
- Function to generate object and objective gradient evaluator functions by @tjstienstra in #115
- Use the create_objective_function in the pendulum swing up example. by @moorepants in #120
- Show args and kwargs in Problem init explicitly by @tjstienstra in #130
- Clarify that the objective should not contain any known symbols by @tjstienstra in #137
- Improve constraint violation visualization by @tjstienstra in #125
- Added option to show Cython compilation output and display more informative error. by @moorepants in #149
- Implements support for variable duration solutions by @moorepants in #150
- Use Sphinx Gallery for the examples. by @moorepants in #153
- Car parallel parking example by @moorepants in #154
- Use env.yml in CI and build docs, fixes #155. by @moorepants in #158
- Added an example of drone flight trajectory optimization with quaternions. by @moorepants in #163
- Switched to Cython memoryviews by @moorepants in #170
- Pass in the detected device encoding to subprocess run for detecting Windows encoding. by @moorepants in #174
- Try different way to get the encoding on Windows. by @moorepants in #175
- two link pendulum to be uprighted using opty with variable h by @Peter230655 in #178
- Handle no input trajectories. by @moorepants in #183
- One-legged Cycling Time Trial Example by @moorepants in #164
- Added test to check all variable ordering and ensure plot_trajectories honors input order. by @moorepants in #187
- Use a more unique symbol for h internally, fixes #162. by @moorepants in #188
- Added all from direct_collocation and utils to package namespace. by @moorepants in #193
- Add Vyasarayani example to the gallery, but left multi option version in examples dir. by @moorepants in #199
- Append an underscore to all Opty generated C variable names to avoid variable name clashes in included code. by @moorepants in #200
- Made create_objective_function signature match rest of opty, made node_time_interval required. by @moorepants in #201
- Plot sliding block 2 by @Peter230655 in #195
New Contributors
- @tjstienstra made their first contribution in #118
- @Peter230655 made their first contribution in #178
Full Changelog: v1.2.0...v1.3.0
Version 1.2.0
- Dropped support for Python 2.7, 3.6, & 3.7.
- Added support for Python 3.9, 3.10, & 3.11.
- Bumped minimum dependencies up to versions released around mid 2020, except
for cyipopt which is set to 1.1.0 since that is the first version released on
PyPi under the name cyipopt (instead of ipopt). - Much faster symbolic Jacobian algorithm introduced. For constraints made up
of hundreds of thousands SymPy operations there can be greater than 200X
performance increase. - logging.info() used for providing information to the user.
- Moved to Github Actions continous integration.
What's Changed
- Made all count variable names consistent across the codebase. by @moorepants in #94
- Updating opty to work with new dependency minimums by @moorepants in #96
- Use the libmamba solver in CI and test Python 3.10. by @moorepants in #103
- Drop support for Python 3.6 & 3.7, add support for 3.10 & 3.11. by @moorepants in #104
- Update to use correct name for cyipopt package and Problem class by @brocksam in #101
- Added some basic info logging to ConstraintCollocator. by @moorepants in #105
- Adds a Github CI workflow for testing on all operating systems. by @moorepants in #110
- Implement function for computing Jacobians using a more efficient algorithm by @brocksam in #102
New Contributors
Full Changelog: v1.1.0...v1.2.0
Version 1.1.0
- Added support for Windows.
- Drop support for Python 3.5, add support for 3.7 and 3.8.
Version 1.0.0
This release corresponds to the publishing in the Journal of Open Source Software.