ros-industrial / universal_robot

ROS-Industrial Universal Robots support (https://wiki.ros.org/universal_robot)
1.08k stars 1.03k forks source link

Modeling UR5/10's dynamic behavior #87

Closed arennuit closed 7 years ago

arennuit commented 10 years ago

Hi all,

The behaviour of the simulated UR5/10 does not replicate the behaviour or the real robots. This is due to 3 problems at least:

  1. The parameters of the simulation (geometric and dynamic) do not replicate the real robot's params
    • e.g. the dynamic parameters of the ur5/10 which are currently used for the simulation (in files ur5.urdf.xacro and ur10.urdf.xacro) do not mimic the real robots' parameters. They were found making simple assumptions of the robot (i.e. the inertia are computed as the inertia of homogeneous cylinders...)
  2. The low-level control of the simulation does not replicate the low-level control of real robots
    • The simulation uses PID based on ros_control, but it is not sure what low-level control method is used by the real robots
  3. The simulation may not fully reproduce the behaviour of the real world's physics
    • This is especially true as the physics engines used by gazebo (ODE, bullet...) are RT engines not aimed at accuracy (they trade accuracy off for speed of computation)
    • This question relates to this post in ROS answers

This is a complex problem which outreached the boundaries of the UR world, and we cannot expect to solve it all here. Though we can certainly improve the situation and this is what this post is aimed at.

Kind regards,

Antoine.

arennuit commented 10 years ago

Problem 1 (parameters) can be improved by performing the identification of a real robot (mainly dynamic as geometric parameters are known from the urcontrol file).

For problem 2, does anyone have an idea of the low-level architecture used in real UR robots?

Problem 3 can be tackled by the choice of the physics engine. In PR #84, @ipa-fxm mentioned that gazebo-ODE could not reliably mimic the real world's behaviour because of its inability to simulate friction. I am not sure this is true (see here why) but it highlights that physics engine are precision limits. Maybe the choice of one engine or another could influence the overall simulation quality.

Anyone willing to comment on this?

gavanderhoorn commented 7 years ago

@arennuit: I'm interested in improving the behaviour of the simulated models, but without someone spending the time to either get those parameters from UR or doing the identification themselves (or finding someone who has already done it, fi in a published paper), I don't think the current situation is going to improve.

Have you made any progress yourself?

arennuit commented 7 years ago

Hello @gavanderhoorn, problem 3 is too much blocking to expect an easy fix to the issue. It would need identifying the physics engine's specific behavior. This issue is in standby on my side.

gavanderhoorn commented 7 years ago

System identification of the URs is still very much of interest, but I'm going to close this issue due to inactivity.

This would be a nice enhancement for a student to work on, so if anyone is interested, please re-open and get in touch.

gavanderhoorn commented 7 years ago

Thanks for starting the discussion @arennuit :+1: