Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Node Summary (Motor)

  • driveCurrent - True if the current used to drive/hold the motor position is on. Can be moved to true/false to turn the current on/off.
  • Positional Nodes
    • rawPosition - The motor position as directly read from hardware. This is always considered dimensionless. Moving this causes the motor to move.
    • hardPosition - The motor raw position, scaled to a meaningful unit such as degrees or cm. hardPosition = rawPosition * conversion. Moving this causes the motor to move.
    • softPosition - The hardPosition, with an offset (zero) and parity (-1 or 1) applied. softPosition = (hardPosition - zero) * parity. Moving this causes the motor to move.
    • conversion - How much to scale rawPosition, to get a meaningful unit.
    • zero - When hardPosition = zero, softPosition = 0.
    • parity - If -1, then the sign of softPosition is flipped.
  • Limits
    • rawLowerLimit - The true lower limit of the motor as regulated by NICE. Any move of raw, hard, or softPosition is ultimately checked against this value. As a result, changing zero, parity, or conversion has no effect on this value or where the motor can be moved.
    • softLowerLimit - A convenience for reading/changing rawLowerLimit. Changing zero, parity, or conversion, will cause this value to change. This value is always less than softUpperLimit, regardless of parity.
    • negLimitState (read-only)- The state of the "negative" physical limit switch. This is true if tripped, and false otherwise.
    • rawUpperLimit - The true upper limit of the motor as regulated by NICE. Any move of raw, hard, or softPosition is ultimately checked against this value. As a result, changing zero, parity, or conversion has no effect on this value or where the motor can be moved.
    • softUpperLimit - A convenience for reading/changing rawUpperLimit. Changing zero, parity, or conversion, will cause this value to change. This value is always greater than softLowerLimit, regardless of parity.
    • posLimitState (read-only) - The state of the "positive" physical limit switch. This is true if tripped, and false otherwise. 
  • Movement Parameters
    • backlash - A signed quantity, whose magnitude should be set higher than the "slack" between the motor shaft and the load being driven. This quantity has a unit and represents the magnitude in terms of hard/softPosition. NICE will always stay "engaged" in the direction of the sign.
      • Example: If backlash is positive, any move in the positive direction will go directly to the requested destination. However, a move in the negative direction will cause the motor to move to: destination - backlash, followed by: destination.
    • distanceToEngaged - A positive quantity which tracks how far a motor is from a guaranteed engaged state. This should always be close to 0, unless a motor motion fails.
    • rawTolerance - How close a motor's final resting rawPosition needs to be to the requested rawDestination for the motion to be considered a success. Failure will cause the motor to automatically try to move again, up to a configurable number of retries.
    • softTolerance - A convenience for reading/changing rawTolerance.
    • maxRetries - How many times NICE should automatically attempt to move a motor, again, when it lands outside of tolerance of the requested destination, before the move is considered a failure.
    • driveCurrentAutoMode - For some motors it is desirable to leave the drive current off when not in motion. When set to true a motor's drive current is automatically set to true before each move, and set back to false, when the move completes. This can reduce the motor's temperature, but is only appropriate where a motor will not slip without a holding current.
  • Motion Profile - These nodes are only available for some motors. They give a representation of a "trapezoidal" motion profile in which a motor linearly accelerates to a maximum rotational speed and then linearly decelerates back to zero.
    • rawVelocity (readonly) - The maximum rate of change of the rawPosition during a move. A bit of a misnomer, this has units of 1/s.
    • rawAcceleration (readonly) - The maximum rate of increase of the "velocity" during a move. A bit of a misnomer, this has units of 1/s2.
    • rawDeceleration (readonly) -The maximum rate of decrease of the "velocity" during a move. A bit of a misnomer, this has units of 1/s2.
  • Common Nodes
    • backgroundPollPeriod - NICE continually updates all sensor readings, from hardware, every time backgroundPollPeriod time elapses, even when not moving. Special values:
      • infinity - read once on install
      • NaN - never read
    • broken - If set to true, it indicates that NICE cannot communicate properly with the device. Often this means it is turned off or not connected. NICE will periodically attempt to reestablish communication with broken devices.
    • state - Can be one of: {IDLE, BUSY, STOPPING}. BUSY indicates that NICE is waiting for stability or hold time to be achieved.
Created December 20, 2019