142 virtual err_type_t home(
float velocity, u_int8_t sensitivity, u_int8_t current);
330 virtual bool isBusy(
void);
Generic base class to control a single joint.
Definition mBaseJoint.h:27
virtual err_type_t home(float velocity, u_int8_t sensitivity, u_int8_t current)
Blocking implementation to home the joint.
Definition mBaseJoint.cpp:45
virtual err_type_t setMaxVelocity(float maxVel)
Set the maximum permitted joint velocity in rad/s or m/s for cylindrical and prismatic joints respect...
Definition mBaseJoint.cpp:133
virtual err_type_t getPosition(float &pos)=0
get the current joint position in radians or m for cylindrical and prismatic joints respectively.
virtual bool isBusy(void)
Checks if the joint controller is busy processing a blocking command.
Definition mBaseJoint.cpp:158
virtual bool isStalled(void)
Checks if the motor is stalled.
Definition mBaseJoint.cpp:153
virtual stp_reg_t getCurrentBCmd(void)
get the currently active blocking command
Definition mBaseJoint.cpp:175
virtual err_type_t setBrakeMode(u_int8_t mode)
Set Brake Mode.
Definition mBaseJoint.cpp:123
virtual err_type_t setMaxAcceleration(float maxAccel)
Set the maximum permitted joint acceleration (and deceleration) in rad/s^2 or m/s^2 for cylindrical a...
Definition mBaseJoint.cpp:128
virtual err_type_t checkOrientation(float angle=2.0)
Calls the checkOrientation method of the motor. Checks in which direction the motor is turning.
Definition mBaseJoint.cpp:98
stp_reg_t current_b_cmd
Keeps track if a blocking command is being executed.
Definition mBaseJoint.h:396
virtual err_type_t deinit(void)
Denitialize the joint communication.
Definition mBaseJoint.cpp:22
virtual err_type_t init(void)
Initialize the joint communication.
Definition mBaseJoint.cpp:17
virtual err_type_t startHoming(float velocity, u_int8_t sensitivity, u_int8_t current)
non-blocking implementation to home the joint
Definition mBaseJoint.cpp:54
virtual void wait_while_busy(const float period_ms)
Blocking loop waiting for BUSY flag to reset.
Definition mBaseJoint.cpp:180
virtual err_type_t moveSteps(int32_t steps)
Move full steps.
Definition mBaseJoint.cpp:88
u_int8_t flags
State flags transmitted with every I2C transaction.
Definition mBaseJoint.h:394
virtual err_type_t getVelocity(float &vel)=0
get the current joint velocity in radians/s or m/s for cylindrical and prismatic joints respectively.
virtual err_type_t stop(void)
Stops the motor.
Definition mBaseJoint.cpp:103
virtual err_type_t setDriveCurrent(u_int8_t current)
Set the Drive Current.
Definition mBaseJoint.cpp:113
virtual err_type_t getFlags(void)
Overload of getFlags(u_int8_t &flags)
Definition mBaseJoint.cpp:170
virtual err_type_t disableCL(void)
Definition mBaseJoint.cpp:108
virtual err_type_t disable(void)
disenganges the joint
Definition mBaseJoint.cpp:32
virtual err_type_t enable(u_int8_t driveCurrent, u_int8_t holdCurrent)
Engages the joint.
Definition mBaseJoint.cpp:27
virtual err_type_t setPosition(float pos)
get the current joint position in radians or m for cylindrical and prismatic joints respectively.
Definition mBaseJoint.cpp:83
std::string name
Joint name for logging.
Definition mBaseJoint.h:352
virtual err_type_t postHoming(void)
perform tasks after a non-blocking homing
Definition mBaseJoint.cpp:70
virtual bool isHomed(void)
Checks the state if the motor is homed.
Definition mBaseJoint.cpp:143
~BaseJoint(void)
Destroy the BaseJoint object.
Definition mBaseJoint.cpp:11
virtual bool isEnabled(void)
Checks the state if the motor is enabled.
Definition mBaseJoint.cpp:148
virtual err_type_t _home(float velocity, u_int8_t sensitivity, u_int8_t current)=0
Call to start the homing sequence of a joint.
virtual err_type_t setHoldCurrent(u_int8_t current)
Set the Hold Current.
Definition mBaseJoint.cpp:118
virtual err_type_t enableStallguard(u_int8_t sensitivity)
Enable encoder stall detection of the joint.
Definition mBaseJoint.cpp:138
virtual err_type_t setVelocity(float vel)
Set the current joint velocity in radians/s or m/s for cylindrical and prismatic joints respectively.
Definition mBaseJoint.cpp:93
stp_reg_t
register and command definitions
Definition mBaseJoint.h:39
@ ENABLECLOSEDLOOP
Definition mBaseJoint.h:62
@ GETPIDERROR
Definition mBaseJoint.h:67
@ DISABLEPID
Definition mBaseJoint.h:61
@ GETENCODERRPM
R; Size: 4; [(float) RPM].
Definition mBaseJoint.h:69
@ SETRPM
W; Size: 4; [(float) RPM].
Definition mBaseJoint.h:43
@ SETUP
W; Size: 2; [(uint8) holdCurrent, (uint8) driveCurrent].
Definition mBaseJoint.h:42
@ DISABLECLOSEDLOOP
W; Size: 1; [(uint8) 0].
Definition mBaseJoint.h:63
@ MOVETOEND
Definition mBaseJoint.h:65
@ RUNCOTINOUS
Definition mBaseJoint.h:49
@ SETCURRENT
W; Size: 1; [(uint8) driveCurrent].
Definition mBaseJoint.h:51
@ MOVETOANGLE
W; Size: 4; [(float) degrees].
Definition mBaseJoint.h:47
@ ENABLEPID
Definition mBaseJoint.h:60
@ HOMEOFFSET
R/W; Size: 4; [(float) -].
Definition mBaseJoint.h:71
@ HOME
W; Size: 4; [(uint8) current, (int8) sensitivity, (uint8) speed, (uint8) direction].
Definition mBaseJoint.h:70
@ ENABLESTALLGUARD
W; Size: 1; [(uint8) threshold].
Definition mBaseJoint.h:56
@ NONE
Used for signalling purposes.
Definition mBaseJoint.h:40
@ SETMAXVELOCITY
Definition mBaseJoint.h:55
@ SETMAXDECELERATION
Definition mBaseJoint.h:54
@ ANGLEMOVED
R; Size: 4; [(float) degrees].
Definition mBaseJoint.h:50
@ SETMAXACCELERATION
Definition mBaseJoint.h:53
@ SETHOLDCURRENT
W; Size: 1; [(uint8) holdCurrent].
Definition mBaseJoint.h:52
@ MOVESTEPS
W; Size: 4; [(int32) steps].
Definition mBaseJoint.h:45
@ MOVEANGLE
Definition mBaseJoint.h:46
@ GETDRIVERRPM
Definition mBaseJoint.h:44
@ GETMOTORSTATE
Definition mBaseJoint.h:48
@ DISABLESTALLGUARD
Definition mBaseJoint.h:57
@ SETBRAKEMODE
W; Size: 1; [(uint8) mode].
Definition mBaseJoint.h:59
@ STOP
W; Size: 1; [(uint8) mode].
Definition mBaseJoint.h:66
@ PING
R; Size: 1; [(char) ACK].
Definition mBaseJoint.h:41
@ CLEARSTALL
Definition mBaseJoint.h:58
@ CHECKORIENTATION
W; Size: 4; [(float) degrees].
Definition mBaseJoint.h:68
@ SETCONTROLTHRESHOLD
Definition mBaseJoint.h:64
Definition mBaseJoint.h:19
err_type_t
Enum defining common error types.
Definition uErr.h:23
Defining common return types.