Authors: Nicola Piga and Giulio Romualdi
This package contains three controllers:
- cartesian_position_controller: an operational space controller required to move the end effector in a desired position using inverse kinematics;
- cartesian_inverse_dynamics_controller: an operational space controller performing dynamics inversion (also wrenches at the end effector are compensated);
- hybrid_impedance_controller: an operational space controller implementing the hybrid impedance controller proposed by Spong (it uses the cartesian_inverse_dynamics_controller to perform dynamics inversion);
- ft_sensor_controller: a JointStateInterface controller performing transformations on the force/torque measurements provided by the sensor.
In order to run some external packages are required:
- controller_switcher: GUI required to switch controllers and set commands;
- kdljacdot: Jacobian derivative solver from KDL 1.4 (not available in ros up to now);
- kuka-lwr: description of the Kuka LWR manipulator;
- vito-robot: (vito_description only) required for vito robot's torso description and materials;
- ft-calib: FTCalib class from https://github.com/kth-ros-pkg/force_torque_tools exported as ROS library;
- gravity-compensation: gravity-compensation node;
- qb-interface-node: qb_interface_node with support for IMU and compatible with the gravity-compensation node.
In order to compile the GUI you also need ros-*-qt-build.
WARNING: in order to run the simulation you MUST set every <damping> and <friction> tag in kuka_lwr.urdf.xacro to 0.0 and disable the <collision> section of the 7-th link.
- roslaunch lwr_force_position_controllers single_lwr.launch
- roslaunch lwr_force_position_controllers single_lwr.launch use_lwr_sim:=false lwr_powered:=true