// Copyright (c) 2022 Boston Dynamics, Inc.  All rights reserved.
//
// Downloading, reproducing, distributing or otherwise using the SDK Software
// is subject to the terms and conditions of the Boston Dynamics Software
// Development Kit License (20191101-BDSDK-SL).

syntax = "proto3";

package bosdyn.api;

option java_outer_classname = "RobotStateServiceProto";

import "bosdyn/api/robot_state.proto";

// The robot state service tracks all information about the measured and computed states of the robot at the current time.
service RobotStateService {
    // Get robot state information (such as kinematic state, power state, or faults).
    rpc GetRobotState(RobotStateRequest) returns (RobotStateResponse) {}

    // Get different robot metrics and parameters from the robot.
    rpc GetRobotMetrics(RobotMetricsRequest) returns (RobotMetricsResponse) {}

    // Get the hardware configuration of the robot, which describes the robot skeleton and urdf.
    rpc GetRobotHardwareConfiguration(RobotHardwareConfigurationRequest)
        returns (RobotHardwareConfigurationResponse) {}

    // Returns the OBJ file for a specifc robot link. Intended to be called after
    // GetRobotHardwareConfiguration, using the link names returned by that call.
    rpc GetRobotLinkModel(RobotLinkModelRequest) returns (RobotLinkModelResponse) {}
}
