kdFlex 0.9.18 release

kdFlex 0.9.18 Code Changes Summary

API Changes

  • Slightly modified the signature of Karana.Dynamics.SOADyn_Py.SubGraph.showBodiesGraph as a result of the Karana.KUtils.visjs factor. Documentation details.
  • Unified loop and coordinate constraint enabling/disabling API. Details.
  • Added common base class for all bilateral constraints. Documentation
  • Replaced the constraint nU() method with the nResiduals() method. Documentation
  • Added optional hinge_type argument to the body reattach() method. Recipe
  • Added more flexibility to SubTree creation to better tailor bodies to include. Documentation
  • Removed the body childBodies() method - instead use SubTree::childrenBodies() method. Documentation
  • body2joint_T was renamed to body_to_joint_transfrom and inb2joint_T was renamed to inb_to_joint_transform in the Karana::Dynamics::PhysicalBodyParams

New Features

  • Published a chatbot assistant to answer questions about kdFlex. Available to all registered users at Karana Dynamics | Login Required
  • Heavily refactored the API and functionality of the graph viewer found in Karana.KUtils.visjs. See the visjs documentation.
    • Added the python dependencies uvicorn and fastapi for the new visjs web server.
  • Added submenu to configure joint articulations in Karana.KUtils.MultibodyTUI. See the MultibodyTUI documentation.
  • Updated the watermark in 3D graphics to use the new Karana Dynamics logo design
  • Added algorithms for constraint kinematics analysis (coordinate partitioning etc). Documentation
  • Added convenience inheritConstraints() SubGraph method to transfer constraints from the parent. Details
  • Added SubTree::coordAt() method. Documentation
  • Added SubGraph::constraintAt() method. Documentation
  • The StatePropagator was updated so that users can change the time via setState and the TimedEvents will be rescheduled appropriately. See System State for more details.
  • The nextEventTime method was added to TimedEvent. This retrieves the TimedEvent’s next event execution time. See nextEventTime for more details.

Enhancements

  • A few more constructors were updated to use std::string_view rather than const std::string&. See the Frame constructor as an example.
  • The Eigen dependency was updated to use version 5.0. See the C++ build instructions for more details.
  • The TimedEvent error message triggered when the reschedule_fn gives an infeasible time was updated to include the name. This makes debugging reschedule_fn-related issues easier. See the reschedule_fn documentation for more details.
  • webscene-frontend was updated to use a binary rather than an AppImage. This reduces the dependencies needed by kdFlex and in some cases the time to open webscene-frontend as an electron app.

Bug Fixes

  • Made SubGraphDS fixes to properly handle strict subgraphs.
  • A bug in numpy.timedelta64 to std::chrono conversion was fixed. This bug was causing casting errors for certain unit types, e.g., “ms”. See pybind11_chrono_numpy.h for details.