Hardware Interface¶
Robot Controller¶
Control the robot’s motion and get data. This interface relies on the Universal_Robots_ROS_Driver package to control UR robots using the builtin ROS controllers.
-
class
hardware_interface.RobotController(robot_name='', debug=False)¶ Hardware interface that can control a robot via ROS controllers
- Parameters
robot_name (str) – Name of the robot. This name must match the prefix of the robot’s controller topics
debug (bool) – Turn on debugging print statements
-
balance_ft()¶ Zero the internal F/T offsets
-
balance_pose()¶ Zero the internal pose offsets
-
get_offsets()¶ Get the internal F/T and Pose offsets
- Returns
offsets – Offset dict with “force”, “torque”, “position”, and “orientation” keys
- Return type
dict
-
get_twist(linear, angular)¶ Build a twist message from vectors
- Parameters
linear (list) – The linear twist components [x,y,z]
angular (list) – The angular twist components [x,y,z]
- Returns
twist – The resulting twist message
- Return type
geometry_msgs/Twist
-
load_controller(controller)¶ Load a ROS controller
- Parameters
controller (str) – Name of the controller to load
- Returns
response – Service response from the controller manager
- Return type
str
-
play_program()¶ Start the program on the teach pendant. This ony works if you are in remote control mode
- Returns
result – The result of the service call
- Return type
srv
-
set_controller(controller)¶ Set which ROS controller is started, and stop all others
- Parameters
controller (str) – Name of the controller to start
- Returns
response – Service response from the controller manager
- Return type
str
-
set_jog(linear, angular)¶ Set the Jog speed
- Parameters
linear (list) – The linear twist components [x,y,z]
angular (list) – The angular twist components [x,y,z]
-
set_offsets(offsets)¶ Set the internal F/T and Pose offsets
- Parameters
offsets (dict) – Offset dict with “force”, “torque”, “position”, and “orientation” keys
-
set_pose(pose, time=5.0)¶ Set the pose of the robot
- Parameters
pose (dict) – The pose dictionary with position and orientation components
time (float) – Time to take (in seconds)
-
set_speed_slider(fraction)¶ Set the speed slider fraction
- Parameters
fraction (float) – Slider fraction to set (0.02 to 1.00)
- Returns
result – The result of the service call
- Return type
srv
-
shutdown()¶ Shutdown gracefully
-
stop_program()¶ Stop the program on the teach pendant. This ony works if you are in remote control mode
- Returns
result – The result of the service call
- Return type
srv
-
switch_controller(start_controllers, stop_controllers, strictness=1, start_asap=False, timeout=0)¶ Switch ROS controllers
- Parameters
start_controllers (list) – Names of the controllers to start
stop_controllers (list) – Names of the controllers to stop
strictness (int) – Strictness of controller switching
start_asap (bool) – Decide whether controllers should be started immediately
timeout (int) – Timeout (in seconds)
- Returns
response – Service response from the controller manager
- Return type
str
-
unload_controller(controller)¶ Unload a ROS controller
- Parameters
controller (str) – Name of the controller to unload
- Returns
response – Service response from the controller manager
- Return type
str
-
update_tool_pose(data)¶ Update the internal value of the tool pose. Saves a copy of the cartesian position (in m) and euler angle orientation (in rad). The pose is then balanced via offsets. The balanced wrench is published in the
/tf_balancedtopic.- Parameters
data (tf2_msgs/TFMessage) – Wrench message
-
update_wrench(data)¶ Update the internal value of the wrench. The wrench is converted from the tool frame to the world frame, then balanced via offsets. The balanced wrench is published in the
/wrench_balancedtopic.- Parameters
data (geometry_msgs/Wrench) – Wrench message
Data Logger¶
Log data to syncronized files. Given a filename and a map of topics (see armstron/config/data_to_save.yaml), log data from ROS topics to CSV files.
-
class
hardware_interface.DataLogger(filename, config, overwrite=False)¶ Log data to csv files.
- Parameters
filename (str) – Filename to save to. Note: files will be saved with suffixes corresponding to the name of the data being saved
config (dict) – Configuration, including the topic map
- Raises
ValueError – If the topic_map is invalid
-
pause()¶ Pause logging.
-
resume()¶ Resume logging.
-
shutdown()¶ Shutdown gracefully.
-
start()¶ Start logging data.
-
stop()¶ Stop logging data.