xArm-Developer / xarm_ros

ROS packages for robotic products from UFACTORY
https://www.ufactory.cc/
BSD 3-Clause "New" or "Revised" License
213 stars 158 forks source link

Best Controller for moveit servoing for fast response and high speed? #174

Open Akumar201 opened 1 year ago

Akumar201 commented 1 year ago

Hi, I would like to know which one would be the best controller to get max speed and smooth trajectory XArm servoing example to follow aruco marker?

# xarm:
joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 250

xarm6_traj_controller:
  type: position_controllers/JointTrajectoryController
  joints:
      - joint1
      - joint2
      - joint3
      - joint4
      - joint5
      - joint6
  constraints:
      goal_time: 0.5
      stopped_velocity_tolerance: 0.05
      joint1: {trajectory: 1, goal: 0.01}
      joint2: {trajectory: 1, goal: 0.01}
      joint3: {trajectory: 1, goal: 0.01}
      joint4: {trajectory: 1, goal: 0.01}
      joint5: {trajectory: 1, goal: 0.01}
      joint6: {trajectory: 1, goal: 0.01}
  stop_trajectory_duration: 0.2
  state_publish_rate:  25
  action_monitor_rate: 10

xarm6_traj_controller_velocity:
  type: velocity_controllers/JointTrajectoryController
  joints:
      - joint1
      - joint2
      - joint3
      - joint4
      - joint5
      - joint6
  gains:
    joint1: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
    joint2: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
    joint3: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
    joint4: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
    joint5: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
    joint6: {p: 10, i: 0.0, d: 0.0, i_clamp: 1}
  velocity_ff:
    joint1: 0.25
    joint2: 0.25
    joint3: 0.25
    joint4: 0.25
    joint5: 0.25
    joint6: 0.25
  constraints:
    goal_time: 0.5
    stopped_velocity_tolerance: 0.01
    joint1: {trajectory: 1, goal: 0.01}
    joint2: {trajectory: 1, goal: 0.01}
    joint3: {trajectory: 1, goal: 0.01}
    joint4: {trajectory: 1, goal: 0.01}
    joint5: {trajectory: 1, goal: 0.01}
    joint6: {trajectory: 1, goal: 0.01}
  stop_trajectory_duration: 0.2
  state_publish_rate:  25
  action_monitor_rate: 10
vimior commented 1 year ago

@Akumar201 Sorry, I haven't compared different controllers, so I don't know which controller is more suitable for your scene.

Akumar201 commented 1 year ago

Hi, I was reading github issue https://github.com/xArm-Developer/xarm_ros2/issues/2 where it's suggested to not use velocity control, is it working fine now with servoing?

vimior commented 1 year ago

@Akumar201 You can try to use, if this mode can meet your needs.