sensors.ForceSensor

class sensors.ForceSensor(port: Optional[int])

Sensor for measuring linear forces and rotational torques.

force() vector.Vector3

The force in newtons that the right (further x) surface is applying to the left surface from the left surfaces perspective. As a result of this, negative forces indicate compressive forces whereas positive forces indicate stretching forces.

The force is in the left (negative in the x axis) surface’s space meaning a value in the x axis is a force directly in the left surface’s x axis regardless of where the right surface’s x axis is pointed.

A slight filter is applied to smooth out values. For an unfiltered version see force_stream()

For best results, avoid “chaining” joints together. The sensor will give more accurate results measuring collisions with objects that it is not connected to with a joint.

force_x() float

Force in newtons that the right surface is applying to the left surface in the left surface’s x axis.

force_y() float

Force in newtons that the right surface is applying to the left surface in the left surface’s y axis.

force_z() float

Force in newtons that the right surface is applying to the left surface in the left surface’s z axis.

force_stream() streams.Stream[vector.Vector3]

Creates a stream of unfiltered force() values in newtons.

torque() vector.Vector3

The torque in newton meters that the right (further x) surface is applying to the left surface from the left surface’s perspective. As a result of this, negative values indicate the right surface rotating counter clockwise from the left surface’s perspective whereas positive values indicate a clockwise force.

The torque is in the left surface’s space meaning a value in the x axis is a torque directly around the left surface’s x axis regardless of where the right surface’s x axis is pointed.

A slight filter is applied to smooth out values. For an unfiltered version see torque_stream()

If you are getting inconsistent results avoid “chaining” joints together with this part. The sensor will give more accurate results measuring collisions with objects that it is not connected to with a mechanical or rotatary joint.

torque_x() float

Torque in newton meters that the right surface is applying to the left surface around the left surface’s x axis.

torque_y() float

Torque in newton meters that the right surface is applying to the left surface around the left surface’s y axis.

torque_z() float

Torque in newton meters that the right surface is applying to the left surface around the left surface’s z axis.

torque_stream() streams.Stream[vector.Vector3]

Creates a stream of unfiltered torque() values in newton meters.

name() str

Returns the user editable name of the controllable as found in the properties tab of the game.

from ports import PortReference

print(PortReference(0).name())