A repository for controlling the KUKA lbr or med with cartesian impedance control.
ROS2 Distro | Controller | FRI library | LBR Stack |
---|---|---|---|
Humble | |||
Jazzy |
Follows the instructions reported in the lbr stack documentation that you can find here.
Set the stiffness of the JointImpedanceControlMode
in the LBRServer.java
to zero for each joint, i.e.:
control_mode_ = new JointImpedanceControlMode(0, 0, 0, 0, 0, 0, 0);
Then synchronize the application to update the changes.
Clone this repo inside your ros2 workspace as the src
folder
git clone --recursive [email protected]:idra-lab/kuka_impedance.git src
Install ros2 dependencies
rosdep install --from-paths src -i -r -y
Build the workspace
colcon build --symlink-install
source install/setup.bash
ros2 launch lbr_bringup hardware.launch.py ctrl:=gravity_compensation
source install/setup.bash
ros2 launch lbr_bringup hardware.launch.py ctrl:=cartesian_impedance_controller model:=iiwa14 # or iiwa7, med7, med14
This controller takes the initial configuration as the reference position for the nullspace control.
Can be activated by setting
...
nullspace_stiffness: 10.0
...
in lbr_fri_ros2_stack/lbr_description/ros2_control/lbr_controllers.yaml
under the cartesian_impedance_controller
configuration.
Then run the controller:
source install/setup.bash
ros2 launch lbr_bringup hardware.launch.py ctrl:=cartesian_impedance_controller model:=iiwa14 # or iiwa7, med7, med14
You need first to set
...
kuka_hw: false
...
compensate_gravity: true
compensate_coriolis: true
in lbr_fri_ros2_stack/lbr_description/ros2_control/lbr_controllers.yaml
under the cartesian_impedance_controller
configuration.
Then run the gazebo simulation:
source install/setup.bash
ros2 launch lbr_bringup gazebo.launch.py ctrl:=cartesian_impedance_controller model:=iiwa14
This controller takes a trajectory as input a PoseStamped
message and tracks it.
You need to publish a PoseStamped
message on the /lbr/target_frame
topic.
Some examples trajectories are already implemented here where tracking performances are also visualized.
git clone [email protected]:Hydran00/controller_evaluation.git
cd controller_evaluation/
Make sure that the robot type is set to "kuka"
in the initialize.py
file.
Adjust the trajectory parameters in the traj_sin.py
or traj_lin.py
file.
Then run the trajectory publisher:
source /opt/ros/humble/setup.bash
python3 traj_sin.py # traj_lin.py