Flexivrdk

Latest version: v1.6.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

1.0

COMPATIBILITY

* Internal pre-release

ADD

- Upgrade to DDS based communication framework.
- Add real-time communication QoS.
- Add RPC-over-DDS.
- Add IP-less server discovery.
- Add support to set velocity scale for ``Robot::executePrimitive()`` and ``Robot::executePlan()``.
- Add option to make ``Robot::isOperational()`` verbose and print detailed reasons why the robot is not operational.

CHANGE

- Optimize network bandwidth consumption.
- Improve check logic of timeliness monitor.
- Change ``Robot::writeDigitalOutput()`` and ``Robot::readDigitalInput()`` to handle all ports at once.
- Replace exception with warning in ``Robot::enable()`` if E-Stop is not released.
- Re-write delivery logic of non-real-time commands to avoid undesired behaviors.
- Improve CMake installation interface.
- Increase clang-format column limit from 80 to 100.
- Rename "operation mode" to "control mode".
- Change digital IO data communication from non-real-time asynchronous to real-time synchronous.


KNOWN ISSUE

* ``Robot::startAutoRecovery()`` is temporarily not working

0.10

COMPATIBILITY

* Flexiv software package **v2.11.5**

ADD

(None)

CHANGE

- Change the behavior of `Robot::setNullSpacePosture()`. Before: null-space posture will be reset to default upon entering the applicable control modes. Now: null-space posture will maintain the current posture upon entering the applicable control modes (45).
- Provide explicit safe values for the input parameters of `Robot::sendCartesianMotionForce()`.
- Increase nominal Cartesian stiffness of Rizon 4 and its variants from [linear: 6000 N/m, angular: 400 Nm/rad] to [linear: 10000 N/m, angular: 1000 Nm/rad].
- Increase nominal Cartesian stiffness of Rizon 10 and its variants from [linear: 12000 N/m, angular: 1200 Nm/rad] to [linear: 20000 N/m, angular: 2000 Nm/rad].
- Use MSVC 14.1 (VS 2017) to compile Windows libraries (46).
- Improve code documentation.

FIX

- Fix a bug in `Robot::getPrimitiveStates()` that has a chance to cause program crash (47).
- Fix a bug in `Robot::switchTcp()` that causes this function unable to deliver the command.

0.9.1

COMPATIBILITY

* Flexiv software package **v2.11.3**

ADD

(None)

CHANGE

(None)

FIX

- Fix a bug where the second consecutive plan execution command won't execute.

0.9

COMPATIBILITY

* Flexiv software package **v2.11.3**

ADD

- Add notification service to receive and print info/warning/error messages that would also be prompted in the Elements UI (29).
- Add new input parameters `maxLinearVel` and `maxAngularVel` input parameters to `Robot::sendCartesianMotionForce()` to specify maximum Cartesian linear and angular velocity when moving to the target pose.
- Add `Robot::setMaxContactWrench()` to specify the maximum contact wrench for the motion control part of the Cartesian motion-force control modes. Also add `Robot::resetMaxContactWrench()` to disable max contact wrench regulation.
- Add more generic Cartesian motion-force control modes `RT/NRT_CARTESIAN_MOTION_FORCE` to replace the old ones which are `RT/NRT_CARTESIAN_MOTION_FORCE_TCP` and `RT/NRT_CARTESIAN_MOTION_FORCE_BASE`.
- Add functions to configure force control parameters for the new Cartesian motion-force control modes: `Robot::setForceControlAxis()`, `Robot::setForceControlFrame()`, and `Robot::setPassiveForceControl()`.
- Add behavior description to the function doc of `Robot::sendJointPosition()`.
- Add input parameter `continueExec` to `Robot::executePlan()` to specify whether to continue executing the plan when the RDK program is closed or the connection is lost. Set this parameter to true in the plan execution examples.
- Add optional verbose warning print to `Robot::isOperational()` to indicate why the robot is not operational when this function returns false.
- Add `Robot::isEnablingButtonPressed()` to check if the enabling button on the robot motion bar is pressed.
- Add `Model::reload()` to sync the latest robot model and tool model data from the connected robot.
- Add `Scheduler::minPriority()` to get the OS' minimum available priority for user tasks.
- Add check on user-specified task priority against the OS' minimum available priority to `Scheduler::addTask()`.
- Add [Blocking] or [Non-blocking] tag to function doc.
- Add `Log::critical()` to print critical error message.
- Add `utility::arr2Str()`.

CHANGE

- Change `Robot::streamCartesianMotionForce()` and `Robot::sendCartesianMotionForce()` to use the same controller as `MoveHybrid` primitive. Update Cartesian motion-force control examples accordingly (35).
- Divide `Robot::setCartesianStiffness()` to `setCartesianStiffness()` and `resetCartesianStiffness()`.
- Divide `Robot::setNullSpacePosture()` to `setNullSpacePosture()` and `resetNullSpacePosture()`.
- Change `Robot::readDigitalInput()` to read all digital input ports at once. Also change it from a non-real-time blocking function to a real-time non-blocking function (27).
- Change `Robot::writeDigitalOutput()` to support writing to one or multiple digital output ports at once.
- Change `Robot::enable()` to print warning instead of throwing exception if E-Stop is not released.
- Change `Gripper::getGripperStates()` from a non-real-time blocking function to a real-time non-blocking function (25).
- Change the term "operation mode" to "control mode" to avoid confusion with the robot's Auto/Manual operational mode.
- Replace `Robot::startAutoRecovery()` with `Robot::runAutoRecovery()`, which blocks until the automatic recovery process is finished. Update examples accordingly.
- Remove input parameter `gravityEarth` from the constructor of `flexiv::Model`. The value will now be auto-synced from the connected robot.
- Remove input parameter `isBlocking` from `Scheduler::start()`, the user should implement their own blocking from the calling thread if needed. Update examples accordingly.
- Rename `Model::updateModel()` to `Model::update()`. Update examples accordingly.
- Remove check on elapsed waiting time of `Robot::isOperational()` from the examples.
- Improve function docs.
- Increase CMake minimum version to 3.16.3.
- Rename C++ libs to all lower-case.
- Remove Ubuntu 18.04 from supported OS list.
- Format Python examples using Black Formatter.

FIX

- Fix occasional false negative of `Robot::isBusy()` (26).
- Reduce mode transition time when calling `Robot::setMode()`.
- Fix a gripper control bug where the primitive/plan loses control of the gripper after any function from `flexiv::Gripper` API is called.
- Fix memory leak of `flexiv::Scheduler` (37).
- Fix initial timer fluctuation of `flexiv::Scheduler`.
- Fix a bug where the input parameter `enableGravityComp` of `Robot::streamJointTorque()` cannot disable gravity compensation (39).
- Fix a bug where the executing plan will be terminated when `Robot::setGlobalVariables()` is called.
- Fix a bug in heartbeat service where the connection will be closed immediately upon reconnection after disconnected for a while (30).
- Fix a bug in timeliness monitor (38).
- Fix incorrect description in the function doc of `Robot::executePrimitive()`.

0.8

COMPATIBILITY

* Flexiv robot software **v2.10.5**

ADD

- Add new API for Cartesian unified motion-force control in base or TCP frame. For real-time access, use modes ``RT_CARTESIAN_MOTION_FORCE_BASE`` and ``RT_CARTESIAN_MOTION_FORCE_TCP``. For non-real-time access, use modes ``NRT_CARTESIAN_MOTION_FORCE_BASE`` and ``NRT_CARTESIAN_MOTION_FORCE_TCP``.
- Add real-time and non-real-time examples for the new motion-force control mode.
- Add new method ``Robot::info()`` to access general information of the robot.
- Add new method ``Robot::pausePlan()`` to pause or resume the execution of the current plan.

CHANGE

- Replace ``Robot::streamTcpPose()`` with newly added motion-force control method ``Robot::streamCartesianMotionForce()``.
- Replace ``Robot::sendTcpPose()`` with newly added motion-force control method ``Robot::sendCartesianMotionForce()``.
- Replace ``Robot::executePlanByIndex()`` and ``Robot::executePlanByName()`` with overloaded function ``Robot::executePlan()``.
- Remove ``contact_control`` examples, replace with direct motion force control examples.
- Remove ``series_operation`` examples, no longer relevant.
- Replace ``RT_cartesian_impedance_control`` example with ``RT_cartesian_pure_motion_control`` example, using the newly added motion-force control API.
- Add blocking check on whether the desired mode is successfully set to ``Robot::setMode()``. Remove manual check using ``Robot::getMode()`` from examples.
- Rename ``StatesData.hpp`` to ``Data.hpp``.
- Update enums naming of ``flexiv::Mode``.
- Update ``Robot::setCartesianStiffness()`` to reset to default values based on detected robot model.
- Update ``Robot::setNullSpacePosture()`` to reset to default values based on detected robot model.
- Update README.
- Re-organize examples into basic and intermediate tutorials.


FIX

* Improve server-client compatibility check.
* Minor fixes to examples.

0.7

COMPATIBILITY

* Flexiv robot software **v2.10.3** and **v2.10.4**

ADD

* Add GitHub action for Windows.
* Add support for Python 3.10.
* Add support for the real-time scheduler ``flexiv::Scheduler`` on macOS.
* Add support for setting CPU affinity in ``flexiv::Scheduler``.
* Add ``Scheduler::maxPriority()`` to get the maximum available priority for the user task under the current system.
* Add contact control C++ and Python example.
* Add new exception types: ``ClientException`` and ``LogicException``.
* Add ``flexiv::GripperStates`` struct and corresponding output stream operator ``<<`` to ``StatesData.hpp``: the general gripper feedback states, update examples accordingly.
* Add ``Gripper::getGripperStates()`` to request the latest gripper states from robot server, update examples accordingly.
* Add ``Robot::setNullSpacePosture()`` to do null-space posture control during Cartesian control modes, update examples accordingly.
* Add detailed description to items in ``flexiv::RobotStates`` struct.
* Add ``RobotStates::ftSensorRaw``: the raw reading from the end-effector force-torque (FT) sensor, if available.
* Add output stream operator ``<<`` for ``flexiv::PlanInfo`` struct.
* Add URDF and mesh files for Rizon 10 robot arm.
* Add DAE format visual mesh files.

CHANGE

* Remove ``flexiv::Visualization`` and related contents: users now need to use their own visualization methods.
* Remove ``RobotStates::endLinkPose``.
* Improve API docs.
* Improve the performance, compatibility, and stability of ``flexiv::Scheduler``.
* Rename ``Scheduler::getTaskCount()`` to ``Scheduler::numTasks()``.
* Rename ``RobotStates::extForceInTcpFrame`` to ``RobotStates::extWrenchInTcp``.
* Rename ``RobotStates::extForceInBaseFrame`` to ``RobotStates::extWrenchInBase``.
* Update all examples to pass by (const) reference.
* Update primitive execution examples to demonstrate how to express target coordinate in TCP frame.
* Update the constructor of ``flexiv::Gripper`` to pass by const reference.
* Update the constructor of ``flexiv::Model`` to pass by const reference.
* Update ``Robot::isBusy()`` to also cover primitives that can auto-terminate upon completion (some primitives won't auto-terminate upon completion, for example, the [Move] series).
* Update CMakeLists to auto-detect OS and processor type.
* Update README.


FIX

* Fix a bug in series operation example where the specified plan no longer exists.
* Fix a bug where ``Robot::setGlobalVariables()`` can be used in other modes other than the plan execution mode.
* Fix a bug where ``Robot::setGlobalVariables()`` returns too soon and the processing may have not fully completed.

Page 2 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.