Skip to content

v1.4

Choose a tag to compare

@pzhu-flexiv pzhu-flexiv released this 15 Jul 19:28
· 9 commits to main since this release
7f020e6

NOTE

This release note is based on changes since v1.3. If you are switching from v0.x to v1.x for the first time, you might want to review all release notes since the v1.0 pre-release,

COMPATIBILITY

  • Flexiv software package v3.6

ADD

  • Add sub-namespace: flexiv:: now becomes flexiv::rdk::.
  • Add support for Rizon medical model Rizon4M.
  • Add support for the force-controlled delta robot Moonlight.
  • Add support of flexiv::rdk::Model API for Python RDK. Add intermediate5_robot_dynamics.py example accordingly.
  • Add installation of Python RDK libraries to the user site packages path, using CMake. Remove sys.path.insert() from Python examples accordingly.
  • Add RobotInfo::K_q_nom, nominal motion stiffness of the joint impedance control modes of the connected robot.
  • Add RobotInfo::model_name, model name of the connected robot, e.g. Rizon4, Rizon10, Moonlight, etc.
  • Add RobotInfo::DoF, joint-space degrees of freedom of the connected robot. Remove kJointDOF constant accordingly. The joint DoF now varies according to the model of the connected robot. Update examples accordingly.
  • Add real-time joint impedance (RT_JOINT_IMPEDANCE) and non-real-time joint impedance (NRT_JOINT_IMPEDANCE) control modes. Add intermediate2_realtime_joint_impedance_control.cpp and intermediate2_non_realtime_joint_impedance_control.py examples accordingly.
  • Add Robot::SetJointImpedance() and Robot::ResetJointImpedance() that sets and resets stiffness and damping ratio of the robot's joint motion controller used in the joint impedance control modes.
  • Add Robot::Brake() to force engaging or releasing robot brakes during normal operation. Only available to the medical model.
  • Add Model::reachable() to check reachability of a given Cartesian pose and return the corresponding IK solution if reachable.
  • Add error code prefix to Robot Log messages.
  • Add new dependency spdlog to replace the flexiv::Log API. Update examples and tests accordingly.
  • Add new C++ example to show how to change logging behavior of RDK client, as well as how to log to file.
  • Add input parameter separator to utility::Arr2Str().
  • Add utility::Vec2Str().

CHANGE

  • Change header file extension from .h to .hpp to prevent C++ IntelliSense tool from mistaking certain system headers for RDK headers.
  • To accommodate the newly added support of the Moonlight delta robot, change joint-space variables in RobotInfo and RobotStates data structures from fixed-size arrays to dynamic-size vectors. Also change input arrays of Robot::StreamJointTorque(), Robot::StreamJointPosition(), Robot::SendJointPosition(), Robot::SetJointImpedance(), Robot::SetNullSpacePosture(), and Model::Update() to vectors. Update examples accordingly.
  • Rename RobotInfo::nominal_K to RobotInfo::K_x_nom.
  • Update function documentation of Robot::StreamJointPosition() and Robot::SendJointPosition() to include joint impedance control modes.
  • Change Robot::SetCartesianStiffness() to Robot::SetCartesianImpedance() and Robot::ResetCartesianStiffness() to Robot::ResetCartesianImpedance(). Cartesian motion damping ratio is added as a new input parameter. Update examples accordingly.
  • Rename kCartDOF to kCartDoF. Update examples accordingly.
  • Update Robot::ClearFault() to support clearing critical robot faults, if the hardware for hot-reset is installed.
  • Increase nominal Cartesian stiffness of Rizon 4 series from [10000-1000] to [10000-2500], and Rizon 10 series from [20000-2000] to [20000-6000].
  • Greatly reduce blocking time of Robot::ExecutePrimitive(), Robot::ExecutePlan(), Robot::SwitchMode(), and Tool:: functions.
  • Use pip installed spdlog in Python examples.
  • Merge PrintDescription() to main() in all examples.
  • Change maxVel= to vel= in primitive execution examples.
  • Use f-string formatting in Python examples.
  • Upgrade doc/Doxyfile.in.
  • Improve function documentations.
  • Improve README.
  • Improve dependencies build script.

FIX

  • Fix Robot::global_variables() does not return updated values if called immediately after Robot::SetGlobalVariables().
  • Fix a bug where re-switching control mode before sending commands is not enforced after disconnected then reconnected with the robot.
  • Fix a bug in test/test_dynamics_engine.cpp.
  • Fix keyboard interruption handling for Python examples.
  • Fix compatibility issue with Eigen for Python 3.12 libraries.