Documentation ¶
Overview ¶
Package navigation is the service that allows you to navigate along waypoints.
Package navigation is the service that allows you to navigate along waypoints.
Index ¶
- Constants
- Variables
- func Named(name string) resource.Name
- func NewRPCServiceServer(coll resource.APIResourceCollection[Service]) interface{}
- func PathSliceToProto(paths []*Path) ([]*pb.Path, error)
- func PathToProto(path *Path) (*pb.Path, error)
- type MapType
- type MemoryNavigationStore
- func (store *MemoryNavigationStore) AddWaypoint(ctx context.Context, point *geo.Point) (Waypoint, error)
- func (store *MemoryNavigationStore) Close(ctx context.Context) error
- func (store *MemoryNavigationStore) NextWaypoint(ctx context.Context) (Waypoint, error)
- func (store *MemoryNavigationStore) RemoveWaypoint(ctx context.Context, id primitive.ObjectID) error
- func (store *MemoryNavigationStore) WaypointVisited(ctx context.Context, id primitive.ObjectID) error
- func (store *MemoryNavigationStore) Waypoints(ctx context.Context) ([]Waypoint, error)
- type Mode
- type MongoDBNavigationStore
- func (store *MongoDBNavigationStore) AddWaypoint(ctx context.Context, point *geo.Point) (Waypoint, error)
- func (store *MongoDBNavigationStore) Close(ctx context.Context) error
- func (store *MongoDBNavigationStore) NextWaypoint(ctx context.Context) (Waypoint, error)
- func (store *MongoDBNavigationStore) RemoveWaypoint(ctx context.Context, id primitive.ObjectID) error
- func (store *MongoDBNavigationStore) WaypointVisited(ctx context.Context, id primitive.ObjectID) error
- func (store *MongoDBNavigationStore) Waypoints(ctx context.Context) ([]Waypoint, error)
- type NavStore
- type Path
- type Service
- type StoreConfig
- type Waypoint
Constants ¶
const ( ModeManual = Mode(iota) ModeWaypoint ModeExplore NoMap = MapType(iota) GPSMap )
The set of known modes.
const ( // StoreTypeUnset represents when a store type was not set. StoreTypeUnset = "" // StoreTypeMemory is the constant for the memory store type. StoreTypeMemory = "memory" // StoreTypeMongoDB is the constant for the mongodb store type. StoreTypeMongoDB = "mongodb" )
const SubtypeName = "navigation"
SubtypeName is the name of the type of service.
Variables ¶
var ()
Database and collection names used by the MongoDBNavigationStore.
var API = resource.APINamespaceRDK.WithServiceType(SubtypeName)
API is a variable that identifies the navigation service resource API.
Functions ¶
func Named ¶ added in v0.0.8
Named is a helper for getting the named navigation service's typed resource name.
func NewRPCServiceServer ¶ added in v0.2.36
func NewRPCServiceServer(coll resource.APIResourceCollection[Service]) interface{}
NewRPCServiceServer constructs a navigation gRPC service server. It is intentionally untyped to prevent use outside of tests.
func PathSliceToProto ¶ added in v0.12.0
PathSliceToProto converts a slice of Path into an equivalent Protobuf message.
Types ¶
type MapType ¶ added in v0.11.0
type MapType uint8
MapType describes what map the navigation service is operating on.
func StringToMapType ¶ added in v0.11.0
StringToMapType converts an input string into one of the valid map type if possible.
type MemoryNavigationStore ¶ added in v0.1.0
type MemoryNavigationStore struct {
// contains filtered or unexported fields
}
MemoryNavigationStore holds the waypoints for the navigation service.
func NewMemoryNavigationStore ¶ added in v0.1.0
func NewMemoryNavigationStore() *MemoryNavigationStore
NewMemoryNavigationStore returns and empty MemoryNavigationStore.
func (*MemoryNavigationStore) AddWaypoint ¶ added in v0.1.0
func (store *MemoryNavigationStore) AddWaypoint(ctx context.Context, point *geo.Point) (Waypoint, error)
AddWaypoint adds a waypoint to the MemoryNavigationStore.
func (*MemoryNavigationStore) Close ¶ added in v0.2.36
func (store *MemoryNavigationStore) Close(ctx context.Context) error
Close does nothing.
func (*MemoryNavigationStore) NextWaypoint ¶ added in v0.1.0
func (store *MemoryNavigationStore) NextWaypoint(ctx context.Context) (Waypoint, error)
NextWaypoint gets the next waypoint that has not been visited.
func (*MemoryNavigationStore) RemoveWaypoint ¶ added in v0.1.0
func (store *MemoryNavigationStore) RemoveWaypoint(ctx context.Context, id primitive.ObjectID) error
RemoveWaypoint removes a waypoint from the MemoryNavigationStore.
func (*MemoryNavigationStore) WaypointVisited ¶ added in v0.1.0
func (store *MemoryNavigationStore) WaypointVisited(ctx context.Context, id primitive.ObjectID) error
WaypointVisited sets that a waypoint has been visited.
type MongoDBNavigationStore ¶ added in v0.1.0
type MongoDBNavigationStore struct {
// contains filtered or unexported fields
}
MongoDBNavigationStore holds the mongodb client and waypoints collection.
func NewMongoDBNavigationStore ¶ added in v0.1.0
func NewMongoDBNavigationStore(ctx context.Context, config map[string]interface{}) (*MongoDBNavigationStore, error)
NewMongoDBNavigationStore creates a new navigation store using MongoDB.
func (*MongoDBNavigationStore) AddWaypoint ¶ added in v0.1.0
func (store *MongoDBNavigationStore) AddWaypoint(ctx context.Context, point *geo.Point) (Waypoint, error)
AddWaypoint adds a waypoint to the MongoDBNavigationStore.
func (*MongoDBNavigationStore) Close ¶ added in v0.1.0
func (store *MongoDBNavigationStore) Close(ctx context.Context) error
Close closes the connection with the mongodb client.
func (*MongoDBNavigationStore) NextWaypoint ¶ added in v0.1.0
func (store *MongoDBNavigationStore) NextWaypoint(ctx context.Context) (Waypoint, error)
NextWaypoint gets the next waypoint that has not been visited.
func (*MongoDBNavigationStore) RemoveWaypoint ¶ added in v0.1.0
func (store *MongoDBNavigationStore) RemoveWaypoint(ctx context.Context, id primitive.ObjectID) error
RemoveWaypoint removes a waypoint from the MongoDBNavigationStore.
func (*MongoDBNavigationStore) WaypointVisited ¶ added in v0.1.0
func (store *MongoDBNavigationStore) WaypointVisited(ctx context.Context, id primitive.ObjectID) error
WaypointVisited sets that a waypoint has been visited.
type NavStore ¶ added in v0.1.0
type NavStore interface {}
NavStore handles the waypoints for a navigation service.
func NewStoreFromConfig ¶ added in v0.10.0
func NewStoreFromConfig(ctx context.Context, conf StoreConfig) (NavStore, error)
NewStoreFromConfig builds a NavStore from the provided StoreConfig and returns it.
type Path ¶ added in v0.12.0
type Path struct {
// contains filtered or unexported fields
}
Path describes a series of geo points the robot will travel through.
func ProtoSliceToPaths ¶ added in v0.12.0
ProtoSliceToPaths converts a slice of Path Protobuf messages into an equivalent struct.
func ProtoToPath ¶ added in v0.12.0
ProtoToPath converts the Path Protobuf message into an equivalent struct.
func (*Path) DestinationWaypointID ¶ added in v0.12.0
DestinationWaypointID returns the ID of the Path.
type Service ¶
type Service interface { resource.Resource Mode(ctx context.Context, extra map[string]interface{}) (Mode, error) SetMode(ctx context.Context, mode Mode, extra map[string]interface{}) error Location(ctx context.Context, extra map[string]interface{}) (*spatialmath.GeoPose, error) // Waypoint Waypoints(ctx context.Context, extra map[string]interface{}) ([]Waypoint, error) AddWaypoint(ctx context.Context, point *geo.Point, extra map[string]interface{}) error RemoveWaypoint(ctx context.Context, id primitive.ObjectID, extra map[string]interface{}) error Obstacles(ctx context.Context, extra map[string]interface{}) ([]*spatialmath.GeoObstacle, error) Paths(ctx context.Context, extra map[string]interface{}) ([]*Path, error) }
A Service controls the navigation for a robot.
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) LatLongApproxEqual ¶ added in v0.10.0
LatLongApproxEqual returns true if the lat / long of the waypoint is within a small epsilon of the parameter.
Directories ¶
Path | Synopsis |
---|---|
Package builtin implements a navigation service.
|
Package builtin implements a navigation service. |
Package register registers all relevant navigation models and API specific functions.
|
Package register registers all relevant navigation models and API specific functions. |