base

package
v0.2.50 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2023 License: AGPL-3.0 Imports: 16 Imported by: 6

Documentation

Overview

Package base defines the base that a robot uses to move around.

Package base contains a gRPC based base client

Package base contains an enum representing optional base features

Package base contains a gRPC based arm service server.

Index

Constants

View Source
const SubtypeName = "base"

SubtypeName is a constant that identifies the component resource API string "base".

Variables

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

API is a variable that identifies the component resource API.

Functions

func CollisionGeometry added in v0.2.35

func CollisionGeometry(cfg *referenceframe.LinkConfig) (spatialmath.Geometry, error)

CollisionGeometry returns a spherical geometry that will encompass the base if it were to rotate the geometry specified in the config 360 degrees about the Z axis of the reference frame specified in the config.

func CreateStatus

func CreateStatus(ctx context.Context, b Base) (*commonpb.ActuatorStatus, error)

CreateStatus creates a status from the base.

func Named

func Named(name string) resource.Name

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

func NamesFromRobot

func NamesFromRobot(r robot.Robot) []string

NamesFromRobot is a helper for getting all base names from the given Robot.

func NewRPCServiceServer added in v0.2.36

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

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

func PropertiesToProtoResponse added in v0.2.50

func PropertiesToProtoResponse(
	features Properties,
) (*pb.GetPropertiesResponse, error)

PropertiesToProtoResponse takes a map of features to struct and converts it to a GetPropertiesResponse.

Types

type Base

type Base interface {
	resource.Resource
	resource.Actuator

	// MoveStraight moves the robot straight a given distance at a given speed.
	// If a distance or speed of zero is given, the base will stop.
	// This method blocks until completed or cancelled
	MoveStraight(ctx context.Context, distanceMm int, mmPerSec float64, extra map[string]interface{}) error

	// Spin spins the robot by a given angle in degrees at a given speed.
	// If a speed of 0 the base will stop.
	// This method blocks until completed or cancelled
	Spin(ctx context.Context, angleDeg, degsPerSec float64, extra map[string]interface{}) error

	SetPower(ctx context.Context, linear, angular r3.Vector, extra map[string]interface{}) error

	// linear is in mmPerSec
	// angular is in degsPerSec
	SetVelocity(ctx context.Context, linear, angular r3.Vector, extra map[string]interface{}) error

	Properties(ctx context.Context, extra map[string]interface{}) (Properties, error)
}

A Base represents a physical base of a robot.

func FromDependencies

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

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

func FromRobot

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

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

func NewClientFromConn

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

NewClientFromConn constructs a new Client from connection passed in.

type KinematicBase added in v0.2.28

type KinematicBase interface {
	Base
	referenceframe.ModelFramer
	referenceframe.InputEnabled
}

KinematicBase is an interface for Bases that also satisfy the ModelFramer and InputEnabled interfaces.

type KinematicWrappable added in v0.2.50

type KinematicWrappable interface {
	WrapWithKinematics(context.Context, slam.Service) (KinematicBase, error)
}

KinematicWrappable describes a base that can be wrapped with a kinematic model.

type Properties added in v0.2.50

type Properties struct {
	TurningRadiusMeters float64
	WidthMeters         float64
}

Properties is a structure representing features of a base.

func ProtoFeaturesToProperties added in v0.2.50

func ProtoFeaturesToProperties(resp *pb.GetPropertiesResponse) Properties

ProtoFeaturesToProperties takes a GetPropertiesResponse and returns an equivalent Properties struct.

Directories

Path Synopsis
Package limo implements the AgileX Limo base
Package limo implements the AgileX Limo base
Package fake implements a fake base.
Package fake implements a fake base.
Package register registers all relevant bases
Package register registers all relevant bases
Package wheeled implements some bases, like a wheeled base.
Package wheeled implements some bases, like a wheeled base.

Jump to

Keyboard shortcuts

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