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_balanced topic.

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_balanced topic.

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.