base

package
v0.2.48 Latest Latest
Warning

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

Go to latest
Published: May 17, 2023 License: AGPL-3.0 Imports: 14 Imported by: 7

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 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 DoMove

func DoMove(ctx context.Context, move Move, base Base) error

DoMove performs the given move on the given 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.

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
}

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 LocalBase

type LocalBase interface {
	Base
	// Width returns the width of the base in millimeters.
	Width(ctx context.Context) (int, error)
}

A LocalBase represents a physical base of a robot that can report the width of itself.

type Move

type Move struct {
	DistanceMm int
	MmPerSec   float64
	AngleDeg   float64
	DegsPerSec float64
	Extra      map[string]interface{}
}

A Move describes instructions for a robot to spin followed by moving straight.

Directories

Path Synopsis
Package limo implements the AgileX Limo base
Package limo implements the AgileX Limo base
Package boat implements a base for a boat with support for N motors in any position or angle This is an Experimental package
Package boat implements a base for a boat with support for N motors in any position or angle This is an Experimental package
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