navigation

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2022 License: AGPL-3.0 Imports: 29 Imported by: 1

Documentation

Overview

Package navigation contains a navigation service, along with a gRPC server and client

Package navigation implements the navigation service.

Index

Constants

View Source
const (
	ModeManual = Mode(iota)
	ModeWaypoint
)

The set of known modes.

View Source
const SubtypeName = resource.SubtypeName("navigation")

SubtypeName is the name of the type of service.

Variables

View Source
var (
	MongoDBNavStoreDBName            = "navigation"
	MongoDBNavStoreWaypointsCollName = "waypoints"
)

Database and collection names used by the mongoDBNavigationStore.

Subtype is a constant that identifies the navigation service resource subtype.

Functions

func Named added in v0.0.8

func Named(name string) resource.Name

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

func NewServer

NewServer constructs a framesystem gRPC service server.

func WrapWithReconfigurable

func WrapWithReconfigurable(s interface{}) (resource.Reconfigurable, error)

WrapWithReconfigurable wraps a navigation service as a Reconfigurable.

Types

type Config

type Config struct {
	Store              StoreConfig `json:"store"`
	BaseName           string      `json:"base"`
	MovementSensorName string      `json:"movement_sensor"`

	DegPerSecDefault float64 `json:"deg_per_sec"`
	MMPerSecDefault  float64 `json:"mm_per_sec"`
}

Config describes how to configure the service.

func (*Config) Validate

func (config *Config) Validate(path string) error

Validate ensures all parts of the config are valid.

type Mode

type Mode uint8

Mode describes what mode to operate the service in.

type Service

type Service interface {
	GetMode(ctx context.Context) (Mode, error)
	SetMode(ctx context.Context, mode Mode) error

	GetLocation(ctx context.Context) (*geo.Point, error)

	// Waypoint
	GetWaypoints(ctx context.Context) ([]Waypoint, error)
	AddWaypoint(ctx context.Context, point *geo.Point) error
	RemoveWaypoint(ctx context.Context, id primitive.ObjectID) error
}

A Service controls the navigation for a robot.

func New

func New(ctx context.Context, r robot.Robot, config config.Service, logger golog.Logger) (Service, error)

New returns a new navigation service for the given robot.

func NewClientFromConn

func NewClientFromConn(ctx context.Context, conn rpc.ClientConn, name string, logger golog.Logger) Service

NewClientFromConn constructs a new Client from connection passed in.

type StoreConfig

type StoreConfig struct {
	Type   storeType              `json:"type"`
	Config map[string]interface{} `json:"config"`
}

StoreConfig describes how to configure data storage.

func (*StoreConfig) Validate

func (config *StoreConfig) Validate(path string) error

Validate ensures all parts of the config are valid.

type Waypoint

type Waypoint struct {
	ID      primitive.ObjectID `bson:"_id"`
	Visited bool               `bson:"visited"`
	Order   int                `bson:"order"`
	Lat     float64            `bson:"latitude"`
	Long    float64            `bson:"longitude"`
}

A Waypoint designates a location within a path to navigate to.

func (*Waypoint) ToPoint

func (wp *Waypoint) ToPoint() *geo.Point

ToPoint converts the waypoint to a geo.Point.

Jump to

Keyboard shortcuts

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