Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ build
osi
.project
doc/html
doc/latex
doc/latex
osi_version.proto
version.py
51 changes: 29 additions & 22 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
cmake_minimum_required(VERSION 3.7)

# set name and version of the project
project(open_simulation_interface)
set(VERSION_MAJOR 2)
set(VERSION_MINOR 1)
set(VERSION_PATCH 1)

# read the version number from the file "VERSION"
file(STRINGS "VERSION" VERSION_CONTENTS)
foreach(LINE ${VERSION_CONTENTS})
string(REGEX REPLACE " |\t" "" LINE ${LINE})
string(REGEX MATCH "^[^=]+" VERSION_NAME ${LINE})
string(REPLACE "${VERSION_NAME}=" "" VERSION_VALUE ${LINE})
set(${VERSION_NAME} "${VERSION_VALUE}")
endforeach()

configure_file(osi_version.proto.in ${CMAKE_CURRENT_SOURCE_DIR}/osi_version.proto)

find_package(Protobuf 2.6.1 REQUIRED)

set(OSI_PROTO_FILES
osi_version.proto
osi_common.proto
osi_datarecording.proto
osi_detectedlandmark.proto
Expand Down Expand Up @@ -77,22 +84,22 @@ if(NOT DOXYGEN_FOUND)
message(WARNING "Doxygen could not be found.")

else()
if(NOT EXISTS ${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py)
message(WARNING "${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py could not be found.")

else()
set(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/doxygen_config.cmake.in)
set(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)

configure_file(${doxyfile_in} ${doxyfile} @ONLY)

ADD_CUSTOM_TARGET(api_doc ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(NOT EXISTS ${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py)
if(NOT EXISTS ${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py)
message(WARNING "${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py could not be found.")

else()
set(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/doxygen_config.cmake.in)
set(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)

configure_file(${doxyfile_in} ${doxyfile} @ONLY)

ADD_CUSTOM_TARGET(api_doc ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(NOT EXISTS ${FILTER_PROTO2CPP_PY_PATH}/proto2cpp.py)
endif(NOT DOXYGEN_FOUND)
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ sensor model component, i.e. it takes a SensorData message as input and returns
Specific errors should be handled as follows:
- Ghost objects / false positive:
An additional SensorDataObject is added to the list of objects in SensorData.object
with SensorDataObject.model_internal_object.ground_truth_type set to kTypeGhost.
with SensorDataObject.model_internal_object.ground_truth_type set to kTypeGhost.
- False negative:
The object is marked as not seen by the sensor by setting the property
SensorDataObject.model_internal_object.is_seen to false. The implementation
of field-of-view calculation modules should respect this flag and never reset
an object marked as not-seen to seen.
SensorDataObject.model_internal_object.is_seen to false. The implementation
of field-of-view calculation modules should respect this flag and never reset
an object marked as not-seen to seen.


Versioning
Expand Down
3 changes: 3 additions & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
VERSION_MAJOR = 2
VERSION_MINOR = 2
VERSION_PATCH = 0
82 changes: 30 additions & 52 deletions osi_common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,6 @@ option optimize_for = SPEED;

package osi;

//
// \brief The interface version number.
//
// The field containing the version number. Should be left on default, not to be modified by sender.
// Increments will happen as part of changes to the whole interface.
//
message InterfaceVersion
{
// Major version number.
//
optional uint32 major = 1 [default = 2];

// Minor version number.
//
optional uint32 minor = 2 [default = 1];

// Patch version number.
//
optional uint32 patch = 3 [default = 1];
}

//
// \brief A cartesian 3D vector for positions, velocities or accelerations.
Expand All @@ -33,31 +13,31 @@ message InterfaceVersion
message Vector3d
{
// The x coordinate.
//
//
optional double x = 1;

// The y coordinate.
//
//
optional double y = 2;

// The z coordinate.
//
//
optional double z = 3;
}

//
// \brief A cartesian 2D vector for positions, velocities or accelerations.
// \brief A cartesian 2D vector for positions, velocities or accelerations.
//
// Units are [m] for positions, [m/s] for velocities and [m/s^2] for accelerations.
//
message Vector2d
{
// The x coordinate.
//
//
optional double x = 1;

// The y coordinate.
//
//
optional double y = 2;
}

Expand All @@ -70,11 +50,11 @@ message Vector2d
message Timestamp
{
// The number of seconds since start of the simulation / system / vehicle. Unit: [s].
//
//
optional int64 seconds = 1;

// The number of nanoseconds since the start of the last second. Unit: [ns].
//
//
optional int32 nanos = 2;
}

Expand All @@ -86,15 +66,15 @@ message Timestamp
message Dimension3d
{
// The width of the bounding box.
//
//
optional double width = 1;
// The length of the bounding box.
//
//
optional double length = 2;
// The height of the bounding box.
//
//
optional double height = 3;
}

Expand Down Expand Up @@ -123,15 +103,15 @@ message Dimension3d
message Orientation3d
{
// The roll angle/rate/acceleration.
//
//
optional double roll = 1;
// The pitch angle/rate/acceleration.
//
//
optional double pitch = 2;
// The yaw angle/rate/acceleration.
//
//
optional double yaw = 3;
}

Expand All @@ -146,7 +126,7 @@ message Orientation3d
message Identifier
{
// The identifier's value.
//
//
optional uint64 value = 1;
}

Expand All @@ -158,11 +138,11 @@ message Identifier
message MountingPosition
{
// Offset position relative to specified reference coordinate system.
//
//
optional Vector3d position = 1;

// Orientation offset relative to specified reference coordinate system.
//
//
optional Orientation3d orientation = 2;
}

Expand All @@ -175,15 +155,15 @@ message MountingPosition
message Polar3d
{
// The radial distance.
//
//
optional double distance = 1;

// The azimuth (horizontal) angle.
//
//
optional double azimuth = 2;

// The elevation (vertical) angle.
//
//
optional double elevation = 3;
}

Expand All @@ -195,15 +175,15 @@ message Polar3d
message BaseStationary
{
// The 3D dimension of the landmark (bounding box):
//
//
optional Dimension3d dimension = 1;

// The reference point for position and rotation (orientation): center (x, y, z) of bounding box.
//
//
optional Vector3d position = 2;

// The relative orientation of the landmark w.r.t its parent frame.
//
//
optional Orientation3d orientation = 3;

// Usage as ground truth:
Expand All @@ -230,29 +210,27 @@ message BaseStationary
message BaseMoving
{
// The 3D dimension of the object (bounding box).
//
//
optional Dimension3d dimension = 1;

// The reference point for position and rotation (orientation): center (x, y, z) of bounding box.
//
//
optional Vector3d position = 2;

// The relative orientation of the object w.r.t its parent frame.
//
optional Orientation3d orientation = 3;

// The relative velocity of the object w.r.t. its parent frame and parent velocity.
// Obviously, the velocity becomes global/absolute if the parent frame does not move.
//
optional Vector3d velocity = 4;

// The relative acceleration of the object w.r.t. its parent frame and parent acceleration.
// Obviously, the acceleration becomes global/absolute if the parent frame is not accelerating.
//
optional Vector3d acceleration = 5;

// The relative orientation rate of the object w.r.t. its parent frame and parent orientation rate.
// Obviously, the orientation rate becomes global/absolute if the parent frame is not rotating.
//
optional Orientation3d orientation_rate = 6;

// Usage as ground truth:
Expand Down
6 changes: 3 additions & 3 deletions osi_datarecording.proto
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ package osi;
message SensorDataSeries
{
// List of sensor data messages for subsequent timesteps.
//
//
repeated SensorData sensor_data = 1;
}

Expand All @@ -25,7 +25,7 @@ message SensorDataList
{
// List of sensor data for multiple sensors at a specific timestep.
//
repeated SensorData sensor = 1;
repeated SensorData sensor = 1;
}

//
Expand All @@ -35,5 +35,5 @@ message SensorDataSeriesList
{
// List of sensor data for multiple sensors at subsequent timesteps.
//
repeated SensorDataSeries sensor = 1;
repeated SensorDataSeries sensor = 1;
}
Loading