frankaemika/franka_ros

PID gains tweaking of Panda Research 3

Opened this issue · 0 comments

Hello,

I'm using panda research 3 on V 0.10.0, with franka_ros and moveit.
I get a lot of oscillations when the robot when trying to go quicker.
I'm setting speed through moveit move_group with set_max_acceleration_scaling_factor, and set_max_velocity_scaling_factor.
When I'm going at a relatively low speed, everything works fine, but when I set a high acceleration value (>0.5), the robot starts to oscillate really badly.

It looks like a stability issue, so I'm wondering how to setup and tune the PID gains of the robot.
Could you point me to the right files/example for this ?

Additional informations:

  • The communications test works fine and returns:
#######################################################
Control command success rate of 10000 samples: 
Max: 1.00
Avg: 1.00
Min: 0.98
#######################################################
  • I modified the franka_control_node:
joint_names:
  - panda_joint1
  - panda_joint2
  - panda_joint3
  - panda_joint4
  - panda_joint5
  - panda_joint6
  - panda_joint7
arm_id: panda
# Configure the threshold angle for printing joint limit warnings.
joint_limit_warning_threshold: 1 # [rad]
# Activate rate limiter? [true|false]
rate_limiting: true
# Cutoff frequency of the low-pass filter. Set to >= 1000 to deactivate.
cutoff_frequency: 100
# Internal controller for motion generators [joint_impedance|cartesian_impedance]
internal_controller: joint_impedance
# Used to decide whether to enforce realtime mode [enforce|ignore]
realtime_config: enforce
# Configure the initial defaults for the collision behavior reflexes.
collision_config:
  lower_torque_thresholds_acceleration: [25.0, 25.0, 23.0, 23.0, 21.0, 19.0, 17.0]  # [Nm]
  upper_torque_thresholds_acceleration: [25.0, 25.0, 23.0, 23.0, 21.0, 19.0, 17.0]   # [Nm]
  lower_torque_thresholds_nominal: [25.0, 25.0, 23.0, 23.0, 21.0, 19.0, 17.0]    # [Nm]
  upper_torque_thresholds_nominal: [25.0, 25.0, 23.0, 23.0, 21.0, 19.0, 17.0]   # [Nm]
  lower_force_thresholds_acceleration: [25.0, 25.0, 25.0, 30.0, 30.0, 30.0]   # [N, N, N, Nm, Nm, Nm]
  upper_force_thresholds_acceleration: [25.0, 25.0, 25.0, 30.0, 30.0, 30.0]     # [N, N, N, Nm, Nm, Nm]
  lower_force_thresholds_nominal: [25.0, 25.0, 25.0, 30.0, 30.0, 30.0]      # [N, N, N, Nm, Nm, Nm]
  upper_force_thresholds_nominal: [25.0, 25.0, 25.0, 30.0, 30.0, 30.0]    # [N, N, N, Nm, Nm, Nm]
  • I tried disabling the rate limiter, but I get this error:
[ERROR] [1695989117.628113207]: libfranka: Move command aborted: motion aborted by reflex! ["joint_motion_generator_velocity_discontinuity", "joint_motion_generator_acceleration_discontinuity"]
control_command_success_rate: 1