v1.2
Pre-release
Pre-release
COMPATIBILITY
- Internal pre-release
ADD
- Add API access of
flexiv::Model
to Windows. - Add new API
flexiv::Tool
to online update the robot tools. Add C++ and Python examples. - Add
ToolParams
data struct toData.hpp
. - Add new API
flexiv::FileIO
to do file transfer with the robot. - Add
Robot::setBreakpointMode()
andRobot::stepBreakpoint()
to do breakpoint control when executing plans. - Add
PlanInfo::waitingForStep
variable to indicate breakpoint status. - Add more generic Cartesian motion-force control modes
RT/NRT_CARTESIAN_MOTION_FORCE
to replace the old ones which areRT/NRT_CARTESIAN_MOTION_FORCE_TCP
andRT/NRT_CARTESIAN_MOTION_FORCE_BASE
. - Add functions to configure force control parameters for the new Cartesian motion-force control modes:
Robot::setForceControlAxis()
,Robot::setForceControlFrame()
, andRobot::setPassiveForceControl()
. - Add behavior description to the function doc of
Robot::sendJointPosition()
. - Add input parameter
continueExec
toRobot::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
Robot::isEnablingButtonPressed()
to check if the enabling button on the robot motion bar is pressed. - Add
Robot::getErrorMessage()
to get error message if the robot is in fault state. - 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.
- Overload
Gripper::getGripperStates()
with a variant that directly returnsGripperStates
data struct. - Overload
Robot::getRobotStates()
with a variant that directly returnsRobotStates
data struct. - Add GitHub workflow for macOS build.
CHANGE
- Split RDK license to Standard license and Professional license. The standard license provides access to essential and non-real-time functionalities such as reading robot states, sending plan/primitive commands, etc. The professional license provides access to everything included with the standard license, plus robot dynamics and real-time functionalities such as joint torque/position streaming, Cartesian motion/force streaming, etc.
- Change
Robot::streamCartesianMotionForce()
andRobot::sendCartesianMotionForce()
to use the same controller asMoveHybrid
primitive. Update Cartesian motion-force control examples accordingly. - Change
Robot::getPlanInfo()
to returnPlanInfo
data struct directly. - Change the term "base" to "world" when referring to the robot's global coordinate.
- Change
RobotStates::extWrenchInBase
toRobotStates::extWrenchInWorld
. - Make the effect of
Robot::setNullSpacePosture()
persistent: not resetting preferred joint positions to nominal when switching modes. - Remove input parameter
isBlocking
fromScheduler::start()
, the user should implement their own blocking from the calling thread if needed. Update examples accordingly. - Remove check on elapsed waiting time of
Robot::isOperational()
from the examples. - Remove
RobotStates::camPose
: the ownership of camera pose is transferred to Noema AI system. - Merge
test_dynamics_with_tool
intotest_dynamics_engine
. - Improve function docs.
- Remove Ubuntu 18.04 from supported OS list.
- Rename C++ libs to the same pattern as the Python libs.
- Format Python examples using Black Formatter.
- Update MSVC compatible version in README.
FIX
- Fix a root link bug in
flexiv::Model
. - Fix memory leak of
flexiv::Scheduler
. - Fix initial timer fluctuation of
flexiv::Scheduler
. - Fix
Robot::runAutoRecovery()
.