fzi-forschungszentrum-informatik / cartesian_controllers

A set of Cartesian controllers for the ROS1 and ROS2-control framework.
BSD 3-Clause "New" or "Revised" License
383 stars 115 forks source link

Safe Setup for UR10e Hardware with Cartesian Controllers? #210

Open zirogravity opened 1 month ago

zirogravity commented 1 month ago

Problem description: Erratic robot motion before immediate faulting when switching from default STC to Cartesian Controller

Software versions: Commit: dc803377752bcbc175004a549485ef011ec4a952 OS: Linux 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 ROS Version: ROS2 Humble

Reproduce: Please see this post: UR Forum Post

Expected behavior: Robot not to fault when switching controllers and ready for testing Cartesian Controllers via RQT

Update: I am not exactly clear what I did differently so far but I managed to get "a reaction" from URSim but unclear what the messages mean if anything. I will report back as I learn more.

Screenshot from 2024-09-24 10-36-40

Screenshot from 2024-09-24 10-37-20

stefanscherzinger commented 5 days ago

Thanks @zirogravity

Any new insights?

edtriccorp commented 5 days ago

Hi @stefanscherzinger

Perhaps a single new insight but not yet fully understood on my end yet.

If I set the speed slider on the URSim/UR10e below 40% I can get the controllers to work painfully slow. This seems to be true no matter how small the error_scale is set to. I have the setup working with the teleoperation spacenav launch with cartesian force controller but NumPy versions break the Cartesian Pose launch. Was hoping to use the spacenav to log data with rosbag but I am still sorting through what topics are important to investigating the problem.

zirogravity commented 1 day ago

Hi @stefanscherzinger

Perhaps this video will help better describe the behavior I am seeing? https://youtu.be/P5t74CZsDwE

Also, if I am not mistaken moving the robot via Polyscope UI seems to causes the controller to lose track of the robot states. Reactivating external control works only if the robot is not moved via the Polyscope UI otherwise, the Cartesian controllers immediately fault the robot as seen in the video in between a Polyscope move and a replay of the external control program.

  1. The video shows spacenav manual control via the Cartesian Compliance Controller.
  2. The first part of the clip is Cartesian Compliance Controller launch the spacenav control motion. This only works if the speed slider is below 40%
  3. Next part of the video clip show speed slider increase above 40% then the fault
  4. Take the speed slider back below 40% and replay external control takes the robot back to spacenav functioning
  5. Had Polyscope been used to move the robot in between the fault getting Cartesian Controller to reengage leads to similar faulting indefinitely requiring a re-launch all over again.