Taking CarMaker to the Cloud: Virtual test driving in YonoHub

Ibrahim Essam
YonoHub
Published in
4 min readMay 14, 2020

If you’re here you probably heard about CarMaker or even used it before. But if it’s your first time get ready to be introduced to one of the most complete simulation solutions in the automotive. It offers the ability to develop and test systems and system networks in their entirety within the whole vehicle in realistic scenarios.

We have developed the simulation solution CarMaker specifically for testing passenger cars and light-duty vehicles. Using our software, you can accurately model real-world test scenarios, including the entire surrounding environment, in the virtual world. Our powerful and real-time capable models for vehicles, roads, drivers and traffic make this possible. CarMaker is an open integration and test platform and can be applied throughout the entire development process — from model- to software- to hardware- to vehicle-in-the-loop. CarMaker’s impressive performance guarantees flexibility, productivity and precision for all simulation tasks, thereby ensuring significant savings in cost and time for the development of your vehicle.

Why Simulators anyway?

To prove the safety of autonomous vehicles, they would have to be driven hundreds of millions of miles and sometimes hundreds of billions of miles to demonstrate their reliability in terms of fatalities and injuries [1]. And it would require testing some corner cases which would be very dangerous to test it in a real car. Simulators are also playing an essential role in driving data collection to train machine learning models. They offer a variety of simulated environments and scenarios which would be impossible to record in a real-life setup.

Integrating with YonoArc:

CarMaker offers some great variety of interfaces which gives you some flexibility. One of these interfaces is ROS which integrates easily with YonoHub. I’ve checked their ROS example and I’ve struggled for a while to get it working. But it doesn’t have official support.

So I had to check the other interfaces and choose a more suitable one. The TCP/IP interface was the most promising one so far, as it can be used from nearly any programming languages. With some search, I’ve come across this GitHub repo for a python package called pycarmaker by Gustavo Muller Nunes.

You can easily communicate with CarMaker on a certain port, subscribe to simulations Quantities, and send commands.

Here is an ROS node example I’ve made using this package to read the Car’s Speed, Yaw angle and the driver steering angle.

Reading Camera Images:

CarMaker offers a Video Data Stream (VDS) feature to generate pixel images in a specified format for several virtual cameras placed on the vehicle.

All you have to do is to create VDS.cfg file to specify the virtual cameras in Movie dir inside your project folder.

example VDS.cfg

Then start a test run and open IPGMovie. This will start streaming the camera images of the default port. And to give back to the community, I have developed a simple VDS interface inside pycarmaker.

This example uses OpenCV to display camera images.

CarMaker Block:

To start developing a CarMaker block we need first an environment with noVnc installed so we can access the CarMaker GUI.

Also, we should start the vncserver and noVnc in our block on_start(self)

then we can use pycarmaker to connect to CarMaker, read quantities, and publish it on the block ports. But we shouldn’t forget to add a block’s URL for the noVnc

In the end, I’d Like to share with you my pipeline video.

About YonoHub:

Yonohub is a web-based cloud system for development, evaluation, integration, and deployment of complex systems, including Artificial Intelligence, Autonomous Driving, and Robotics. Yonohub features a drag-and-drop tool to build complex systems, a marketplace to share and monetize blocks, a builder for custom development environments, and much more. YonoHub can be deployed on-premises and on-cloud.

Get $25 free credits when you sign up now. For researchers and labs, contact us to learn more about Yonohub sponsorship options. Yonohub: A Cloud Collaboration Platform for Autonomous Vehicles, Robotics, and AI Development. www.yonohub.com

If you liked this article, please consider following us on Twitter at @yonohub, email us directly or find us on LinkedIn. I’d love to hear from you if I can help you or your team with how to use YonoHub.

References:

[1] Driving to safety: How many miles of driving would it take to demonstrate autonomous vehicle reliability?

--

--