AI and Software, Featured, Latest News, Open Source Self-Driving, Testing and Simulation

UPDATE: StreetDrone’s Vehicle Interface is now Open Source

By Joe Smith,

April 4th, 2019

A critical step in the deployment of autonomous vehicle technology is enabling communication between the vehicle and the self-driving software stack. For developers of open source software stacks such as Autoware, this involves building a Robot Operating System (ROS) package which smoothly translates Autoware’s outputs into vehicle commands.

Enabling this low level vehicle control is vital in allowing the software, subject to a range of functional safety measures, to move the wheels, turn the steering and actuate the various ancillaries (e.g. lights and horn) when required. Ensuring that the controller does this translation quickly and reliably, tuning it to the specifics of the vehicle, and testing its performance can therefore take a significant amount of effort.

At StreetDrone, we have built an interface which bridges this gap between the CAN (Control Area Network – a standard protocol that is responsible for the communication between the electronic components of a vehicle) of our StreetDrone Twizy vehicle and Autoware. Autoware is the open software of choice for many of our customers, including Parkopedia as part of their Autonomous Valet parking project (read more at  Our engineering team has worked hard to tune the intrinsic controllers (PID) and spent considerable time testing the interface on our own development vehicles

StreetDrone Twizy mapping Oxford with Autoware

The result is a Vehicle Interface which will save our customers significant time and effort when looking to deploy their Autoware and ROS based developments on our R&D vehicles. We have worked tirelessly to ensure optimal performance of communication between Autoware and the OpenCAN vehicle interface of the StreetDrone XenOS Control Unit (“XCU” – responsible for low level vehicle control and its associated functional safety).

As a founding member of the Autoware Foundation, we have chosen to release this interface under the Apache 2.0 licence in the spirit of the foundation and its collaborative ambition. We want to ensure that all StreetDrone Twizy developers can maximise their outputs into the autonomous community, without having to spend time building vehicle interfaces.

In this (beta) release of the interface we integrate the following:

Message passing and parsing from Autoware to the vehicle’s CAN utilising the SocketCAN open source library and networking stack
Continuous software to Drive-by-Wire (DBW) system handshake verification
Manual to autonomous hand-over in conjunction with safety driver physical interaction with the vehicle HMI
Vehicle status monitoring
Conversion of the twist_cmd linear velocity and angular acceleration target into low level throttle/brake/steer commands
Tuned PID Controller for the vehicle’s speed

To access the code and detailed information on our release, please visit our GitHub

In the coming weeks, we will be building out features within the StreetDrone eco-system, and we’d love to hear your thoughts, please don’t hesitate to get in touch:


For support queries regarding your SD Twizy, feature ideas and further assistance in getting your StreetDrone product up and running, please contact:

If you would like to speak to us about starting an autonomous vehicle project, drop us a line here or via



We strongly suggest that you adhere to the following guidelines in conjunction with the documentation you received alongside your SD Twizy:

A trained safety driver must always be present in the vehicle in order to provide critical redundancy
The current release of the vehicle interface is not suitable for use on public roads. It should only be operated in a controlled ‘concrete lake’ environment

Become a Member

Enter our draw for a chance to test drive the StreetDrone ONE and spend a day with the SD team! Additionally, get acces to exclusive technical content, discounted events and conferences