From 56af506f978e8707842a562d9bb5c28368fbc7ae Mon Sep 17 00:00:00 2001 From: Wouter Jansen Date: Fri, 2 Aug 2024 11:07:23 +0200 Subject: [PATCH] Added computervisionstate to python and matlab API clients --- Matlab/AirSimClient.m | 26 ++++++++++++++++++++ Matlab/Cosys-AirSim Matlab API Client.mltbx | Bin 7932641 -> 7907591 bytes Matlab/Cosys-AirSim Matlab API Client.prj | 3 +-- PythonClient/cosysairsim/__init__.py | 2 +- PythonClient/cosysairsim/client.py | 25 ++++++++++++++++--- PythonClient/cosysairsim/types.py | 4 +++ PythonClient/pyproject.toml | 2 +- 7 files changed, 55 insertions(+), 7 deletions(-) diff --git a/Matlab/AirSimClient.m b/Matlab/AirSimClient.m index f3ea777d3..be594a9df 100644 --- a/Matlab/AirSimClient.m +++ b/Matlab/AirSimClient.m @@ -1126,6 +1126,32 @@ function simSetKinematics(obj, position, orientation, linear_velocity, angular_v CarState.handbrake = vehicleStateAirSim{"handbrake"}; end + function [ComputerVisionState] = getComputerVisionState(obj) + % GETCOMPUTERVISIONSTATE Get the current state of a computerVision vehicle + % + % Description: + % Retrieves and parses the current state of a computer vision vehicle from the AirSim API. + % + % Outputs: + % ComputerVisionState - Struct containing various state information: + % - kinematics_estimated: Estimated kinematic state including position, orientation, velocities, + % and accelerations. + % - timestamp: Timestamp of the state. + + vehicleStateAirSim = obj.rpc_client.call("getComputerVisionState", obj.vehicle_name); + + kinematicData = vehicleStateAirSim{"kinematics_estimated"}; + kinematicsState.position = obj.nedToRightHandCoordinates(struct2array(struct(kinematicData{"position"}))); + kinematicsState.orientation = quatinv(struct2array(struct(kinematicData{"orientation"}))); + kinematicsState.linear_velocity = obj.nedToRightHandCoordinates(struct2array(struct(kinematicData{"linear_velocity"}))); + kinematicsState.angular_velocity = obj.nedToRightHandCoordinates(struct2array(struct(kinematicData{"angular_velocity"}))); + kinematicsState.linear_acceleration = obj.nedToRightHandCoordinates(struct2array(struct(kinematicData{"linear_acceleration"}))); + kinematicsState.angular_acceleration = obj.nedToRightHandCoordinates(struct2array(struct(kinematicData{"angular_acceleration"}))); + ComputerVisionState.kinematics_estimated = kinematicsState; + + ComputerVisionState.timestamp = double(double(vehicleStateAirSim{"timestamp"}))/1e9; + end + function reset(obj) % RESET Reset the simulation environment diff --git a/Matlab/Cosys-AirSim Matlab API Client.mltbx b/Matlab/Cosys-AirSim Matlab API Client.mltbx index 967f54f28560a8f4fe460e7716b424a93a530fe8..22714c4bbe965a921745a1e5a9dfc36bc9af4b7e 100644 GIT binary patch delta 29987 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

JNe?&W=H6+w*LU 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 delta 55159 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 diff --git a/Matlab/Cosys-AirSim Matlab API Client.prj b/Matlab/Cosys-AirSim Matlab API Client.prj index 0454e954a..f4110c515 100644 --- a/Matlab/Cosys-AirSim Matlab API Client.prj +++ b/Matlab/Cosys-AirSim Matlab API Client.prj @@ -8,7 +8,7 @@ This a client implementation of the RPC API for Matlab for the Cosys-AirSim simulation framework. A main class AirSimClient is available which implements all API calls. Do note that at this point not all functions have been tested and most function documentation was auto-generated. This is still a WIP client. - 3.0.0.2 + 3.0.1.0 ${PROJECT_ROOT}\Cosys-AirSim Matlab API Client.mltbx Aerospace Toolbox @@ -105,7 +105,6 @@ Do note that at this point not all functions have been tested and most function ${PROJECT_ROOT}\AirSimCameraTypes.m - ${PROJECT_ROOT}\AirSimClient.asv ${PROJECT_ROOT}\AirSimClient.m ${PROJECT_ROOT}\AirSimDrivetrainTypes.m ${PROJECT_ROOT}\AirSimGenerateColorMap.m diff --git a/PythonClient/cosysairsim/__init__.py b/PythonClient/cosysairsim/__init__.py index fd4decf39..9110ef4b1 100644 --- a/PythonClient/cosysairsim/__init__.py +++ b/PythonClient/cosysairsim/__init__.py @@ -2,4 +2,4 @@ from .utils import * from .types import * -__version__ = "3.0.0" +__version__ = "3.0.1" diff --git a/PythonClient/cosysairsim/client.py b/PythonClient/cosysairsim/client.py index 805e12636..b485dd7a9 100644 --- a/PythonClient/cosysairsim/client.py +++ b/PythonClient/cosysairsim/client.py @@ -2268,7 +2268,7 @@ def getMultirotorState(self, vehicle_name=''): vehicle_name (str, optional): Vehicle to get the state of Returns: - MultirotorState: + MultirotorState: Struct containing multirotor state values """ return MultirotorState.from_msgpack(self.client.call('getMultirotorState', vehicle_name)) @@ -2313,7 +2313,7 @@ def getCarState(self, vehicle_name=''): vehicle_name (str, optional): Name of vehicle Returns: - CarState: + CarState: Struct containing car state values """ state_raw = self.client.call('getCarState', vehicle_name) return CarState.from_msgpack(state_raw) @@ -2324,7 +2324,26 @@ def getCarControls(self, vehicle_name=''): vehicle_name (str, optional): Name of vehicle Returns: - CarControls: + CarControls: Struct containing control values """ controls_raw = self.client.call('getCarControls', vehicle_name) return CarControls.from_msgpack(controls_raw) + + +#------------------------------ ComputerVision APIs --------------------------------------- +class ComputerVisionClient(VehicleClient, object): + def __init__(self, ip="", port=41451, timeout_value=3600): + super(ComputerVisionClient, self).__init__(ip, port, timeout_value) + + def getComputerVisionState(self, vehicle_name=''): + """ + The position inside the returned ComputerVisionState is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Name of vehicle + + Returns: + ComputerVisionState: Struct containing computer vision state values + """ + state_raw = self.client.call('getComputerVisionState', vehicle_name) + return ComputerVisionState.from_msgpack(state_raw) \ No newline at end of file diff --git a/PythonClient/cosysairsim/types.py b/PythonClient/cosysairsim/types.py index e6dec8f6c..a33c21b40 100644 --- a/PythonClient/cosysairsim/types.py +++ b/PythonClient/cosysairsim/types.py @@ -407,6 +407,10 @@ class EnvironmentState(MsgpackMixin): temperature = 0.0 air_density = 0.0 +class ComputerVisionState(MsgpackMixin): + kinematics_estimated = KinematicsState() + timestamp = np.uint64(0) + class CarState(MsgpackMixin): speed = 0.0 gear = 0 diff --git a/PythonClient/pyproject.toml b/PythonClient/pyproject.toml index c64539f36..974dec520 100644 --- a/PythonClient/pyproject.toml +++ b/PythonClient/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "cosysairsim" -version = "3.0.0" +version = "3.0.1" description = "This package contains simple Python client for Cosys-AirSim. This integrates most API functions over RPC." readme = {file = "README.md", content-type = "text/markdown"} authors = [{ name = "Shital Shah", email = "shitals@microsoft.com" },