You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support to use Cartesian motion-force control modes with the Moonlight delta robot.
Add an overload of Robot::SetGlobalVariables() that takes in an std::map instead of a long string. The old version will be deprecated.
Add an overload of Robot::global_variables() that returns an std::map instead of a string list. The old version will be deprecated.
Add an overload of Robot::ExecutePrimitive() that takes in an std::map instead of long sting. The old version will be deprecated.
Add an overload of Robot::primitive_states() that returns an std::map instead of a string list. The old version will be deprecated.
Add type alias FlexivDataTypes to represent a variant that holds all possible types of data exchanged with Flexiv robots using the new overloaded functions above.
Add utility::FlexivTypes2Str() to convert data held in FlexivDataTypes to a single string.
Add rdk::Coord struct to be used with FlexivDataTypes variant.
Add function Robot::SetNullSpaceObjectives() to set weights of the three optimization objectives while computing the robot's null-space posture.
Add API flexiv::rdk::WorkCoord to online update and interact with the robot's work coordinates (#58, #66).
Add enum rdk::CoordType to represent commonly-used reference coordinates.
Add Robot::operational_status() with enum return type (#67, #81).
Add Robot::reduced() to check for safety system's reduced state (#67).
Add new input parameter block_until_started to Robot::ExecutePlan() and Robot::ExecutePrimitive() (#76).
Add input parameter velocity to Robot::StreamCartesianMotionForce() so users have the option to improve the robot's tracking performance at the cost of reduced robustness or vice versa.
Add Device::exist() to check if the specified device exists.
Add Model::SyncURDF() to cync the actual kinematic parameters of the connected robot into the template URDF (#82).
Add RobotInfo::license_type.
Add external axes states to RobotStates.
Add RobotStates::ext_wrench_in_tcp_raw and RobotStates::ext_wrench_in_world_raw that contain unfiltered external wrench data.
Add C++ and Python examples for global variable functions.
Add urgency scale to feature request template.
CHANGE
Allow Robot::SetGlobalVariables() to be called in any control mode instead of only in NRT_PLAN_EXECUTION mode.
Change Robot::SetCartesianImpedance() to blocking, and the robot will not reset to nominal Cartesian impedance upon re-entering the applicable control modes; the setting will persist.
Remove Robot::ResetCartesianImpedance(), the user has enough info to reset the impedance using Robot::SetCartesianImpedance().
Change Robot::SetJointImpedance() to blocking, and the robot will not reset to nominal joint impedance upon re-entering the applicable control modes; the setting will persist.
Remove Robot::ResetJointImpedance(), the user has enough info to reset the impedance using Robot::SetJointImpedance().
Change Robot::SetMaxContactWrench() to blocking, and the robot will not reset to disable contact wrench regulation upon re-entering the applicable control modes; the setting will persist.
Remove Robot::ResetMaxContactWrench(), the user has enough info to disable contact wrench regulation using Robot::SetMaxContactWrench().
Change Robot::SetNullSpacePosture() to blocking.
Remove Robot::ResetNullSpacePosture(), the user has enough info to reset to initial reference positions using Robot::SetNullSpacePosture().
Change Robot::SetForceControlAxis() to blocking, and allow it to be called when in motion force-control modes.
Change Robot::SetForceControlFrame() to blocking, and allow it to be called when in motion force-control modes.
Support setting a user-defined arbitrary force control frame with regard to either WORLD or TCP frame using Robot::SetForceControlFrame() (#78).
Change Robot::SetPassiveForceControl() to blocking.
Flip the force command direction in motion-force control modes to make the behavior consistent with Flexiv Elements.
Throw exception in Tool::Add(), Tool::Switch(), Tool::Update(), Tool::Remove(), and Tool::params() if the specified tool does not exist.
Throw exception in Device::Enable(), Device::Disable(), and Device::Command() if the specified device does not exist.
Throw exception in Device::Command() if the commanded device is not enabled.
Device::Command() uses variant to represent command values.
Remove mandatory blocking of Gripper::Init(), user needs to implement the wait accordingly.
Change enum Mode to scoped enum class Mode.
Use Robot::SetDigitalOutputs() to deprecate WriteDigitalOutput().
Use Robot::digital_inputs() to deprecate ReadDigitalInput().
Remove utility::ParsePtStates(), no longer needed.
The "Home" primitive now does not terminate by itself, thus change termination check condition from busy() == false to reachedTarget == true.
Update warning doc of Robot::ExecutePrimitive() about primitives' self-termination.
Internal plans (those not created by user) now cannot be resumed from pause due to safety concerns.
Remove input parameter trailing_space from utility::Vec2Str() and Arr2Str().
Change the term "preferred positions" to "reference positions" to be consistent with Flexiv Elements.
Decrease the nominal rotation stiffness from 3000 to 1500 Nm/rad for Rizon 4 variants and from 6000 to 3000 Nm/rad for Rizon 10 varients due to stability concerns.
Remove excessive prints.
Update API usages in examples.
Update website links.
FIX
Fix cmake/FlexivInstallLibrary.cmake that exports the wrong project version.
Specify -DCMAKE_PREFIX_PATH in thirdparty build scripts so they don't accidentally link to existing dependencies in system path.
Fix connection loss with the robot when network condition is bad.
Fix the issue where spdlog's log level is not reset when the construction of rdk::Robot is incomplete.