NavAbilitySDK
Documentation for NavAbilitySDK.
NavAbilitySDK.Categorical
NavAbilitySDK.Client
NavAbilitySDK.Distribution
NavAbilitySDK.FullNormal
NavAbilitySDK.GraphVizApp
NavAbilitySDK.InferenceType
NavAbilitySDK.MapVizApp
NavAbilitySDK.MixtureInferenceType
NavAbilitySDK.Normal
NavAbilitySDK.Pose2AprilTag4Corners
NavAbilitySDK.Pose2Point2BearingRange
NavAbilitySDK.Rayleigh
NavAbilitySDK.Scope
NavAbilitySDK.SolveOptions
NavAbilitySDK.Uniform
NavAbilitySDK.ZInferenceType
NavAbilitySDK.LinearRelativeData
NavAbilitySDK.MixtureData
NavAbilitySDK.Point2Point2RangeData
NavAbilitySDK.Pose2AprilTag4CornersData
NavAbilitySDK.Pose2Point2BearingRangeData
NavAbilitySDK.Pose2Pose2Data
NavAbilitySDK.Pose3Pose3Data
NavAbilitySDK.PriorData
NavAbilitySDK.PriorPoint2Data
NavAbilitySDK.PriorPose2Data
NavAbilitySDK.PriorPose3Data
NavAbilitySDK.ScatterAlignPose2Data
NavAbilitySDK._getSolverDataDict
NavAbilitySDK.addVariable
NavAbilitySDK.createDownloadEvent
NavAbilitySDK.createUploadEvent
NavAbilitySDK.getStatusLatestEvent
NavAbilitySDK.getStatusMessagesEvent
NavAbilitySDK.getStatusesLatest
NavAbilitySDK.waitForCompletion
NavAbilitySDK.Categorical
— Typemutable struct Categorical <: Distribution
Categorical distribution specified by a set of probabilities summing up to 1.
NavAbilitySDK.Client
— Typestruct Client
The context for a session, made from a user, robot, and session. Users can have multiple robots and robots can have multiple sessions. So this indicates a unique session.
NavAbilitySDK.Distribution
— Typeabstract type Distribution
Abstract parent type for all distributions.
NavAbilitySDK.FullNormal
— Typemutable struct FullNormal <: Distribution
Multidimensional normal distribution specified by means and a covariance matrix.
NavAbilitySDK.GraphVizApp
— Typestruct GraphVizApp
Helper type for linking to App visualization of a factor graph for user:robot:session.
NavAbilitySDK.InferenceType
— Typeabstract type InferenceType
Abstract parent type for all InferenceTypes, which are the functions inside of factors.
NavAbilitySDK.MapVizApp
— Typestruct MapVizApp
Helper type for linking to App visualization of geometric map for user:robot:session.
NavAbilitySDK.MixtureInferenceType
— Typestruct MixtureInferenceType <: NavAbilitySDK.InferenceType
InferenceType for MixtureData.
NavAbilitySDK.Normal
— Typemutable struct Normal <: Distribution
One dimensional normal distribution.
NavAbilitySDK.Pose2AprilTag4Corners
— Typestruct Pose2AprilTag4Corners <: NavAbilitySDK.InferenceType
InferenceType for Pose2AprilTag4CornersData.
NavAbilitySDK.Pose2Point2BearingRange
— Typestruct Pose2Point2BearingRange <: NavAbilitySDK.InferenceType
Pose2Point2BearingRangeInferenceType is used to represent a bearing
- range measurement.
NavAbilitySDK.Rayleigh
— Typemutable struct Rayleigh <: Distribution
One dimensional Rayleigh distribution.
NavAbilitySDK.Scope
— Typestruct Scope
Some calls interact across multiple users, robots, and sessions. A scope allows you to specify these more complex contexts.
NavAbilitySDK.SolveOptions
— Typestruct SolveOptions
Solver options including the solve key and whether the parametric solver should be used.
NavAbilitySDK.Uniform
— Typemutable struct Uniform <: Distribution
One dimensional uniform distribution.
NavAbilitySDK.ZInferenceType
— Typestruct ZInferenceType <: NavAbilitySDK.InferenceType
ZInferenceType is used by many factors as a common inference type that uses a single distribution to express a constraint between variables. Used by: Prior, LinearRelative, PriorPose2, PriorPoint2, Pose2Pose2, Point2Point2Range, etc.
NavAbilitySDK.LinearRelativeData
— MethodLinearRelativeData(; Z, kwargs...)
Create a ContinousScalar->ContinousScalar (also known as Pose1->Pose1) factor with a distribution Z representing the 1D relationship between the variables, e.g. Normal(1.0, 0.1)
.
Default value of Z = Normal(1.0, 0.1)
.
NavAbilitySDK.MixtureData
— MethodMixtureData(mechanics, components, probabilities, dims)
Create a Mixture factor type with an underlying factor type, a named set of distributions that should be mixed, the probabilities of each distribution (the mix), and the dimensions of the underlying factor (e.g. ContinuousScalar=1, Pose2Pose2=3, etc.).
Args: mechanics (Type{FactorData}): The underlying factor data type, e.g. Pose2Pose2Data. NOTE: This will change in later versions but for now it can be any of the FactorData classes (e,g, LinearRelative, not the object LinearRelative()). components (NamedTuple): The named tuple set of distributions that should be mixed, e.g. NamedTuple(hypo1=Normal(0, 2)), hypo2=Uniform(30, 55)). probabilities (List[float]): The probabilities of each distribution (the mix), e.g. [0.4, 0.6]. dims (int): The dimensions of the underlying factor, e.g. for Pose2Pose2 it's 3.
NavAbilitySDK.Point2Point2RangeData
— MethodPoint2Point2RangeData(; range, kwargs...)
Create a Point2->Point2 range factor with a 1D distribution:
- range: The range from the pose to the point, default
Normal(1, 1)
.
NavAbilitySDK.Pose2AprilTag4CornersData
— MethodPose2AprilTag4CornersData(id, corners, homography; K, taglength, kwargs...)
Create a AprilTags factor that directly relates a Pose2 to the information from an AprilTag reading. Corners need to be provided, homography and tag length are defaulted and can be overwritten.
NavAbilitySDK.Pose2Point2BearingRangeData
— MethodPose2Point2BearingRangeData(; bearing, range, kwargs...)
Create a Pose2->Point2 bearing+range factor with 1D distributions:
- bearing: The bearing from the pose to the point, default
Normal(0, 1)
. - range: The range from the pose to the point, default
Normal(1, 1)
.
NavAbilitySDK.Pose2Pose2Data
— MethodPose2Pose2Data(; Z, kwargs...)
Create a Pose2->Pose2 factor with a distribution Z representing the (x,y,theta) relationship between the variables, e.g. FullNormal([1,0,0.3333*π], diagm([0.01,0.01,0.01]))
.
Default value of Z = FullNormal([1,0,0.3333*π], diagm([0.01,0.01,0.01]))
.
NavAbilitySDK.Pose3Pose3Data
— MethodPose3Pose3Data(; Z, kwargs...)
Create a Pose3->Pose3 factor with a distribution Z representing the (x,y,theta) relationship between the variables, e.g. FullNormal([1;zeros(5)], diagm(0.01*ones(6)))
.
Default value of Z = FullNormal(zeros(6), diagm(0.01*ones(6)))
.
NavAbilitySDK.PriorData
— MethodPriorData(; Z, kwargs...)
Create a prior factor for a ContinuousScalar (a.k.a. Pose1) with a distribution Z representing 1D prior information, e.g. Normal(0.0, 0.1)
.
Default value of Z = Normal(0.0, 0.1)
.
NavAbilitySDK.PriorPoint2Data
— MethodPriorPoint2Data(; Z, kwargs...)
Create a prior factor for a Point2 with a distribution Z representing (x,y) prior information, e.g. FullNormal([0.0, 0.0.0], diagm([0.01, 0.01]))
.
Default value of Z = FullNormal([0.0, 0.0], diagm([0.01, 0.01]))
.
NavAbilitySDK.PriorPose2Data
— MethodPriorPose2Data(; Z, kwargs...)
Create a prior factor for a Pose2 with a distribution Z representing (x,y,theta) prior information, e.g. FullNormal([0.0, 0.0, 0.0], diagm([0.01, 0.01, 0.01]))
.
Default value of Z = FullNormal([0.0, 0.0, 0.0], diagm([0.01, 0.01, 0.01]))
.
NavAbilitySDK.PriorPose3Data
— MethodPriorPose3Data(; Z, kwargs...)
Create a prior factor for a Pose3 with a distribution Z representing (x,y,z,i,j,k) prior information, e.g. FullNormal(zeros(6), diagm(0.01*ones(6)))
.
Default value of Z = FullNormal(zeros(6), diagm(0.01*ones(6)))
.
NavAbilitySDK.ScatterAlignPose2Data
— FunctionScatterAlignPose2Data(varType, cloud1, cloud2)
ScatterAlignPose2Data(varType, cloud1, cloud2, bw1)
ScatterAlignPose2Data(varType, cloud1, cloud2, bw1, bw2; mkd1, mkd2, kw_sap, kwargs...)
Returns <:FactorData
NavAbilitySDK._getSolverDataDict
— MethodInternal utility function to create the correct solver data (variable data) given a variable type.
NavAbilitySDK.addVariable
— MethodaddVariable Add a variable to the NavAbility Platform service Example
addVariable(client, context, "x0", NVA.Pose2)
NavAbilitySDK.createDownloadEvent
— MethodcreateDownloadEvent(navAbilityClient, userId, fileId)
Request URLs for data blob download.
Args: navAbilityClient (NavAbilityClient): The NavAbility client. userId (String): The userId with access to the data. fileId (String): The unique file identifier of the data blob.
NavAbilitySDK.createUploadEvent
— FunctioncreateUploadEvent(navAbilityClient, filename, filesize)
createUploadEvent(navAbilityClient, filename, filesize, parts)
Request URLs for data blob upload.
Args: navAbilityClient (NavAbilityClient): The NavAbility client. filename (String): file/blob name. filesize (Int): total number of bytes to upload. parts (Int): Split upload into multiple blob parts, FIXME currently only supports parts=1.
NavAbilitySDK.getStatusLatestEvent
— MethodgetStatusLatestEvent(navAbilityClient, id)
Get the latest status message for a request.
Args: navAbilityClient (NavAbilityClient): The NavAbility client. id (String): The ID of the request that you want the latest status on.
NavAbilitySDK.getStatusMessagesEvent
— MethodgetStatusMessagesEvent(navAbilityClient, id)
Get all the statuses for a request.
Args: navAbilityClient (NavAbilityClient): The NavAbility client. id (String): The ID of the request that you want the statuses on.
NavAbilitySDK.getStatusesLatest
— MethodgetStatusesLatest(navAbilityClient, ids)
Helper function to get a dictionary of all latest statues for a list of results.
Args: navAbilityClient (NavAbilityClient): The NavAbility client. ids (Vector{String}): A list of the IDS that you want statuses on.
NavAbilitySDK.waitForCompletion
— MethodwaitForCompletion(navAbilityClient, requestIds; maxSeconds, expectedStatuses, exceptionMessage)
Wait for the requests to complete, poll until done.
Args: requestIds (List[str]): The request IDs that should be polled. maxSeconds (int, optional): Maximum wait time. Defaults to 60. expectedStatus (str, optional): Expected status message per request. Defaults to "Complete".