Skip to content

Releases: RI-SE/ATOS

ATOS version 1.0.15

21 Aug 08:14
1084f60
Compare
Choose a tag to compare

What's Changed

This is a patch release where most changes are related to ease of use and getting started with ATOS. A lot of clean up of old configuration files and functionality has been done.

  • Add support running ATOS in Docker: This release introduces Docker- and compose files and instructions on the docs page how to use them.
  • More github actions: Build action to been run on every commit as a minimal CI job.
  • Doxygen: Doxygen documentation is now generated and linked to from the ATOS read the docs page.
  • Documentation updates: Includes guide to running a default demo scenario. Instructions added on how to Contribute to the project, Create PRs, Create Issues and file Vulnerability reports. Changes also include a Quickstart guide.
  • Data Dictionary has been removed: DD was used in previous versions of ATOS and was now longer used.
  • Old configurations files has been removed: Old configuration files related to non-working features or legacy version of ATOS has been removed.

Full Changelog: v1.0.0...v1.0.15

ATOS version 1.0.0

03 Apr 14:29
d5a1a19
Compare
Choose a tag to compare

What's Changed

  • Public release under MPL 2.0: ATOS, which is the product of several years' research projects at AstaZero, has now been released under the MPL 2.0 license. This will greatly simplify collaboration between academia, industry and governmental actors on experimental applied AV evaluation methods. The license was chosen such that it would not impede inclusion in other code bases via copyleft while still encouraging contributions from those improving the code.
  • Remade system architecture to be based on ROS2: As part of the public release, this code base has been renamed from Maestro to ATOS. Furthermore, ATOS has been adapted to be based on ROS2 instead of the previous message queue based structure. All modules have been remade to use ROS2's callback-based structure. The goal of this change is to enable integration with other open source packages in the ROS2 ecosystem as well as to reduce communication boilerplate.
  • New module: EsminiAdapter: This module interfaces with esmini's ScenarioEngine API.
    It has the following responsibilities:
    1)Load an OpenSCENARIO-file and extract static trajectories from it.
    2)Dynamically, while the test is running, execute actions based on triggers specified in the OpenSCENARIO-file.
  • Replaced GUC method of sending control commands, in favor of a web-gui: Introduced ControlPanel, a simple web interface for sending control commands to ATOS.
    Moreover, integrated with Foxglove Studio, enabling visualization of live-test data, and static visual elements such as point clouds.
  • New module ObjectControl: the module RelativeKinematics was renamed and adapted to replace the old ObjectControl module. The new module is OO and based on C++ in contrast with the old C based module. ObjectControl uses state classes and events, object connection handlers, object listeners and a class for interfacing with any outside objects. It is built according to an event-driven structure instead of a sequential exection structure.
  • Module modification: DirectControl: This module now opens a socket that listens for incoming control messages (containing throttle, brake and steering wheel angle) specified here. The control messages are forwarded to ObjectControl, which then sends control signals to affected objects.
  • New module: OSIAdapter. Replaces Visualization module. This module collects MONR-data from connected objects in ATOS, and then converts it to ASAM OSI. The module then sends the data over TCP/UDP to one or multiple clients. The send rate for the messages can be set by the user.
  • New Module MQTTBridge: Added a new module that allows for publishing of V2X formatted data from the ATOS system to a MQTT broker. The module subscribes to the atos/v2x_message, parses the content of this msg to JSON and is then published over MQTT to a specified topic.
  • New module TrajectoryletStreamer: Added a new module which reads trajectories and splits them into smaller chunks based on the current time in relation to the planned trajectory time. The module is intended for testing of dynamic trajectory related functions without having to solve the chunk generation problem. Once that functionality is ready, this module can easily be swapped out i.e., this is a test mock of sorts.
  • ISO 22133 released version support: ObjectControl has been updated to match the released version of the communication standard ISO 22133 "Test object monitoring and control for active safety and automated/autonomous vehicle testing".
  • New module: PointcloudPublisher. PointcloudPublisher reads site scans in the form of .pcd-files, and publishes them on relevant topics.
  • Clearing state: A new state that the ObjectControl enters as an intermediate state, expressing the will of the control center to exit the aborting state, and thus allow all objects to disarm.
  • Back-to-start for single objects: a method was implemented to use regular test states but with autogenerated trajectories to return objects to their starting positions. The module is not adapted to the ROS2 structure and can therefore not currently be run.
  • Updated the OSEM message to contain a proj string: Added a proj string to increase interoperability
  • Adapted settings handling to ROS parameters structure: ROS nodes now have parameters that can be set. These parameters are set in params.yaml and are read on program start. The parameters are currently never re-read since no "parameters changed" handlers yet exist. The parameters replace the old test.conf file which is in the process of being phased out.
  • Replaced shared memory with ROS services or topics: To fully embrace the ROS structure and reduce implementation coupling, the data dictionary and shared memory implementations were removed. Instead, nodes must call services of other nodes to get their data or listen to relevant topics. While this likely means a slight loss in performance it is not likely to be large since ROS2 uses shared memory under the hood. The gains on the other hand are that there is less code to maintain and it functions in a more standardised, easily-extended and cross-dependency reducing way.
  • Removed util submodule: Since ATOS only used parts of the util repository, the relevant parts of that repository were lifted out or made into separate repositories. All definitions for messages that used to be sent over message queue were remade to the ROS IDL format and moved into the atos_interfaces repository. Submodule linking has been updated so that iso22133 and atos_interfaces are subrepositories.
  • Scenario generation scripts created for public release demo: Automated creation of OpenSCENARIO files that ATOS can be configured to run. Different files with varying scenario complexity.
  • Updated documentation - READMEs, diagrams and getting started guides
    Various clarifications and fixes that facilitate usage and understanding

New Contributors

Full Changelog: v0.7.0...v1.0.0

Module hat-trick + 1: RelativeKinematics, BackToStart, JournalControl and DirectControl

07 Sep 09:14
561b1d8
Compare
Choose a tag to compare

Four modules have been added along with major functionality.

  • RelativeKinematics is a C++ version of ObjectControl able to handle scenarios specified as relative to the VUT as well as normal test execution.
  • DirectControl is a module able to receive live control input from e.g. a PS4 controller (via a program) and pass it on to objects via ObjectControl.
  • BackToStart is a WIP module used for generating and controlling trajectories returning objects to their starting positions.
  • JournalControl merges test logs from the different modules into one single log presentable to the user. These logs differ from the developer debug logs in that they only contain data relevant to the test execution.

ObjectControl has been augmented with the ABORTING state, as well as the ability to transmit PODI injection messages to objects configured for it. RelativeKinematics does the same but via the OSI protocol, and uses the extended state diagram found in the documentation on Teams.

This release is compatible with Maestro Tools 0.7.0 and Util 0.6.0

New Features 🚀

Bug Fixes 🐛

Improvements 👍

Other Changes

  • Dependency on Protobuf for OSI
  • Dependency on Eigen3 for RelativeKinematics
  • First use of CTest
  • C++17 used in many places. Make sure to update your compiler!

Issues 💥

  • New Jenkins cannot run binaries as the old one could.
  • BackToStart does not work yet.
  • RelativeKinematics does not support the non-relative mode.

Actual working October demo code

06 Nov 10:59
4efcb3d
Compare
Choose a tag to compare
Pre-release

Had the sleep implemented at the wrong location...

October demo implementation

26 Oct 09:39
ae50330
Compare
Choose a tag to compare
Pre-release

The exact code used on the 22nd of October 2020 when demonstrating virtual injection.

Back To Start Demo

15 Jun 06:23
cad6bc1
Compare
Choose a tag to compare
Back To Start Demo Pre-release
Pre-release

This release enables a test scenario using triggers to be run from the GUC. The back to start functionality enables a resetting of objects on predefined trajectories.

This release is compatible with Maestro Tools 0.5.0 and Util 0.5.0

New Features 🚀

Bug Fixes 🐛

Improvements 👍

Other Changes

  • #257 remove iso Removed old iso.h files
  • #227 CMAKE You can now use make install to install maestro on your system.
  • #221 Manual testing script A python script that when run enables the user to manualy send specific MSCP messages has been added to the testing folder.

Issues 💥

January release

10 Jan 11:56
2108c88
Compare
Choose a tag to compare

This release is compatible with Maestro Tools 0.4.1. and Util 0.4.0

New Features 🚀

Bug Fixes 🐛

Improvements 👍

Other Changes

  • Project now using Jenkins for testing and code formatting is now enforced.
  • Test procedures have been defined for some of the code.

Issues 💥

  • Supervision and ObjectControl have different definitions of heading
  • Rapid communication by the test scripts works when running manually but not when run by Jenkins

December snapshot release

05 Dec 11:27
5e3d859
Compare
Choose a tag to compare

This release is a snapshot of the server 5th of December 2019

This release is compatible with Maestro Tools 0.4.0. and Util 0.4.0

New Features 🚀

Bug Fixes 🐛

Improvements 👍

Other Changes

  • Project now using Jenkins for testing and code formatting is now enforced.
  • Test procedures have been defined for some of the code.

Issues 💥

  • Supervision and ObjectControl have different definitions of heading
  • Rapid communication by the test scripts works when running manually but not when run by Jenkins

Trigger and Action

05 Nov 08:31
93d749c
Compare
Choose a tag to compare
Trigger and Action Pre-release
Pre-release

Maestro is now able to send basic trigger and action messages enabling a test object to execute predefined actions when specific conditions have been met.

This release is compatible with Maestro Tools 0.3.0 and Util 0.3.0

New Features 🚀

Trigger and Action

RVSS and Data Dictionary

Bug Fixes 🐛

  • #119 Uploads now working. Trajectory files uploaded to the server got appended with TCP messages at the end of file. No longer an issue.

Improvements 👍

Other Changes

  • Version number structure has been updated. Instead of MASTER:DEV:ITERATION format from before we are now using MAJOR:MINOR:PATCH

Issues 💥

July release 2019

11 Oct 08:09
439f50e
Compare
Choose a tag to compare
July release 2019 Pre-release
Pre-release

This release focuses on being a current working snapshot of the server. Contains not full tested features.

This release is compatible with Maestro Tools 0.1.1. and Util 0.1.1

New Features 🚀

Geofence

Other

Bug Fixes 🐛

"Improvements" 😒 :

Other Changes

Issues 💥