3#include "../world_interface/data.h"
20 pwm = MOTOR_UNIT_MODE_PWM,
21 pid = MOTOR_UNIT_MODE_PID
64 bool zeroEncoder,
int32_t pulsesPerJointRev,
65 std::optional<std::chrono::milliseconds> telemetryPeriod);
93 std::optional<std::chrono::milliseconds> telemetryPeriod);
189 const std::function<
void(
Represents data measured using a sensor at a given time.
Definition data.h:181
Utilities for interacting with motor boards over a CAN interface.
Definition CANMotor.cpp:21
void setMotorPower(devicegroup_t group, deviceserial_t serial, double power)
Set the power output of a motor board.
Definition CANMotor.cpp:104
void initPotentiometer(devicegroup_t group, deviceserial_t serial, int32_t posLo, int32_t posHi, uint16_t adcLo, uint16_t adcHi, std::optional< std::chrono::milliseconds > telemetryPeriod)
Initialize a potentiometer attached to the given motor.
Definition CANMotor.cpp:41
void setMotorPIDConstants(devicegroup_t group, deviceserial_t serial, int32_t kP, int32_t kI, int32_t kD)
Set the PID constants for a motor board.
Definition CANMotor.cpp:82
void setLimitSwitchLimits(devicegroup_t group, deviceserial_t serial, int32_t lo, int32_t hi)
Set the limits of the limit switch on a motor board.
Definition CANMotor.cpp:70
void setServoPos(devicegroup_t group, deviceserial_t serial, uint8_t servoNum, int32_t angle)
Set the angle of the PCA servo.
Definition CANMotor.cpp:123
motormode_t
The possible motor modes.
Definition CANMotor.h:19
void removeLimitSwitchCallback(callbackid_t id)
Remove a previously registered limit switch callback.
Definition CANMotor.cpp:161
void setMotorMode(devicegroup_t group, deviceserial_t serial, motormode_t mode)
Set the mode of a motor board.
Definition CANMotor.cpp:97
void pullMotorPosition(devicegroup_t group, deviceserial_t serial)
Poll the position data from a motor board.
Definition CANMotor.cpp:139
void initMotor(devicegroup_t group, deviceserial_t serial)
Initialize a motor.
Definition CANMotor.cpp:65
void initEncoder(devicegroup_t group, deviceserial_t serial, bool invertEncoder, bool zeroEncoder, int32_t pulsesPerJointRev, std::optional< std::chrono::milliseconds > telemetryPeriod)
Initialize an encoder attached to the given motor.
Definition CANMotor.cpp:23
callbackid_t addLimitSwitchCallback(devicegroup_t group, deviceserial_t serial, const std::function< void(devicegroup_t group, deviceserial_t serial, DataPoint< LimitSwitchData > limitSwitchData)> &callback)
Add a callback that is invoked when the limit switch is triggered for a motor board.
Definition CANMotor.cpp:143
void emergencyStopMotors()
Emergency stop all motors on the CAN bus.
Definition CANMotor.cpp:57
DataPoint< int32_t > getMotorPosition(devicegroup_t group, deviceserial_t serial)
Get the last reported position of a motor.
Definition CANMotor.cpp:135
void setMotorPIDTarget(devicegroup_t group, deviceserial_t serial, int32_t target)
Set the position PID target of a motor board.
Definition CANMotor.cpp:117
devicegroup_t
The possible device group codes.
Definition CANUtils.h:20
std::tuple< deviceid_t, telemtype_t, uint32_t > callbackid_t
An ID for a telemetry callback.
Definition CAN.h:25
uint8_t deviceserial_t
The type of the device serial number.
Definition CANUtils.h:67
The supported motor position sensors.
Definition CANMotor.h:25