This joint type can be used in the biomechanical editor to create a musculo-skeletal model. A Hinge leaves a pair of bodies free to rotate about a single axis (the hinge axis) but otherwise completely fixed with respect to each other. The axis has fixed positions and orientations in each of the rigid body and the hinge constraint forces those axes to coincide at all times. In doing so, it removes five degrees of freedom, and is therefore more computationally costly than, for example, a ball and socket joint.
A Hinge joint could be used, for example, to attach a gate (or door) to a gatepost, finger joints, drawbridge or seesaw to its fulcrum, or to attach rotating parts such as a wheel to a chassis, a propeller shaft to a ship or a turntable to a deck.
The geometry of this biomechanical joint is such that during the simulation, a line l0 fixed in body b0 will be coincident to a line l1 fixed in body b1, and the origin of l1 is fixed relative to the origin of l0. This allows relative rotation of both bodies about the common axis defined by l0 or l1. For convenience, the origin of l0 and l1 is chosen to coincide and this point is called the joint position. This means that in world coordinates, the direction vector of line l0 and line l1 will be almost identical and so will be the world coordinates of the origin of line l0 and line l1.
The hinge joint also has a built in motor that can be used to rotate the connected parts around the joint. The motor can operate in three modes. The first, default mode, is like a normal DC motor. The input to the motor determines its speed. This is velocity control. The second mode is as a standard servo motor. In this case the input determines the rotational position. The motor will move to the new position at its maximum speed. This is position control. The third mode is where you can control both the position and velocity for the motor. This is velocity and position control mode. In this mode you can have two different neurons connected to your motor. One of them can have a target data type of desired position, and the other can have a target data type of desired velocity. This allows you to control the position and velocity targets of the motor independently using neural output in your network. You can control the motor using a motor velocity stimulus, motor position stimulus, or directly using neural control. A typical example in neural control would relate the membrane voltage of a neuron to the position or velocity of the motor, depending on which type of motor you are using. This conversion is performed using an adapter.
To see a description of the properties common to all bodies follow this link
These properties are specific to hinge only.
This project was supported by: