Tools Interface
Tools interface node (Only for development and debugging)
- The ROS Node is used to:
initialize the Tool Interface.
start ROS stuffs like services, topics.
Tools Interface Core
It is instantiated by the Niryo Robot Hardware Interface node.
- The node:
initializes the Tool Interface.
provides services for setting and controlling tools.
publishes tools states.
It belongs to the ROS namespace: /tools_interface
.
Tools motors configuration
Niryo tools are equipped with dynamixels servomotors, therefore they can be configured following the dynamixel protocol.
Here is are the parameters for the motors of all the Niryo robot tools:
1tools_params:
2 id_list: [11,12,13,31,32]
3 type_list: ["xl330","xl330","xl330","xl330","xl330"]
4 name_list: ["Standard Gripper", "Large Gripper", "Adaptive Gripper", "Vacuum Pump", "Vacuum Pump v2"]
5 params_list: [
6 {velocity_profile: 130, acceleration_profile: 60, pid: {p: 400, i: 0, d: 50}},
7 {velocity_profile: 130, acceleration_profile: 60, pid: {p: 400, i: 0, d: 50}},
8 {velocity_profile: 130, acceleration_profile: 60, pid: {p: 400, i: 0, d: 50}},
9 {velocity_profile: 0, acceleration_profile: 0, pid: {p: 400, i: 0, d: 0}},
10 {velocity_profile: 80, acceleration_profile: 40, pid: {p: 400, i: 0, d: 0}}
11 ]
12 temperature_limit: 50 # DO NOT MODIFY THIS VALUE
13 shutdown_configuration: 53 # DO NOT MODIFY THIS VALUE
In this yaml file, each index for each list corresponds to a tool. Each tool has a name, an ID on the TTL bus, a type and a set of parameters.
Package Documentation
For more informations about ROS topics, services and parameters, check the Niryo robot hardware interface documentation.
ROS topics
Publishers
Topic Name |
Type |
Description |
---|---|---|
/niryo_robot_hardware/tools/motor |
Publish informations about the tool’s motor (ID, motor type, position, state) |
ROS Services
Service Name |
Type |
Description |
---|---|---|
/niryo_robot/tools/close_gripper |
Close the gripper |
|
/niryo_robot/tools/open_gripper |
Open the gripper |
|
/niryo_robot/tools/ping_and_set_dxl_tool |
Ping the given device ID on the bus and set the corresponding tool if found |
|
/niryo_robot/tools/pull_air_vacuum_pump |
Pull air from the vacuum pump |
|
/niryo_robot/tools/push_air_vacuum_pump |
Push air to the vacuum pump |
|
/niryo_robot/tools/reboot |
Reboot the tool’s motor |
ROS Parameters
Parameter Name |
Default value |
Simulation value |
Unit |
Description |
---|---|---|---|---|
/niryo_robot_hardware_interface/tools_interface/check_tool_connection_frequency |
2.0 |
N/A |
Hz |
Frequency at which the tool connection is checked |
/niryo_robot_hardware_interface/tools_interface/gripper_timeout |
3.0 |
N/A |
seconds |
Maximum waiting time before considering that the gripper cannot move anymore (due to contact with an object for example) |
/niryo_robot_hardware_interface/tools_interface/tools_params/id_list |
None |
[11, 12, 13, 31, 32] |
string |
List of tools IDs on the TTL bus |
/niryo_robot_hardware_interface/tools_interface/tools_params/name_list |
None |
[‘Standard Gripper’, ‘Large Gripper’, ‘Adaptive Gripper’, ‘Vacuum Pump’, ‘Vacuum Pump v2’] |
string |
List of tools names on the TTL bus |
/niryo_robot_hardware_interface/tools_interface/tools_params/params_list |
None |
[{‘velocity_profile’: 130, ‘acceleration_profile’: 60, ‘pid’: {‘p’: 400, ‘i’: 0, ‘d’: 50}}, {‘velocity_profile’: 130, ‘acceleration_profile’: 60, ‘pid’: {‘p’: 400, ‘i’: 0, ‘d’: 50}}, {‘velocity_profile’: 130, ‘acceleration_profile’: 60, ‘pid’: {‘p’: 400, ‘i’: 0, ‘d’: 50}}, {‘velocity_profile’: 0, ‘acceleration_profile’: 0, ‘pid’: {‘p’: 400, ‘i’: 0, ‘d’: 0}}, {‘velocity_profile’: 80, ‘acceleration_profile’: 40, ‘pid’: {‘p’: 400, ‘i’: 0, ‘d’: 0}}] |
string |
List of tools parameters on the TTL bus |
/niryo_robot_hardware_interface/tools_interface/tools_params/type_list |
None |
[‘fakeDxl’, ‘fakeDxl’, ‘fakeDxl’, ‘fakeDxl’, ‘fakeDxl’] |
string |
List of tools motor types on the TTL bus |
/niryo_robot_hardware_interface/tools_interface/vacuum_pump_timeout |
3.0 |
N/A |
seconds |
Maximum waiting time before considering that the vacuum pump motor cannot move anymore (due to contact with an object for example) |
ROS Action
Namespace: None