# Prismatic Joint

## Watch the video tutorial on controlling a motor using a neural network!

 Figure 1. Prismatic Joint Type.

This joint type can be used in the biomechanical editor to create a musculo-skeletal model. The prismatic joint is much like the Hinge, since two axes, one fixed in each of the two constrained bodies, are forced to coincide. However, in this case the bodies are allowed to move along the axis, not to rotate. Like a hinge, a prismatic joint removes five degrees of freedom from the relative motion of the attached bodies, leaving only one. The relative orientation of the bodies is maintained by the joint, which is imagined as a bar with a prismatic section sliding inside a block with a prismatic hole.

For this joint, a line l0 fixed in body b0 is coincident with a line l1 fixed on body b1 and the rotation of b1 about l0 is fixed. However, the origin of l1 is not fixed on l0, which allows sliding along the common axis but no rotation about it. For convenience, the origin of l0 is called the position of the joint and the common axis of the two lines is the axis of the joint.

This joint type has two constraints, a min and max value. These values determine how far the body can move along the positive direction of the axis and the negative direction of the axis. These values also determine the size of the bar that is drawn in the editor.

The prismatic joint also contains a built in motor. 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..

## General Properties

 Figure 2. The properties of the prismatic joint.

To see a description of the properties common to all bodies follow this link

## Hinge Properties

These properties are specific to Prismatic only.

Constraint

Max Velocity
The maximum positive or negative velocity that the motor can use to move this part
Default value: 100 m/s
Acceptable range:

Maximum
The maximum amount a body can move in the positive direction along the axis
Default value: 40 cm
Acceptable range: 0 - infinity

Minimum
The minimum amount a body can move in the negative direction along the axis.
Default value: -40 cm
Acceptable range: 0 - (-infinity)

Part Properties

Enable Motor
Determines whether the motor is on or not. If the motor is on then it will not allow movements until either a neural input or a stimulus tells it to move by setting its velocity. See how to add a motor velocity stimulus here, and how to move a motor using a neural network here.
Default value: False
Acceptable range: True/False

Max Motor Torque
The maximum torque that this motor can apply to obtain a desired velocity of movement
Default value: 100 Nm
Acceptable range: Any value greater than 0.

Motor Type
Sets the type of motor to use for this joint. Options are velocity control, position control, and velocity and position control
Default value: Velocity control