Using cartesian_controllers and Universal_Robots_ROS_Driver as a basis. Make sure you have installed these correctly in your workspace.
The tf2_broadcaster.cpp
publishes the fix transform from base_link to base.
The old_tf_publisher.cpp
publishes the transforms of all links at the moment of starting the node.
The target_frame_publisher.cpp
calculates and publishes the target frame.
The debug_tool.cpp
calculates the error between current and target pose and publishes it.
-
In your
Universal_Robots_ROS_Driver/ur_robot_driver/config/
addur5_cartesian_controllers.yaml
-
In your
Universal_Robots_ROS_Driver/ur_robot_driver/launch/
addur5_cartesian_controllers_bringup.launch
,ur_common_cartesian.launch
andur_control_cartesian.launch
. -
Build the packages in your workspace
$ cd ros_workspace
$ catkin_make
-
Start Neobotix PC and its autostart launch file
-
In a new terminal - Launch the driver and provide IP and kinematics configuration on Neobotix PC
$ roslaunch ur_robots_driver ur5_cartesian_bringup.launch robot_ip:=192.168.1.20 kinematics_config:=($ rospack find ur_calibration)/etc/hska_ur5_calibration.yaml
-
Start
ROS_external_control
on UR5 touchpad --> driver terminal should confirm withRobot ready to receive control commands
-
In a new terminal - Launch nodes for calculating and publishing the target frame
$ roslaunch hska_neo hold_tcp.launch
- In a new terminal
$ roslaunch hska_neo debug.launch
This should open a window plotting the distance between current and target pose of the endeffector.