slam

package
v0.18.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2024 License: AGPL-3.0 Imports: 20 Imported by: 12

Documentation

Overview

Package slam implements simultaneous localization and mapping. This is an Experimental package.

Index

Constants

View Source
const (
	SubtypeName       = "slam"
	MappingModeNewMap = MappingMode(iota)
	MappingModeLocalizationOnly
	MappingModeUpdateExistingMap
)

SubtypeName is the name of the type of service.

Variables

View Source
var API = resource.APINamespaceRDK.WithServiceType(SubtypeName)

API is a variable that identifies the slam resource API.

Functions

func HelperConcatenateChunksToFull added in v0.2.35

func HelperConcatenateChunksToFull(f func() ([]byte, error)) ([]byte, error)

HelperConcatenateChunksToFull concatenates the chunks from a streamed grpc endpoint.

func InternalStateFull added in v0.8.0

func InternalStateFull(ctx context.Context, slamSvc Service) ([]byte, error)

InternalStateFull concatenates the streaming responses from InternalState into the internal serialized state of the slam algorithm.

func Limits added in v0.8.0

func Limits(ctx context.Context, svc Service) ([]referenceframe.Limit, error)

Limits returns the bounds of the slam map as a list of referenceframe.Limits.

func Named added in v0.0.8

func Named(name string) resource.Name

Named is a helper for getting the named service's typed resource name.

func NewRPCServiceServer added in v0.2.36

func NewRPCServiceServer(coll resource.APIResourceCollection[Service]) interface{}

NewRPCServiceServer constructs a the slam gRPC service server. It is intentionally untyped to prevent use outside of tests.

func PointCloudMapFull added in v0.8.0

func PointCloudMapFull(ctx context.Context, slamSvc Service) ([]byte, error)

PointCloudMapFull concatenates the streaming responses from PointCloudMap into a full point cloud.

Types

type MappingMode added in v0.18.0

type MappingMode uint8

MappingMode describes what mapping mode the slam service is in, including creating a new map, localizing on an existing map or updating an existing map.

type Properties added in v0.18.0

type Properties struct {
	CloudSlam   bool
	MappingMode MappingMode
}

Properties returns various information regarding the current slam service, including whether the slam process is running in the cloud and its mapping mode.

type Service

type Service interface {
	resource.Resource
	Position(ctx context.Context) (spatialmath.Pose, string, error)
	PointCloudMap(ctx context.Context) (func() ([]byte, error), error)
	InternalState(ctx context.Context) (func() ([]byte, error), error)
	LatestMapInfo(ctx context.Context) (time.Time, error)
	Properties(ctx context.Context) (Properties, error)
}

Service describes the functions that are available to the service.

func FromDependencies added in v0.18.0

func FromDependencies(deps resource.Dependencies, name string) (Service, error)

FromDependencies is a helper for getting the named SLAM service from a collection of dependencies.

func FromRobot added in v0.2.32

func FromRobot(r robot.Robot, name string) (Service, error)

FromRobot is a helper for getting the named SLAM service from the given Robot.

func NewClientFromConn

func NewClientFromConn(
	ctx context.Context,
	conn rpc.ClientConn,
	remoteName string,
	name resource.Name,
	logger logging.Logger,
) (Service, error)

NewClientFromConn constructs a new Client from the connection passed in.

Directories

Path Synopsis
Package fake implements a fake slam service
Package fake implements a fake slam service
Package grpchelper implements helper functions to be used with slam service grpc clients
Package grpchelper implements helper functions to be used with slam service grpc clients
internal
testhelper
Package testhelper implements a slam service definition with additional exported functions for the purpose of testing
Package testhelper implements a slam service definition with additional exported functions for the purpose of testing
Package register registers all relevant slam models and also API specific functions
Package register registers all relevant slam models and also API specific functions

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL