Interface to manage tools of the robot. All updates take effect immediately without a power cycle. However, the robot must be in IDLE mode when applying changes.
More...
#include <tool.hpp>
|
| Tool (const Robot &robot) |
| [Non-blocking] Instantiate the robot tool interface. More...
|
|
std::vector< std::string > | list () const |
| [Blocking] A list of all configured tools. More...
|
|
std::string | name () const |
| [Blocking] Name of the tool that the robot is currently using. More...
|
|
bool | exist (const std::string &name) const |
| [Blocking] Whether the specified tool already exists. More...
|
|
ToolParams | params () const |
| [Blocking] Parameters of the tool that the robot is currently using. More...
|
|
ToolParams | params (const std::string &name) const |
| [Blocking] Parameters of the specified tool. More...
|
|
void | Add (const std::string &name, const ToolParams ¶ms) |
| [Blocking] Add a new tool with user-specified parameters. More...
|
|
void | Switch (const std::string &name) |
| [Blocking] Switch to an existing tool. All following robot operations will default to use this tool. More...
|
|
void | Update (const std::string &name, const ToolParams ¶ms) |
| [Blocking] Update the parameters of an existing tool. More...
|
|
void | Remove (const std::string &name) |
| [Blocking] Remove an existing tool. More...
|
|
ToolParams | CalibratePayloadParams (bool tool_mounted) |
| [Blocking] Calibrate the payload parameters (mass, CoM, and inertia) of a tool. More...
|
|
Interface to manage tools of the robot. All updates take effect immediately without a power cycle. However, the robot must be in IDLE mode when applying changes.
Definition at line 41 of file tool.hpp.
◆ Tool()
flexiv::rdk::Tool::Tool |
( |
const Robot & |
robot | ) |
|
[Non-blocking] Instantiate the robot tool interface.
- Parameters
-
- Exceptions
-
std::runtime_error | if the initialization sequence failed. |
◆ Add()
void flexiv::rdk::Tool::Add |
( |
const std::string & |
name, |
|
|
const ToolParams & |
params |
|
) |
| |
[Blocking] Add a new tool with user-specified parameters.
- Parameters
-
[in] | name | Name of the new tool, must be unique. |
[in] | params | Parameters of the new tool. |
- Exceptions
-
std::invalid_argument | if the specified tool already exists. |
std::logic_error | if robot is not in the correct control mode. |
std::runtime_error | if failed to deliver the request to the connected robot. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the request is successfully delivered.
◆ CalibratePayloadParams()
ToolParams flexiv::rdk::Tool::CalibratePayloadParams |
( |
bool |
tool_mounted | ) |
|
[Blocking] Calibrate the payload parameters (mass, CoM, and inertia) of a tool.
- Parameters
-
[in] | tool_mounted | Whether the tool to be calibrated is mounted on the robot flange when triggering this calibration process. See details below. |
- Exceptions
-
std::logic_error | if robot is not in the correct control mode. |
std::runtime_error | if fault occurred during the calibration or failed to get the calibration result. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the calibration is finished.
- Warning
- [tcp_location] in the returned struct will be zeros and should be ignored.
- How to properly calibrate the payload parameters of a tool?
- Call Switch("Flange") to disable any active tool from the robot software.
- Physically mount the tool to be calibrated to robot flange.
- Call this function with [tool_mounted] set to TRUE, then wait for completion. If the robot has a force-torque (FT) sensor (e.g. Rizon4s, Rizon10s), then the returned result will be accurate enough and the optional steps can be skipped. If the robot does not have an FT sensor (e.g. Rizon4, Rizon10), then the optional steps are recommended to improve accuracy.
- (Optional) Physically unmount the tool from robot flange.
- (Optional) Call this function again but with [tool_mounted] set to FALSE, then wait for completion.
- Review the returned result and call Add() or Update() to apply the calibrated payload parameters to a new or existing tool. Note that [tcp_location] in the returned struct is invalid and cannot be used directly.
◆ exist()
bool flexiv::rdk::Tool::exist |
( |
const std::string & |
name | ) |
const |
[Blocking] Whether the specified tool already exists.
- Parameters
-
[in] | name | Name of the tool to check. |
- Returns
- True if the specified tool exists.
- Exceptions
-
std::runtime_error | if failed to get a reply from the connected robot. |
- Note
- This function blocks until a reply is received.
◆ list()
std::vector<std::string> flexiv::rdk::Tool::list |
( |
| ) |
const |
[Blocking] A list of all configured tools.
- Returns
- Tool names as a string list.
- Exceptions
-
std::runtime_error | if failed to get a reply from the connected robot. |
- Note
- This function blocks until a reply is received.
◆ name()
std::string flexiv::rdk::Tool::name |
( |
| ) |
const |
[Blocking] Name of the tool that the robot is currently using.
- Returns
- Name of the current tool. Return "Flange" if there's no active tool.
- Exceptions
-
std::runtime_error | if failed to get a reply from the connected robot. |
- Note
- This function blocks until a reply is received.
◆ params() [1/2]
[Blocking] Parameters of the tool that the robot is currently using.
- Returns
- ToolParams value copy.
- Exceptions
-
std::runtime_error | if failed to get a reply from the connected robot. |
- Note
- This function blocks until a reply is received.
◆ params() [2/2]
ToolParams flexiv::rdk::Tool::params |
( |
const std::string & |
name | ) |
const |
[Blocking] Parameters of the specified tool.
- Parameters
-
[in] | name | Name of the tool to get parameters for, must be an existing one. |
- Returns
- ToolParams value copy.
- Exceptions
-
std::invalid_argument | if the specified tool does not exist. |
std::runtime_error | if failed to get a reply from the connected robot. |
- Note
- This function blocks until a reply is received.
◆ Remove()
void flexiv::rdk::Tool::Remove |
( |
const std::string & |
name | ) |
|
[Blocking] Remove an existing tool.
- Parameters
-
[in] | name | Name of the tool to remove, must be an existing one but cannot be "Flange". |
- Exceptions
-
std::invalid_argument | if the specified tool does not exist. |
std::logic_error | if robot is not in the correct control mode or trying to remove "Flange". |
std::runtime_error | if failed to deliver the request to the connected robot. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the request is successfully delivered.
◆ Switch()
void flexiv::rdk::Tool::Switch |
( |
const std::string & |
name | ) |
|
[Blocking] Switch to an existing tool. All following robot operations will default to use this tool.
- Parameters
-
[in] | name | Name of the tool to switch to, must be an existing one. |
- Exceptions
-
std::invalid_argument | if the specified tool does not exist. |
std::logic_error | if robot is not in the correct control mode. |
std::runtime_error | if failed to deliver the request to the connected robot. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the request is successfully delivered.
◆ Update()
void flexiv::rdk::Tool::Update |
( |
const std::string & |
name, |
|
|
const ToolParams & |
params |
|
) |
| |
[Blocking] Update the parameters of an existing tool.
- Parameters
-
[in] | name | Name of the tool to update, must be an existing one. |
[in] | params | New parameters for the specified tool. |
- Exceptions
-
std::invalid_argument | if the specified tool does not exist. |
std::logic_error | if robot is not in the correct control mode. |
std::runtime_error | if failed to deliver the request to the connected robot. |
- Note
- Applicable control modes: IDLE.
-
This function blocks until the request is successfully delivered.
The documentation for this class was generated from the following file: