Skip to main content
Version: 1.0.0

Single-actuator-torque-control

introduce

Welcome to use the joint actuator developed by Xintuo Company. Here we will introduce the method of identifying and eliminating the friction torque of the actuator and obtaining the conversion coefficient of current and output torque, so as to realize the joint actuator when connecting loads of different masses. It can effectively identify and offset the friction and load weight of the actuator and realize the easy rotation of the actuator. Please click here to download the corresponding package

Dependencies

ROS noetic or other Version(not tested yet)
Eigen

Build

install Eigen:

git clone https://gitlab.com/libeigen/eigen.git
sudo cp -r ./eigen/Eigen /usr/include/
sudo apt update
sudo apt install libeigen3-dev

install pyyaml:

sudo pip install pyyaml

install serial:

sudo apt install ros-noetic-serial

Instructions

  1. The single_actuator package contains 3 features, which can be viewed in install/share/single_actuator/config/single_actuator.yaml.The speed_riction_detection feature collects the current data of the actuator at different speeds. Using these data, the install/lib/single_actuator/speed_friction_fitting file is used to fit the relationship between the current (friction current for short) and speed of the actuator to overcome friction;
  2. The torque_friction_detection feature requires adding a heavy load to the actuator, and then collecting the changes in friction current of the actuator under different torques, and using the torque_friction_fitting file to fit the relationship between friction current and output torque.
  3. The torque_identification feature verifies the final result of the friction parameters and changes the friction parameters to a smaller extent according to the actual situation.

step

Feature 1

  1. Use the host computer to modify the default parameters of the actuator, change the default acceleration and deceleration to 6000 and the default current to 10000mA.
  2. Change the feature parameter of the single_actuator.yaml file to speed_riction_detection and set the other parameters of the file according to the comments, and then run the install/share/single_actuator/launch/torque_control.launch file:
warning

It should be noted that if the record_path path does not exist, the csv file for recording data cannot be generated;

warning

at this time, nothing can be assembled in the actuator output flange, otherwise the test result will be too large.

cd your_path/install
source ./setup.bash
roslaunch single_actuator torque_control.launch
  1. It takes about 16 minutes to complete this feature. After the actuator has collected data and stopped rotating, close the program, configure the speed_friction_fitting.yaml file and run:
chmod +x ./lib/single_actuator/speed_friction_fitting
./lib/single_actuator/speed_friction_fitting

This file will output the 7 friction parameters of the actuator related to speed, and fill these values ​​into the Frict_param parameter of the single_actuator.yaml file

Feature 2

  1. Add a heavy weight to the actuator, and modify the zero offset. as shown in the figure:
tip

The zero point should be located in the vertical downward direction of the connecting rod; the overall center of gravity of the counterweight should be located on the connecting rod.

Counterweight installation diagram
  1. Change the feature parameter to torque_friction_detection and run the torque_control.launch file again:
roslaunch single_actuator torque_control.launch
  1. This feature will run for about 1 minutes. After the actuator stops, close the program and calculate the theoretical torque value of the added load (including the connecting rod). Configure the torque_friction_fitting.yaml file.
tip

The target_values ​​do not need to be changed by default. The values ​​of tor_values ​​are 0, 1/9, 2/9, ..., 9/9 of the maximum torque.

  1. run:
chmod +x ./lib/single_actuator/torque_friction_fitting
./lib/single_actuator/torque_friction_fitting

single_actuator.yaml文件的frict_param_assistfrict_param_resistance参数中。
his file outputs the relationship parameters between the output friction force and the output torque. The parameters are divided into two parts: the rotation direction is the same as the output torque direction (assistance) and the opposite (resistance), with two parameters in each part. These values ​​are filled in the frict_param_assist and frict_param_resistance parameters of the single_actuator.yaml file respectively.

Feature 3

  1. Change the feature parameter to torque_identification and run the torque_control.launch file again:
roslaunch single_actuator torque_control.launch
  1. If you feel resistance in the non-force direction (vertical direction) of the actuator, increase the last value of the Frict_param parameter slightly, otherwise decrease it.
  2. Then, according to the actual situation, the second bit of the frict_param_assist or frict_param_resistance parameter can be appropriately adjusted. If there is no abnormality, no adjustment is required.
tip

For example, if there is an obvious acceleration phenomenon in the same direction as the output torque during the rotation of the actuator, the absolute value of the frict_param_assist parameter should be reduced. If there is an obvious deceleration phenomenon, the absolute value of the frict_param_assist parameter should be increased. The frict_param_resistance is in the opposite direction of the output torque, and the adjustment method is the same.

  1. After changing the parameters, close and restart the program (Pay attention to support the counterweight to prevent it from falling quickly)
  2. The counterweight will be turned to the horizontal direction for torque identification, and the cur_tor_fastor parameter value will be obtained by dividing the theoretical torque value of the added counterweight by the current value of the identification output.