It contains the compliant control algorithms in robotic arm, and the chosen robot is universal robot which is popular collaborate robot in the world.
mkdir catkin_ws/src && cd catkin_ws/src
git clone https://github.com/MingshanHe/Compliant-Control-and-Application.git
sudo chmod +x install_dependencies.sh && ./install_dependencies.sh
catkin build (or cd .. && catkin_make)
If there is come up with some errors during compile process, you might need to install some ros packages for support this project, I recommend you to run following command or search the compile error in Google or Baidu and so on.
rosdep install -i --from-path src --rosdistro noetic --ignore-src -r -y
using the following command to check the self-defined controller. Like:cartesian_velocity_controller
rospack plugins --attrib=plugin controller_interface
Notice: In this repository, I have used ur5e robot and its urdf
file need to be changed in different situation, like need or not a force/torque sensor in the end effector. Please check the urdf
file seriously and run the algorithm, Thanks.
roslaunch ur_gazebo ur5e_bringup.launch transmission_hw_interface:=hardware_interface/PositionJointInterface specified_controller:=cartesian_velocity_controller
roslaunch admittance Admittance.launch
After the robot has moved to the desired pose, run the following commands to generate fake wrench signal
roslaunch admittance Wrench_Fake.launch
roslaunch ur_gazebo ur5e_bringup.launch transmission_hw_interface:=hardware_interface/EffortJointInterface specified_controller:=joint_torque_controller
roslaunch impedance Impedance.launch
roslaunch mir_gazebo mir_empty_world.launch
roslaunch admittance HybridAdmittance.launch
Notice: You could change the value.
rostopic pub /wrench_fake geometry_msgs/Wrench
"force:
x: 100.0
y: 0.0
z: 0.0
torque:
x: 0.0
y: 0.0
z: 0.0"
roslaunch ur_gazebo ur5e_bringup.launch transmission_hw_interface:=hardware_interface/PositionJointInterface specified_controller:=cartesian_velocity_controller environment:=polish
roslaunch hybrid_position_force_control hybrid_position_force_control.launch
And then it needs to use the topic publish command in the terminal. It is recommended to move to the pose [-0.1, 0.3, 0.3, 0.707, -0.707, 0.0, 0.0].
rostopic pub /desired_carteisan_pose_cmd geometry_msgs/Pose "position: x: -0.10 y: 0.30 z: 0.30 orientation: x: 0.707 y: -0.707 z: 0.0 w: 0.0"