Project

General

Profile

Cooperation Manipulation Control » History » Revision 5

Revision 4 (Kévin Desormeaux, 2021-06-15 12:12) → Revision 5/11 (Kévin Desormeaux, 2021-06-15 12:18)

h1. Cooperation Manipulation Control 

 h2. Franka_ros 

 !fci-architecture.png! 


 To operate the pandas it is necessary to have real-time kernels on the machines running the control stacks. It is the case with the *kukarm* and *truyere* workstation. 
 You should have ROS (melodic version ideally) installed. You will need to also to install *franka_ros* and *libfranka* . 

 <pre> 
 sudo apt-get install ros-melodic-franka-ros 
 sudo apt-get install ros-melodic-libfranka 
 </pre> 

 You are strongly advised to read the franka documentation to begin with. See https://redmine.laas.fr/projects/dual_arm_exp/wiki/Franka_documentation_and_operating_the_Pandas and https://frankaemika.github.io/docs/franka_ros.html. 

 !ros-architecture.png! 

 Basically franka_ros is a collection of package integrating libfranka into ros_control. There is packages for hardware abstraction, to control the grippers, for robots description etc. 

 *Important* : libfranka must have the same versions running on the workstations (kukarm, truyere etc) and on the panda controllers (FCI). Otherwise there will be compatibility issues. 

 h2. CM2C 

 h3. Installation 

 Once franka_ros is installed you can create a catkin workspace in your home directory to install CM2C. See http://wiki.ros.org/catkin/Tutorials/create_a_workspace. 
 CM2C is available here on the mp2_ros repository: 

 https://redmine.laas.fr/projects/m2p2/repository 

 Then you only have to compile your catkin workspace and CM2C can be launched.  
 You might need to install different ROS packages missing on the system.  
 *Important* : your catkin workspace must be built in release mode! By default it might be in debug mode, and CM2C might not be able to run at the desired frequency for real time usage. 

 <pre> 
 catkin build -DCMAKE_BUILD_TYPE=Release 
 </pre> 

 Information on how to use CM2C can be found a bit further in the wiki: https://redmine.laas.fr/projects/dual_arm_exp/wiki/Control_API_functions_description  

 h3. The code 

 All the important code is located in a single file: admittance_joint_trajectory_controller_impl.h. This is where you will find the admittance control law implementation etc. 

 You might want to not use the admittance gains, and only run a simple joint_trajectory_controller. This can be done by commenting the admittance gains in those 3 lines and compiling after: 

     desired_state_.position[i] = desired_state_.position[i];// - q_dc_[i]; 
     desired_state_.velocity[i] = desired_state_.velocity[i];// - dq_dc_[i]; 
     desired_state_.acceleration[i] = desired_state_.acceleration[i];// - ddq_dc_[i];