Dear users,
The explanation for the bug and the previous commit ([fb7d16c], on 27th
April) are wrong. The bug of ChLinkLockLock() is not related to the
projection matrix P.
Today I pushed another commit to fix the bug:
Commit: ca81537edc33c128af3dbfb820b9039aac42e00f [ca81537]
The reaction torque is simply computed as Cqw2.T*lambda which is expressed
in the local frame of Body2, then it is rotated back to the master frame
(marker2, or frame2, F2) of the joint by left-multiplying R_F2_B2.T.
Best regards,
Chao PENG.
在2023年4月27日星期四 UTC+2 11:00:26<chao peng> 写道:
> Hello Simon,
>
> Thank you for your test and feedback. I didn't realize there is a same bug
> as in ChLinkMateGeneric().
> When we use quaternion to parameterize the finite rotation and derive the
> constraint equation (C) and its Jacobian matrix (Cq), we will have a
> projection matrix P to convert the Lagrange multiplier (only for rotational
> DOFs) to the reaction torque. This projection matrix P =
> 0.5(s*I33+\tilde(v)) where \pho_{F1_F2}=(s,v) is the quaternion of the
> slave frame F1 to master frame F2. When F1, F2 are coincident, P=0.5*I33,
> thus we can find a coefficient 0.5 in the code to convert Lagrange
> multipler to reaction torque. But in case there is a relative rotation
> between F1 and F2, the projection matrix P changes, and the Lagrange
> multiplier is expressed in an obscure ghost frame FX (let's denote it as FX
> here). The rotation of FX is a half of the relative rotation in
> \pho_{F1_F2}. Besides this point, it also includes a component which scales
> the Lagrange multiplier by the scalar part 's'. This is why you obtain the
> above result in you test.
>
> We fixed this bug in below commit:
> Commit: fb7d16caa653d837c9220cf96db5aebeb2df8231 [fb7d16c], on 27th April.
>
> Try to pull it and test again.
>
> I would like to remind here, the tangent stiffness matrix (Kc) of
> ChLinkLockLock() is not implemented, although the analytical expression
> should be same as ChLinkMateGeneric(), or at least quite similar. Thus you
> cannot perform the static and eigenvalue analysis for a pendulum using
> ChLinkLockLock().
>
> Best regards,
> Chao PENG.
>
> 在2023年4月26日星期三 UTC+2 15:32:03<Simon> 写道:
>
>> Hi,
>>
>> thank you for the updated implementation. I re-ran my test case with
>> chrono at commit 841781d6e0e4b09c68cd431e1f7381b402f17ad1.
>>
>> The reaction torque vector does now rotate as expected with
>> ChLinkMotorRotationSpeed. As shown in my example below there is now a
>> constant angle difference of 90° between force and torque in the x-y plane.
>>
>> However, with the ChLinkLockLock implementation I noticed that the angle
>> of the torque vector seems to change only at half the speed of the body
>> rotation. This leads to a constantly changing difference between force and
>> torque direction in the x-y plane.
>> So perhaps there is also something wrong with the ChLinkLockLock's
>> reaction torque direction (see example with output below).
>>
>> Sorry for being naggy, your support is highly appreciated!
>>
>> Best regards,
>> Simon
>>
>>
>> *Code:*
>> ChSystemNSC system{};
>>
>> auto fixed_body{chrono_types::make_shared<ChBody>()};
>> fixed_body->SetBodyFixed(true);
>> auto rotating_body{chrono_types::make_shared<ChBody>()};
>> rotating_body->SetPos({1.0, 0.0, 0.0});
>>
>> // Option 1: ChLinkMotorRotationSpeed
>>
>> auto rotation_link{chrono_types::make_shared<ChLinkMotorRotationSpeed>()};
>> rotation_link->Initialize(rotating_body, fixed_body, ChFrame{});
>>
>> rotation_link->SetSpeedFunction(chrono_types::make_shared<ChFunction_Const>(1.0));
>>
>>
>> // Option 2: ChLinkLockLock
>> // auto rotation_link{chrono_types::make_shared<ChLinkLockLock>()};
>> // rotation_link->Initialize(rotating_body, fixed_body, {});
>> // rotation_link->Set_angleset(chrono::AngleSet::ANGLE_AXIS);
>> // rotation_link->SetMotion_axis({0.0, 0.0, 1.0});
>> //
>>
>> rotation_link->SetMotion_ang(chrono_types::make_shared<ChFunction_Ramp>(0.0,
>> 1.0));
>>
>>
>> system.Add(fixed_body);
>> system.Add(rotating_body);
>> system.Add(rotation_link);
>>
>> system.Set_G_acc({0.0, 0.0, 10.0});
>>
>> for (double time{}; time < 1.0; time += 0.01)
>> {
>> system.DoFrameDynamics(time);
>>
>> const auto body_position{rotating_body->GetPos()};
>> const double body_angle{std::atan2(body_position[1],
>> body_position[0])};
>>
>> const auto reaction_force{rotation_link->Get_react_force()};
>> const double force_angle{std::atan2(reaction_force[1],
>> reaction_force[0])};
>>
>> const auto reaction_torque{rotation_link->Get_react_torque()};
>> const double torque_angle{std::atan2(reaction_torque[1],
>> reaction_torque[0])};
>>
>>
>> std::cout << std::fixed << std::setprecision(3) << "Time: " <<
>> system.GetChTime()
>> << " *** Body Angle: " << body_angle << " *** Force Angle:
>> " << force_angle
>> << " *** Torque Angle: " << torque_angle
>> << " *** Angle Difference: " << force_angle - torque_angle
>> << "\n";
>> }
>>
>> *Output using ChLinkMotorRotationSpeed:*
>> ...
>> Time: 0.950 *** Body Angle: 0.950 *** Force Angle: 0.940 *** Torque
>> Angle: -0.631 *** Angle Difference: 1.571
>> Time: 0.960 *** Body Angle: 0.960 *** Force Angle: 0.950 *** Torque
>> Angle: -0.621 *** Angle Difference: 1.571
>> Time: 0.970 *** Body Angle: 0.970 *** Force Angle: 0.960 *** Torque
>> Angle: -0.611 *** Angle Difference: 1.571
>> Time: 0.980 *** Body Angle: 0.980 *** Force Angle: 0.970 *** Torque
>> Angle: -0.601 *** Angle Difference: 1.571
>> Time: 0.990 *** Body Angle: 0.990 *** Force Angle: 0.980 *** Torque
>> Angle: -0.591 *** Angle Difference: 1.571
>>
>>
>> *Output using ChLinkLockLock:*
>> ...
>> Time: 0.950 *** Body Angle: 0.950 *** Force Angle: 0.940 *** Torque
>> Angle: -1.096 *** Angle Difference: 2.036
>> Time: 0.960 *** Body Angle: 0.960 *** Force Angle: 0.950 *** Torque
>> Angle: -1.091 *** Angle Difference: 2.041
>> Time: 0.970 *** Body Angle: 0.970 *** Force Angle: 0.960 *** Torque
>> Angle: -1.086 *** Angle Difference: 2.046
>> Time: 0.980 *** Body Angle: 0.980 *** Force Angle: 0.970 *** Torque
>> Angle: -1.081 *** Angle Difference: 2.051
>> Time: 0.990 *** Body Angle: 0.990 *** Force Angle: 0.980 *** Torque
>> Angle: -1.076 *** Angle Difference: 2.056
>> On Monday, April 17, 2023 at 4:48:39 PM UTC+2 [email protected] wrote:
>>
>>> Dear everyone,
>>>
>>> We corrected the bugs reported here.
>>>
>>> Please refer to the commit [d7193ef] on 17th April.
>>>
>>> Welcome to feedback your test result.
>>>
>>> 在2023年3月13日星期一 UTC+1 09:14:49<Simon> 写道:
>>>
>>>> Hi Luning,
>>>>
>>>> thanks for your reply. I agree on the cause of the force and torque
>>>> components, but to my understanding the constant torque vector [0.000,
>>>> -10.000, -0.000] would be correct only in the rotating frame, not in
>>>> the link frame (which is fixed here).
>>>>
>>>> I modified my example, now using ChLinkLockLock to create the same
>>>> rotating body setup (see below). The torque vector seems to rotate
>>>> correctly when using ChLinkLockLock, in contrast to the
>>>> ChLinkMotorRotationSpeed case.
>>>>
>>>> Thank you,
>>>> Simon
>>>>
>>>> *Code:*
>>>> ChSystemNSC system{};
>>>>
>>>> auto fixed_body{chrono_types::make_shared<ChBody>()};
>>>> fixed_body->SetBodyFixed(true);
>>>> auto rotating_body{chrono_types::make_shared<ChBody>()};
>>>> rotating_body->SetPos({1.0, 0.0, 0.0});
>>>>
>>>> // Option 1: ChLinkMotorRotationSpeed
>>>> // auto
>>>> rotation_link{chrono_types::make_shared<ChLinkMotorRotationSpeed>()};
>>>> // rotation_link->Initialize(rotating_body, fixed_body,
>>>> ChFrame{});
>>>> //
>>>>
>>>> rotation_link->SetSpeedFunction(chrono_types::make_shared<ChFunction_Const>(1.0));
>>>>
>>>> // Option 2: ChLinkLockLock
>>>> auto rotation_link{chrono_types::make_shared<ChLinkLockLock>()};
>>>> rotation_link->Initialize(rotating_body, fixed_body, {});
>>>> rotation_link->Set_angleset(chrono::AngleSet::ANGLE_AXIS);
>>>> rotation_link->SetMotion_axis({0.0, 0.0, 1.0});
>>>> rotation_link->SetMotion_ang(chrono_types::make_shared<ChFunction_Ramp>(0.0,
>>>>
>>>> 1.0));
>>>>
>>>>
>>>> system.Add(fixed_body);
>>>> system.Add(rotating_body);
>>>> system.Add(rotation_link);
>>>>
>>>> system.Set_G_acc({0.0, 0.0, 10.0});
>>>>
>>>> for (double time{}; time < 1.0; time += 0.01)
>>>> {
>>>> system.DoFrameDynamics(time);
>>>>
>>>> std::cout << std::fixed << std::setprecision(3) << "Time: " <<
>>>> system.GetChTime()
>>>> << " *** Force: " << rotation_link->Get_react_force()
>>>> << " *** Torque: " << rotation_link->Get_react_torque()
>>>> << " *** Link Absolute Coords: " <<
>>>> rotation_link->GetLinkAbsoluteCoords() << "\n";
>>>> }
>>>>
>>>> *Output using ChLinkMotorRotationSpeed:*
>>>> ...
>>>> Time: 0.970 *** Force: 0.574 0.819 10.000 *** Torque: 0.000 -10.000
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>> Time: 0.980 *** Force: 0.565 0.825 10.000 *** Torque: 0.000 -10.000
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>> Time: 0.990 *** Force: 0.557 0.831 10.000 *** Torque: 0.000 -10.000
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>>
>>>> *Output using ChLinkLockLock:*
>>>> ...
>>>> Time: 0.970 *** Force: 0.574 0.819 10.000 *** Torque: 4.662 -8.847
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>> Time: 0.980 *** Force: 0.565 0.825 10.000 *** Torque: 4.707 -8.824
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>> Time: 0.990 *** Force: 0.557 0.831 10.000 *** Torque: 4.751 -8.800
>>>> -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000 0.000 0.000
>>>> 0.000
>>>>
>>>> On Friday, March 10, 2023 at 6:27:12 PM UTC+1 [email protected] wrote:
>>>>
>>>>> The object is traveling in a circular motion at a constant angular
>>>>> velocity, 1, with respect to the global z coordinate, gravity pointing
>>>>> downward z. Therefore, link force in xy plane is a centrifugal force, F =
>>>>> mw^2R, pointing towards origin, z component balance out gravitational
>>>>> force. With zero angular acceleration, z-component of link torque is
>>>>> zero,
>>>>> y-component balance out the torque from gravity, since rotation around y
>>>>> and z axis are constrained.
>>>>>
>>>>> Thank you,
>>>>> Luning
>>>>>
>>>>> On Friday, March 10, 2023 at 12:10:53 AM UTC-6 Simon wrote:
>>>>>
>>>>>> Hi Luning,
>>>>>>
>>>>>> thanks for the clarification about the link coordinate system.
>>>>>> In my example I added the link coordinate system output to verify
>>>>>> that it is indeed fixed to the global reference frame (see below).
>>>>>>
>>>>>> Unfortunately my question remains: Why does the link force vector
>>>>>> rotate and the torque vector does not ?
>>>>>>
>>>>>> Thank you,
>>>>>> Simon
>>>>>>
>>>>>>
>>>>>> *Code:*
>>>>>> ChSystemNSC system{};
>>>>>>
>>>>>> auto fixed_body{chrono_types::make_shared<ChBody>()};
>>>>>> fixed_body->SetBodyFixed(true);
>>>>>> auto rotating_body{chrono_types::make_shared<ChBody>()};
>>>>>> rotating_body->SetPos({1.0, 0.0, 0.0});
>>>>>>
>>>>>> auto
>>>>>> rotation_link{chrono_types::make_shared<ChLinkMotorRotationSpeed>()};
>>>>>> rotation_link->Initialize(rotating_body, fixed_body, ChFrame{});
>>>>>>
>>>>>> rotation_link->SetSpeedFunction(chrono_types::make_shared<ChFunction_Const>(1.0));
>>>>>>
>>>>>> system.Add(fixed_body);
>>>>>> system.Add(rotating_body);
>>>>>> system.Add(rotation_link);
>>>>>>
>>>>>> system.Set_G_acc({0.0, 0.0, 10.0});
>>>>>>
>>>>>> for (double time{}; time < 1.0; time += 0.01)
>>>>>> {
>>>>>> system.DoFrameDynamics(time);
>>>>>>
>>>>>> std::cout << std::fixed << std::setprecision(3) << "Time: " <<
>>>>>> system.GetChTime()
>>>>>> << " *** Force: " << rotation_link->Get_react_force()
>>>>>> << " *** Torque: " << rotation_link->Get_react_torque()
>>>>>> << " *** Link Absolute Coords: " <<
>>>>>> rotation_link->GetLinkAbsoluteCoords() << "\n";
>>>>>> }
>>>>>>
>>>>>>
>>>>>> *Output:*
>>>>>> ...
>>>>>> Time: 0.830 *** Force: 0.682 0.731 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.840 *** Force: 0.675 0.738 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.850 *** Force: 0.667 0.745 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.860 *** Force: 0.660 0.751 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.870 *** Force: 0.652 0.758 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.880 *** Force: 0.645 0.764 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.890 *** Force: 0.637 0.771 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.900 *** Force: 0.629 0.777 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.910 *** Force: 0.622 0.783 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.920 *** Force: 0.614 0.790 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.930 *** Force: 0.606 0.796 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.940 *** Force: 0.598 0.802 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.950 *** Force: 0.590 0.808 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.960 *** Force: 0.582 0.813 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.970 *** Force: 0.574 0.819 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.980 *** Force: 0.565 0.825 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>> Time: 0.990 *** Force: 0.557 0.831 10.000 *** Torque: 0.000
>>>>>> -10.000 -0.000 *** Link Absolute Coords: 0.000 0.000 0.000 1.000
>>>>>> 0.000 0.000 0.000
>>>>>>
>>>>>>
>>>>>> On Thursday, March 9, 2023 at 4:59:13 PM UTC+1 [email protected]
>>>>>> wrote:
>>>>>>
>>>>>>> Hello Simon,
>>>>>>>
>>>>>>> "As I understand, the link coordinate system is the 'master' body
>>>>>>> system (Body2)."
>>>>>>> This is not correct. Your link coordinate system is defined here,
>>>>>>>
>>>>>>> rotation_link->Initialize(rotating_body, fixed_body, ChFrame{});
>>>>>>>
>>>>>>> ChFrame{} initialize a reference frame coincide with the global
>>>>>>> reference frame. Because your Body2 (fixed_body) has the same
>>>>>>> orientation
>>>>>>> as the GRF, and it is fixed, it just so happens that your link
>>>>>>> coordinate
>>>>>>> system is the same as the 'master' body system.
>>>>>>>
>>>>>>> You can check the orientation of the link coordinate system using
>>>>>>> this:
>>>>>>> auto quat = rotation_link->GetLinkAbsoluteCoords().rot
>>>>>>>
>>>>>>> Thank you,
>>>>>>> Luning
>>>>>>>
>>>>>>> On Tuesday, March 7, 2023 at 9:45:38 AM UTC-6 Simon wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> as per the documentation
>>>>>>> <https://api.projectchrono.org/classchrono_1_1_ch_link_motor_rotation_speed.html>,
>>>>>>>
>>>>>>> ChLinkMotorRotationSpeed's member functions Get_react_force() and
>>>>>>> Get_react_torque() return the respective values in link coordinates.
>>>>>>> As I understand, the link coordinate system is the 'master' body
>>>>>>> system (Body2).
>>>>>>>
>>>>>>> In the example below a body rotates around the absolute z axis using
>>>>>>> ChLinkMotorRotationSpeed (the 'master' body is fixed here). As
>>>>>>> expected,
>>>>>>> the link reaction force consists of a the constant body weight in z
>>>>>>> direction and the rotating centrifugal load in the x-y plane. However,
>>>>>>> the
>>>>>>> reaction torque (due to gravity) is constant despite the link's
>>>>>>> rotation.
>>>>>>> Shouldn't the torque vector also rotate or do I misunderstand something?
>>>>>>>
>>>>>>> Thanks in advance!
>>>>>>> Simon
>>>>>>>
>>>>>>>
>>>>>>> *Code: *
>>>>>>> ChSystemNSC system{};
>>>>>>>
>>>>>>> auto fixed_body{chrono_types::make_shared<ChBody>()};
>>>>>>> fixed_body->SetBodyFixed(true);
>>>>>>> auto rotating_body{chrono_types::make_shared<ChBody>()};
>>>>>>> rotating_body->SetPos({1.0, 0.0, 0.0});
>>>>>>>
>>>>>>> auto
>>>>>>> rotation_link{chrono_types::make_shared<ChLinkMotorRotationSpeed>()};
>>>>>>> rotation_link->Initialize(rotating_body, fixed_body, ChFrame{});
>>>>>>>
>>>>>>> rotation_link->SetSpeedFunction(chrono_types::make_shared<ChFunction_Const>(1.0));
>>>>>>>
>>>>>>> system.Add(fixed_body);
>>>>>>> system.Add(rotating_body);
>>>>>>> system.Add(rotation_link);
>>>>>>>
>>>>>>> system.Set_G_acc({0.0, 0.0, 10.0});
>>>>>>>
>>>>>>> for (double time{}; time < 1.0; time += 0.01)
>>>>>>> {
>>>>>>> system.DoFrameDynamics(time);
>>>>>>>
>>>>>>> std::cout << std::fixed << std::setprecision(3) << "Time: " <<
>>>>>>> system.GetChTime()
>>>>>>> << " *** Force: " << rotation_link->Get_react_force()
>>>>>>> << " *** Moment: " <<
>>>>>>> rotation_link->Get_react_torque() << "\n";
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> *Output: ...*
>>>>>>> Time: 0.810 *** Force: 0.697 0.717 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.820 *** Force: 0.690 0.724 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.830 *** Force: 0.682 0.731 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.840 *** Force: 0.675 0.738 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.850 *** Force: 0.667 0.745 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.860 *** Force: 0.660 0.751 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.870 *** Force: 0.652 0.758 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.880 *** Force: 0.645 0.764 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.890 *** Force: 0.637 0.771 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.900 *** Force: 0.629 0.777 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.910 *** Force: 0.622 0.783 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.920 *** Force: 0.614 0.790 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.930 *** Force: 0.606 0.796 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.940 *** Force: 0.598 0.802 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.950 *** Force: 0.590 0.808 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.960 *** Force: 0.582 0.813 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.970 *** Force: 0.574 0.819 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.980 *** Force: 0.565 0.825 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>> Time: 0.990 *** Force: 0.557 0.831 10.000 *** Moment: 0.000
>>>>>>> -10.000 -0.000
>>>>>>>
>>>>>>>
--
You received this message because you are subscribed to the Google Groups
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/dd7bb053-3f8a-467d-ac4d-b73391b30cden%40googlegroups.com.