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.Uniform
NavAbilitySDK.ZInferenceType
NavAbilitySDK.LinearRelativeData
NavAbilitySDK.MixtureData
NavAbilitySDK.Point2Point2RangeData
NavAbilitySDK.Pose2AprilTag4CornersData
NavAbilitySDK.Pose2Point2BearingRangeData
NavAbilitySDK.Pose2Pose2Data
NavAbilitySDK.PriorData
NavAbilitySDK.PriorPoint2Data
NavAbilitySDK.PriorPose2Data
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.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.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.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".