Jason - there is no way to create a revolute joint without “defining the revolute axis”!
The third argument of the Initialize() function for a revolute joint provides a full coordinate system. If the rotation part is not specified, it is set to be the unit quaternion (indicating an identity rotation). For this particular signature of the Initialize() function, that coordinate system represents the joint frame expressed in the absolute coordinate system. The revolute joint is constructed with its rotation axis along the Z axis of that joint frame. In other words, if the joint frame has an identity rotation, the revolute joint axis will pe parallel to the global Z axis.
Davide - the problem with your model is simply that you have the revolute axis passing through the center of mass and as such the gravity does not produce any torque to move the body. In other words, your system is in an (unstable) equilibrium position. In the Irrlicht visualization window, press the “i” key which will bring up a panel where you can enable visualization of the body and joint frames and you should see what I mean. In the code you provided, try to set the joint frame slightly off the center of mass (for example, use ChVector<>(0.1, 3, 0)). That should give a non-zero arm to the gravitational force and produce a torque that will move your body.
--Radu
--
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
projectchron...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/4fa53d76-510a-4bb6-8053-b86d8e69baa3n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/PH0PR06MB82371A69AD31CC2B7AD4A4CFA7B7A%40PH0PR06MB8237.namprd06.prod.outlook.com.