BB.Servo.Robotis.Message.ServoStatus (bb_servo_robotis v0.3.0)

Copy Markdown View Source

Status information for a Robotis/Dynamixel servo.

Published periodically by the controller when status polling is enabled. Subscribe to [:sensor, :controller_name, :servo_status] to receive updates.

Fields

  • servo_id - The servo ID (1-253)
  • temperature - Internal temperature in Celsius
  • voltage - Input voltage in Volts
  • current - Present current draw in Amps
  • hardware_error - Hardware error flags (nil if no errors)

Hardware Error Flags

The hardware_error field contains bit flags indicating error conditions:

  • Bit 0: Input voltage error
  • Bit 2: Overheating error
  • Bit 3: Motor encoder error
  • Bit 4: Electrical shock error
  • Bit 5: Overload error

Examples

alias BB.Servo.Robotis.Message.ServoStatus

{:ok, msg} = ServoStatus.new(:dynamixel,
  servo_id: 1,
  temperature: 45.0,
  voltage: 12.1,
  current: 0.5,
  hardware_error: nil
)

Summary

Types

t()

@type t() :: %BB.Servo.Robotis.Message.ServoStatus{
  current: number(),
  hardware_error: non_neg_integer() | nil,
  servo_id: pos_integer(),
  temperature: number(),
  voltage: number()
}

Functions

new(frame_id, attrs)

@spec new(
  atom(),
  keyword()
) :: {:ok, BB.Message.t()} | {:error, term()}