Consistently simulating a full scissor parallel system driven by a single joint

Typically: "How do I... ", "How can I... " questions
Post Reply
DavBuss
Posts: 11
Joined: 07 Dec 2018, 13:57

Consistently simulating a full scissor parallel system driven by a single joint

Post by DavBuss »

Hi everyone,

I am trying to simulate a single-jack-actuated scissor elevator system, which is a parallel system. The real system, just as the one I try to simulate, only has one actuated (prismatic) joint (the jack) and all others are passive.
To build the structure, I joined dynamic pure shapes (I used spheres) with standard joints, and dressed up the pure shapes with a non dynamic visual layer (non-pure shapes taken from my CAD).
To perform the loop closures of my parallel system, I used 5 pairs of linked dummies with a « dynamic, overlap constraint » link type, which are either attached to pure shapes or to joints.

The scene can be downloaded at this link :
https://drive.google.com/open?id=1F51_U ... CD2WSsE_PE

My first question is related to my choice of using this type of linked dummies. My goal is to control the motion of the upper table of the elevator by controlling a single actuator's velocity (the jack).
Do you think my approach is appropriate?


Regardless, seeing that my simulations were very unstable (except when I used vortex dynamic engine), I tried to follow V-REP dynamic simulation design considerations : http://www.coppeliarobotics.com/helpFil ... ations.htm, which were really helpful.
These led me to use spheres instead of long thin cuboids for my scissors parts, and to set rather large masses and moments of inertia for them. This solved the problems of stability to a certain extent (it is now stable under Bullet 2.78).

My problem is now that the structure wobbles slightly before stabilising to a rest configuration, for which the upper table is a few centimeters bellow where it should be. I would like to reduce this wobble and inaccuracy as much as possible.


Would you have any hint to improve this matter ?
(I tried to play with masses and moments of inertia, but my approach to changing them is quite chaotic and doesn't improve matters.. If you had any empirical guidelines, they would really be appreciated :) ! )

Kind regards,

David

Note that I am using V-REP v3.3.2

DavBuss
Posts: 11
Joined: 07 Dec 2018, 13:57

Re: Consistently simulating a full scissor parallel system driven by a single joint

Post by DavBuss »

I actually realised that the problem was coming from the only actuated joint of the scene : the jack.

I mean to control the velocity of this actuator. So I set the properties of the attached joint to :
-motor enabled (ON)
-target velocity = something small (e.g. 0.01m/s)
-maximum force = 1e+10 N (I put something overly large here, to check that my problem wasn't coming from a too weak actuator)
-lock motor when target velocity is zero (OFF)
-all else is unchecked (OFF)

What I notice is that despite an overly large available force in the actuator, the velocity of the jack is not respected. When setting a "too low" target velocity, the jack even goes the wrong way (the way gravity is pulling toward)! Moreover, the velocity of the jack (and therefore of the entire parallel structure), is highly dependent on the dynamic engine I use to simulate the problem. I believe the wobbling I was witnessing was coming from the velocity control of this joint which was not well performed.

Removing the influence of gravity has improved matters, but I'd like to know : Is there a was to improve the velocity control of a joint in vrep?

coppelia
Site Admin
Posts: 10339
Joined: 14 Dec 2012, 00:25

Re: Consistently simulating a full scissor parallel system driven by a single joint

Post by coppelia »

Hello,

the result is indeed directly linked to the used physics engine, and for each engine you could try to apply a different strategy/parameters for a better stability. Closed chains and parallel mechanisms are not always easy to be dynamically simulated. For that reason it is often better to take a different approach that the reality: in your example, you could simply have a fixed vertical prismatic joint that lifts the upper platform in relation to the lower platform. Then, for visuals, you could kinematically simulation the scissor mechanism. YOu will however have to compute the prismatic joint position that corresponds to the real prismatic joint (i.e. the piston).

Cheers

DavBuss
Posts: 11
Joined: 07 Dec 2018, 13:57

Re: Consistently simulating a full scissor parallel system driven by a single joint

Post by DavBuss »

Hello,

Thanks for your reply!
I am actually trying to design a mock scene where the real robot can be seamlessly interchanged by this simulation (using ROS), and therefore need to produce inputs (like the piston velocity command one) that are as close as possible from the real ones. I am therefore bound to control the piston directly.

Is there an "easy" way to modify the behaviour of the velocity controller (control parameters, etc...), i.e. when I use simSetTargetVelocity ?

coppelia
Site Admin
Posts: 10339
Joined: 14 Dec 2012, 00:25

Re: Consistently simulating a full scissor parallel system driven by a single joint

Post by coppelia »

You would probably have to write a joint control callback routine. Then you would be in control of the force/torque and max. velocity at every instant.

Cheers

Post Reply