v1.4
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 becomesflexiv::rdk::. - Add support for Rizon medical model
Rizon4M. - Add support for the force-controlled delta robot
Moonlight. - Add support of
flexiv::rdk::ModelAPI for Python RDK. Addintermediate5_robot_dynamics.pyexample 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. RemovekJointDOFconstant 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. Addintermediate2_realtime_joint_impedance_control.cppandintermediate2_non_realtime_joint_impedance_control.pyexamples accordingly. - Add
Robot::SetJointImpedance()andRobot::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
spdlogto replace theflexiv::LogAPI. 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
separatortoutility::Arr2Str(). - Add
utility::Vec2Str().
CHANGE
- Change header file extension from
.hto.hppto 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
RobotInfoandRobotStatesdata structures from fixed-size arrays to dynamic-size vectors. Also change input arrays ofRobot::StreamJointTorque(),Robot::StreamJointPosition(),Robot::SendJointPosition(),Robot::SetJointImpedance(),Robot::SetNullSpacePosture(), andModel::Update()to vectors. Update examples accordingly. - Rename
RobotInfo::nominal_KtoRobotInfo::K_x_nom. - Update function documentation of
Robot::StreamJointPosition()andRobot::SendJointPosition()to include joint impedance control modes. - Change
Robot::SetCartesianStiffness()toRobot::SetCartesianImpedance()andRobot::ResetCartesianStiffness()toRobot::ResetCartesianImpedance(). Cartesian motion damping ratio is added as a new input parameter. Update examples accordingly. - Rename
kCartDOFtokCartDoF. 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(), andTool::functions. - Use pip installed
spdlogin Python examples. - Merge
PrintDescription()tomain()in all examples. - Change
maxVel=tovel=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 afterRobot::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.