server

package
v0.10.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2023 License: AGPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package server contains a gRPC based robot.Robot server implementation.

It should be used by an rpc.Server.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

New constructs a gRPC service server for a Robot.

Types

type Server

type Server struct {
	pb.UnimplementedRobotServiceServer
	// contains filtered or unexported fields
}

Server implements the contract from robot.proto that ultimately satisfies a robot.Robot as a gRPC server.

func (*Server) BlockForOperation

func (s *Server) BlockForOperation(ctx context.Context, req *pb.BlockForOperationRequest) (*pb.BlockForOperationResponse, error)

BlockForOperation blocks for an operation to finish.

func (*Server) CancelOperation

func (s *Server) CancelOperation(ctx context.Context, req *pb.CancelOperationRequest) (*pb.CancelOperationResponse, error)

CancelOperation kills an operations.

func (*Server) Close

func (s *Server) Close()

Close cleanly shuts down the server.

func (*Server) DiscoverComponents

DiscoverComponents takes a list of discovery queries and returns corresponding component configurations.

func (*Server) FrameSystemConfig

func (s *Server) FrameSystemConfig(ctx context.Context, req *pb.FrameSystemConfigRequest) (*pb.FrameSystemConfigResponse, error)

FrameSystemConfig returns the info of each individual part that makes up the frame system.

func (*Server) GetOperations

func (s *Server) GetOperations(ctx context.Context, req *pb.GetOperationsRequest) (*pb.GetOperationsResponse, error)

GetOperations lists all running operations.

func (*Server) GetSessions added in v0.2.5

func (s *Server) GetSessions(ctx context.Context, req *pb.GetSessionsRequest) (*pb.GetSessionsResponse, error)

GetSessions lists all active sessions.

func (*Server) GetStatus

func (s *Server) GetStatus(ctx context.Context, req *pb.GetStatusRequest) (*pb.GetStatusResponse, error)

GetStatus takes a list of resource names and returns their corresponding statuses. If no names are passed in, return all statuses.

func (*Server) ResourceNames

ResourceNames returns the list of resources.

func (*Server) ResourceRPCSubtypes

ResourceRPCSubtypes returns the list of resource RPC APIs. Subtypes is an older name but preserved in proto.

func (*Server) SendSessionHeartbeat added in v0.2.5

SendSessionHeartbeat sends a heartbeat to the given session.

func (*Server) StartSession added in v0.2.5

func (s *Server) StartSession(ctx context.Context, req *pb.StartSessionRequest) (*pb.StartSessionResponse, error)

StartSession creates a new session that expects heartbeats at the given interval. If the interval lapses, any resources that have safety heart monitored methods, where this session was the last caller on the resource, will be stopped.

func (*Server) StopAll

func (s *Server) StopAll(ctx context.Context, req *pb.StopAllRequest) (*pb.StopAllResponse, error)

StopAll will stop all current and outstanding operations for the robot and stops all actuators and movement.

func (*Server) StreamStatus

func (s *Server) StreamStatus(req *pb.StreamStatusRequest, streamServer pb.RobotService_StreamStatusServer) error

StreamStatus periodically sends the status of all statuses requested. An empty request signifies all resources.

func (*Server) TransformPCD added in v0.2.11

func (s *Server) TransformPCD(ctx context.Context, req *pb.TransformPCDRequest) (*pb.TransformPCDResponse, error)

TransformPCD will transform the pointcloud to the desired frame in the robot's frame system. Do not move the robot between the generation of the initial pointcloud and the receipt of the transformed pointcloud because that will make the transformations inaccurate. TODO(RSDK-1123): PCD files have a field called VIEWPOINT which encodes an offset as a translation+quaternion. if we used VIEWPOINT, you only need to query the frame system to get the transform between the source and destination frame. Then, you put that transform as a translation+quaternion in the VIEWPOINT field. You would only change one line in the PCD file, rather than having to decode and then encode every point in the PCD. Would be a considerable speed up.

func (*Server) TransformPose

func (s *Server) TransformPose(ctx context.Context, req *pb.TransformPoseRequest) (*pb.TransformPoseResponse, error)

TransformPose will transform the pose of the requested poseInFrame to the desired frame in the robot's frame system.

Jump to

Keyboard shortcuts

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