Skip to content

v0.9

Compare
Choose a tag to compare
@pzhu-flexiv pzhu-flexiv released this 29 Nov 02:03
· 10 commits to main since this release
00cd9c7

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().