The RMP Motion Controller APIs
Robotabstract

The Robot class for Path, G-Code and RapidRobot motion for any actuator. Use RobotCreate() to make one. Your kinematic model must be supported by RapidCode. More...

Static Functions

static RobotRobotCreate (MotionController *controller, MultiAxis *multiAxis, const char *const modelIdentifier, uint32_t motionFrameBufferSize)
 Create a Robot object to use G-Code, path motion, etc. More...
 
static RobotRobotCreate (MotionController *controller, MultiAxis *multiAxis, const char *const modelIdentifier)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
static RobotRobotCreate (MotionController *controller, MultiAxis *multiAxis, KinematicModelBuilder *builder, uint32_t motionFrameBufferSize)
 Create a Robot object to use G-Code, path motion, etc. More...
 
static void RobotDelete (MotionController *controller, Robot *robot)
 Delete a Robot.
 

Functions

PathState PathStateGet ()=0
 Gets the path state of the Robot. More...
 
bool PathStateWait (PathState stateWaitFor, uint64_t timeoutMilliseconds)=0
 Waits for a specific path state. More...
 
bool PathStateWaitChange (PathState stateWaitChange, uint64_t timeoutMilliseconds)=0
 Waits for the path state to not be the specified state. More...
 
uint64_t MotionCounterGet ()=0
 Gets the current motion counter of the Robot. More...
 
bool MotionCounterWait (uint64_t motionWaitFor, uint64_t timeoutMilliseconds)=0
 Waits for the counter to be greater than or euqal to the specified state. More...
 
bool MotionCounterWaitChange (uint64_t motionWaitChange, uint64_t timeoutMilliseconds)=0
 Waits for the state to change off the specified counter value. More...
 
bool IsRunning ()=0
 Returns whether or not the robot is in motion (from executor or other source). Can be used to determine if safe to command a new move. More...
 
bool PathIsRunning ()=0
 Returns whether or not a planned path is being executed. All G-Code gets converted to path. Joint moves aren't path moves. More...
 
bool MotionDoneGet ()=0
 Check to see if motion is done and settled. More...
 
uint64_t MotionDoneWait ()=0
 Waits for a move to complete. More...
 
uint64_t MotionDoneWait (uint64_t timeoutMilliseconds)=0
 Waits for a move to complete. More...
 
bool HasError ()=0
 Get the error state of the underlying Trajectory Executor. More...
 
const char *const ErrorMessageGet ()=0
 Get the text of any error in the Trajectory Executor. More...
 
void Resume ()=0
 Resume an axis. More...
 
void Stop ()=0
 Stop an axis. More...
 
void EStopAbort ()=0
 E-Stop, then abort an axis. More...
 
void Abort ()=0
 Abort an axis. More...
 
void AmpEnableSet (bool enable, int32_t ampActiveTimoutMilliseconds)=0
 Enable all amplifiers. More...
 
void EStop ()=0
 Commands a joint EStop and clears the loaded moves. More...
 
void ClearFaults ()=0
 Clears the MultiAxis fault then the Robot's error bit.
 
Pose ActualPoseGet ()=0
 Get the actual pose of the robot from the trajectory exectutor. More...
 
Pose CommandPoseGet ()=0
 Get the commanded pose of the robot from the trajectory exectutor. More...
 
void JointsActualPositionsGet (double *positions, uint16_t sz)=0
 Get the actual position of the axes in the underlying MultiAxis. More...
 
void JointsCommandPositionsGet (double *positions, uint16_t sz)=0
 Get the commanded position of the axes in the underlying MultiAxis. More...
 
void InverseKinematics (Pose pose, double *outJoints, uint16_t outJointsSize)=0
 Run the given pose through the current inverse kinematic model to see the joint positions the robot would choose. More...
 
Pose ForwardKinematics (double *inJoints, uint16_t inJointsSize)=0
 Get the Actual pose of the robot from the the joint MultiAxis positions. More...
 
const KinematicModelModelGet ()=0
 Get the model this robot was created with Visit our Topic Page for more information.


 
void GlobalTranformSet (const Pose &transform)=0
 Sets the Pose (position and orientation) of the robot in the world. Use this when you want to program in world coordinates. This is Pose is removed from all motion commands to make commands w.r.t robot origin (robot centric) Visit our Topic Page for more information.
.
 
const PoseGlobalTranformGet ()=0
 Gets the Pose (position and orientation) of the robot in the world. This is Visit our Topic Page for more information.


 
void EndEffectorTransformSet (const Pose &transform)=0
 End of Robot to TCP. More...
 
const PoseEndEffectorTransformGet ()=0
 End of Robot to TCP.
 
const double ScaleFactorBetweenUnitsGet (LinearUnits from, LinearUnits to)=0
 Gets scaling for scale factor needed to convert from -> to units by multiplying
More...
 
void Move (const Pose &absolutePose)=0
 Executes a point-to-point absolute motion in cartesian space. More...
 
void MoveRelative (const Pose &relativePose)=0
 Executes a point-to-point motion relative to the current end effector Pose. More...
 
void PathClear ()=0
 Clears out all loaded lines and arcs from the path. More...
 
void PathVelocitySet (double unitsPerSecond)=0
 Sets the target linear cartesian velocity for each move (UserUnits/second). More...
 
double PathVelocityGet ()=0
 Gets the target velocity for the machine (UserUnits/second). More...
 
void PathAccelerationSet (double unitsPerSecondSquared)=0
 Sets the target acceleration for the machine (UserUnits/second^2). Should be set apprpriately based on your hardware. More...
 
double PathAccelerationGet ()=0
 Gets the target acceleration for the machine (UserUnits/second^2). More...
 
void PathProgrammingModeSet (PathMode mode)=0
 Sets the programming mode (Relative/Absolute). More...
 
PathMode PathProgrammingModeGet ()=0
 Gets the programming mode (Relative/Absolute). More...
 
void PathArc (const Pose &target, double radius, RotationDirection direction)=0
 
void PathArc (const Pose &target, const Vector3d &center, RotationDirection direction)=0
 
void PathLine (const Pose &target)=0
 
void PathLine (const Pose &target, const Pose &tool_offset)=0
 
void PathPlaneSet (Plane plane)=0
 Sets the plane for the purposes of ambigous cases (arcs >= 180deg). Last set plane or XY plane is default. More...
 
Plane PathPlaneGet ()=0
 Gets the plane some arcs will be forced to be on. More...
 
void PathLinearScalingSet (double scaleFactor)=0
 Sets scaling between the input to path motion and output of path motion to the kinematic model. More...
 
double PathLinearScalingGet () const =0
 Gets scaling between input to path motion and output of path motion to the kinematic model. More...
 
void PathUnitsSet (LinearUnits units)=0
 Defines the units Cartesian Path Motion is in.
More...
 
LinearUnits PathUnitsGet () const =0
 Gets the units of path motion. More...
 
double PathProcessLoadedMoves ()=0
 Processes our loaded moves. Used internally and to check whether loaded moves are valid, and must be called before both PathPlannedPointsGet and PathDurationGet.
 
uint64_t PathPlannedPointsGet (double *points, double *times, uint64_t startFrame, uint64_t frameCount)=0
 Get points representing the planned motion in cartesian space that will happen when run is called. More...
 
double PathDurationGet ()=0
 Get total (seconds) duration of the planned motion that will happen when run is called.
More...
 
void Run ()=0
 Run the loaded path lines/arcs. The behavior is non-blocking. Use Robot.MotionDoneWait() to block. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
uint32_t MotionFrameBufferSizeGet ()=0
 Gets the frame buffer size that is set at creation. More...
 
bool GcodeFileLoad (const char *const filePath)=0
 Open a file at the specified file path. Calls GcodeStringLoad() with the contents of the file. More...
 
bool GcodeStringLoad (const char *const text)=0
 Interpret a string as contents of a G-Code file and prepare it for execution. More...
 
const char *const GcodeProgramGet ()=0
 Gets the raw file contents of the last loaded program. More...
 
void GcodeFeedRateSet (double unitsPerMinute)=0
 Sets the target feed rate for the machine (units/minute). Same as the "F" Command in a G-Code file. More...
 
double GcodeFeedRateGet ()=0
 Gets the target feed rate for the machine (GcodeUnitsGet()/minute). More...
 
void GcodeAccelerationRateSet (double unitsPerMinuteSquared)=0
 Sets the target acceleration for the machine (units/minute^2). Should be set apprpriately based on your hardware. More...
 
double GcodeAccelerationRateGet ()=0
 Gets the target acceleration for the machine (GcodeUnitsGet()/minute^2). More...
 
int32_t GcodeExecutingLineNumberGet ()=0
 Returns the line number of the currently executing G-Code line or -1 if there is none. More...
 
void GcodeUnitsSet (LinearUnits units)=0
 Set the currently active unit (same as calling G20/G21) More...
 
LinearUnits GcodeUnitsGet ()=0
 Get the currently active unit as set by G20/G21. More...
 
void GcodeProgrammingModeSet (PathMode mode)=0
 Sets the programming mode (Relative/Absolute). More...
 
PathMode GcodeProgrammingModeGet ()=0
 Gets the G-Code programming mode (Relative/Absolute). More...
 
int32_t GcodeErrorLineNumberGet ()=0
 Gets the line number of any errors in the G-Code syntax. More...
 
int32_t GcodeNumberOfLinesGet ()=0
 Returns the total line number count in the last loaded item. More...
 
void GcodeReload ()=0
 Reloads the all lines from the last call to GcodeStringLoad(). Automatically called by GcodeStringLoad(). This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void GcodeReload (int32_t startLine, int32_t endLine)=0
 Reloads the lines from the last call to GcodeStringLoad() but only between start and end line numbers. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void GcodeReload (int32_t startLine)=0
 Reloads the lines from the last call to GcodeStringLoad() but only between start line and end of file. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
const char *const GcodeLineTextGet (uint32_t lineNumber)=0
 Gives you the text of a specific line from the last loaded program excluding all comments and with only once space between chunks. More...
 
void GcodePlaneSet (Plane plane)=0
 Set the plane for arcs (same as calling G17/G18/G19) More...
 
void GcodeWorkOffsetConfigure (GCodeWorkOffset offset, Vector3d offsetValues)=0
 Save an XYZ offset to be used with specified G-Code work offset. More...
 
void GcodeWorkOffsetSelect (GCodeWorkOffset offset)=0
 Apply the offset saved under the specified location. More...
 
GCodeWorkOffset GcodeWorkOffsetGet ()=0
 Gets the enum representing the location where the current offset is saved. More...
 
const PoseGcodeWorkOffsetValuesGet ()=0
 Gets the actual values of the currently applied offset. More...
 
const char *const VersionGet ()
 Get the RSI RapidCode version. More...
 
int32_t MpiVersionMajor ()
 Get the major MPI version.
 
int32_t MpiVersionMinor ()
 Get the minor MPI version.
 
int32_t MpiVersionRelease ()
 Get the release MPI version.
 
int32_t RSIVersionMajor ()
 Get the major RSI version.
 
int32_t RSIVersionMinor ()
 Get the minor RSI version.
 
int32_t RSIVersionMicro ()
 Get the micro RSI version.
 
int32_t RSIVersionPatch ()
 Get the patch RSI version.
 
int32_t NumberGet ()
 Get the zero-based index of this object. More...
 
int32_t ErrorLogCountGet ()
 Get the number of software errors in the error log. More...
 
const RsiError *const ErrorLogGet ()
 Get the next RsiError in the log. More...
 
void ErrorLogClear ()
 Clear the error log. More...
 
void ThrowExceptions (bool state)
 Configure a class to throw exceptions. More...
 
const char *const RsiErrorMessageGet (RSIErrorMessage msg)
 Get the RSI-specific error message text for a specific RSIErrorMessage.
 
const char *const ErrorMessageGet (RSIErrorMessage msg)
 Get the detailed text message for an RSIErrorMessage.
 
bool WarningMsgCheck (RSIErrorMessage msg)
 Check to see if an RSIErrorMessage is a warning (true) or not (false).
 
void Trace (bool state)
 Enables/Disables trace output. More...
 
void TraceMaskOnSet (RSITrace maskOn)
 Turn on a particular trace output mask. More...
 
bool TraceMaskOnGet (RSITrace maskOn)
 Check to see if a particular trace output mask is turned on. More...
 
void TraceMaskOffSet (RSITrace maskOff)
 Turn off a particular trace output mask. More...
 
void TraceMaskClear ()
 Clear the trace output mask. More...
 
void TraceFileSet (const char *const fileName)
 Channels Tracing messages to specified file. More...
 
void TraceFileClose ()
 Stops Logging to the file. More...
 
void TraceInjectMessage (RSITrace traceLevel, const char *const message)
 Add a message to the Trace Log. More...
 

Static Attributes

static constexpr uint64_t TimeoutForever = 0xFFFFFFFFFFFFFFFF
 Use this 64-bit value to wait forever in methods which accept a timeoutMilliseconds parameter.
 

Description

Definition at line 549 of file cartesianrobot.h.