diff --git a/protos/mocap/mocap.proto b/protos/mocap/mocap.proto index 5b721f1dd..d123fa6d6 100644 --- a/protos/mocap/mocap.proto +++ b/protos/mocap/mocap.proto @@ -15,6 +15,8 @@ option java_outer_classname = "MocapProto"; service MocapService { // Send Global position/attitude estimate from a vision source. rpc SetVisionPositionEstimate(SetVisionPositionEstimateRequest) returns(SetVisionPositionEstimateResponse) { option (mavsdk.options.async_type) = SYNC; } + // Send Global speed estimate from a vision source. + rpc SetVisionSpeedEstimate(SetVisionSpeedEstimateRequest) returns(SetVisionSpeedEstimateResponse) { option (mavsdk.options.async_type) = SYNC; } // Send motion capture attitude and position. rpc SetAttitudePositionMocap(SetAttitudePositionMocapRequest) returns(SetAttitudePositionMocapResponse) { option (mavsdk.options.async_type) = SYNC; } // Send odometry information with an external interface. @@ -28,6 +30,13 @@ message SetVisionPositionEstimateResponse { MocapResult mocap_result = 1; } +message SetVisionSpeedEstimateRequest { + VisionSpeedEstimate vision_speed_estimate = 1; // The vision speed estimate +} +message SetVisionSpeedEstimateResponse { + MocapResult mocap_result = 1; +} + message SetAttitudePositionMocapRequest { AttitudePositionMocap attitude_position_mocap = 1; // The attitude and position data } @@ -63,6 +72,13 @@ message SpeedBody { float z_m_s = 3; // Velocity in Z in metres/second. } +// Speed type, represented in NED (North East Down) coordinates. +message SpeedNed { + float north_m_s = 1; // Velocity North in metres/second. + float east_m_s = 2; // Velocity East in metres/second. + float down_m_s = 3; // Velocity Down in metres/second. +} + // Angular velocity type message AngularVelocityBody { float roll_rad_s = 1; // Roll angular velocity in radians/second. @@ -105,6 +121,13 @@ message VisionPositionEstimate { Covariance pose_covariance = 4; // Pose cross-covariance matrix. } +// Global speed estimate from a vision source. +message VisionSpeedEstimate { + uint64 time_usec = 1; // Timestamp UNIX Epoch time (0 to use Backend timestamp) + SpeedNed speed_ned = 2; // Global speed (m/s) + Covariance speed_covariance = 3; // Linear velocity cross-covariance matrix. +} + // Motion capture attitude and position message AttitudePositionMocap { uint64 time_usec = 1; // PositionBody frame timestamp UNIX Epoch time (0 to use Backend timestamp)