hexagon logo

Hello, can someone help me with my problem in Adams View. I am simulating two finger robot gripper. I am simulating it on the cube. Now I want to parametrize that cube to be able to move it on x, y and z. i want also to be able to rotate cube.

Hello,
can someone help me with my problem in Adams View. I am simulating two finger robot gripper. I am simulating it on the cube. Now I want to parametrize that cube to be able to move it on x, y and z. i want also to be able to rotate cube.
  • The cube, I assume that you modeled it as a block in Adams. Then this is trivial.
    In one corner of the block there is a marker that defines the blocks location and orientation. (Right-click on the block, select Info and you will see which marker it is).
    Parameterize the location and orientation of this marker and you have parameterized the block.
    LOC_RELATIVE_TO({block_x, block_y, block_z},some_other_marker)
    ORI_RELATIVE_TO({block_rot1, block_rot2, block_rot3},some_other_marker)
    where block_x, block_y, block_z, block_rot1, block_rot2, block_rot3 are all design variables.
  • I thank you for your answer. What about if I want it to stay in one place before I grab it? There is gravity and at the beginning of the simulation it falls down. If I have it on the ground, I have problems with contact because it does not stay in the orientation that I want at the moment.
     
    I tried using the force at the centre of mass with the same magnitude, but with the opposite direction of gravity. The force has to act all the way to the handle. I tried with the step function, but it does not work.
     
    For example:
     
    STEP(time, 0, 0.588399, 6,0.588399)+ STEP (time, 6.1, 0, 15,0)
     
    Thank you for your help
  • If the cube and the contact are correctly defined this method should work. Alternativel you may use a joint that gets disable once the cube is grabbed with the fingers.
     
    If you read the documentation you will notice you are not using the STEP function in the right way, I would expect it to be:
    STEP(time, 0, 0, 0.01,0.588399)+STEP (time, 6.001, 0.588399, 6.002,0)
    Adams Basic Package > Adams Solver > Welcome to the FORTRAN Version of Adams Solver > Adams Solver (FORTRAN) Functions > STEP
    you may want to explore the arithmetic if statement:
    Adams Basic Package > Adams Solver > Welcome to the FORTRAN Version of Adams Solver > Adams Solver (FORTRAN) Functions > IF
     
    if(time-6:0.588399,0,0)
     
  • Why not use a fixed joint between the cube and ground? Then deactivate it at t=6.0? Or use a sensor that detects when the robot gripper touches the cube and then deactivate the joint?
  • Thank you for your answers. The step function is not working properly.
    image.png
    Also, how is it possible to make the joint time dependet.
     
     
     
  • Hi,
    Sorry, but I disagree, the Step function is working correctly. The time to change from 0 to 0.5884 and from 0.5884 back to 0 is so short (0.01s) in your plot that you see it 'squared'. if you add this plot in postpro and magnify in the area of interest you will see it is working correctly.
    As explained above, to make the joint dependant you can create a sensor
    Adams Basic Package > Adams View > Adams View > Testing Models > Simulation > Adding Sensors to Your Model
    Adams Basic Package > Adams View > Adams View > Examples of Using Adams View > Example of Adding a Sensor
     
    Otherwise click on 'Knowledge' at the top and search 'sensor' and look into further examples that may suit your needs
     
    Thanks,
  • An alternative to a sensor is to use general constraints. Then you can build in the time dependency in the functions.
    For example, a fixed joint can be replaced by six GCONs:
    GCON/111, I=2, FUNC=DX(2,3)
    GCON/112, I=2, FUNC=DY(2,3)
    GCON/113, I=2, FUNC=DZ(2,3)
    GCON/114, I=2, FUNC=AX(2,3)
    GCON/115, I=2, FUNC=AY(2,3)
    GCON/116, I=2, FUNC=AZ(2,3)
     
    If you want to make these time dependent, for example turn off at t=6, change the functions so that they are automatically zero after t=6:
    GCON/111, I=2, FUNC=DX(2,3)*IF(time-6:1,1,0)
    GCON/112, I=2, FUNC=DY(2,3)*IF(time-6:1,1,0)
    GCON/113, I=2, FUNC=DZ(2,3)*IF(time-6:1,1,0)
    GCON/114, I=2, FUNC=AX(2,3)*IF(time-6:1,1,0)
    GCON/115, I=2, FUNC=AY(2,3)*IF(time-6:1,1,0)
    GCON/116, I=2, FUNC=AZ(2,3)*IF(time-6:1,1,0)