INTRODUCTION AND INTEGRATION OF DRIVEWORKS ON DRIVE PX2. Aaraadhya Narra, Alessandro Ferrari

Similar documents
DEVELOPING & DEPLOYING AUTONOMOUS DRIVING APPLICATIONS WITH THE NVIDIA DRIVE PX PLATFORM. Shri Sundaram, Product Manager, DRIVE PX Platform

FUNCTIONAL SAFETY FOR AUTONOMOUS DRIVING

Automated Driving is the declared goal of the automotive industry. Systems evolve from complicated to complex

IBM CMM Quick Reference Guide

ACCELERATING THE RACE TO SELF-DRIVING CARS. Jen-Hsun Huang, Co-Founder & CEO, NVIDIA Jan. 4, 2016

END TO END NEEDS FOR AUTONOMOUS VEHICLES NORM MARKS SEPT. 6, 2018

2015 The MathWorks, Inc. 1

AI Driven Environment Modeling for Autonomous Driving on NVIDIA DRIVE PX2

Integrated ADAS HIL System with the Combination of CarMaker and Various ADAS Test Benches. Jinjong Lee, Konrad Yu-Mi Song, Hyundai-Autron

Using Virtualization to Accelerate the Development of ADAS & Automated Driving Functions

JUMO DSM software. PC software for management, configuration, and maintenance of digital sensors. Operating Manual T90Z001K000

POWERSPORTS DYNAMOMETER HARDWARE AND SOFTWARE

IN SPRINTS TOWARDS AUTONOMOUS DRIVING. BMW GROUP TECHNOLOGY WORKSHOPS. December 2017

Zio Decoder App. Quick Start Guide

Items to specify: 4. Motor Speed Control. Head Unit. Radar. Steering Wheel Angle. ego vehicle speed control

Deep Learning Will Make Truly Self-Driving Cars a Reality

Warning! Before continuing further, please ensure that you have NOT mounted the propellers on the MultiRotor.

The Imperative to Deploy. Automated Driving. CC MA-Info, 15th December 2016 Dr. Hans-Peter Hübner Kay (CC/EB4) Stepper

OBI-M2. Compact and Rugged Combustion Analysis System for use on Vehicles, Motorbikes and Test Benches

Full Vehicle Simulation for Electrification and Automated Driving Applications

ehorizon Products in the market and future June 2013 Dr. Karsten Becker

EPAS Desktop Pro Software User Manual

Enabling Technologies for Autonomous Vehicles

TEXA. Comprehensive Diagnostic Solutions. The diagnostic tools for every vehicle North American Market SUPERCAR CAR

Installing Proactive Monitoring for PowerCenter Operations 2.0 HotFix 1 on Solaris

WHITE PAPER Autonomous Driving A Bird s Eye View

MAX PLATFORM FOR AUTONOMOUS BEHAVIORS

Table of Contents. Abstract... Pg. (2) Project Description... Pg. (2) Design and Performance... Pg. (3) OOM Block Diagram Figure 1... Pg.

ADVANCES IN INTELLIGENT VEHICLES

Phaser 4600/4620 Laser Printer. Service Manual. Xerox Internal-Use Only

Release Enhancements GXP Xplorer GXP WebView

Cross Flow Heat Exchanger H352

Fiorano ESB 2007 Oracle Enterprise Gateway Integration Guide

Application Note 67. Using The Low Power Modes on TransPort. April 2016

Automated Driving: Design and Verify Perception Systems

BlueBox: Complete Autonomous Vehicle Platform Using NXP Silicon at Each ADAS Node EXTERNAL USE

PRODUCT PORTFOLIO. Electric Vehicle Infrastructure ABB Ability Connected Services

QUICK START GUIDE 199R10546

UNIVERSITÉ DE MONCTON FACULTÉ D INGÉNIERIE. Moncton, NB, Canada PROJECT BREAKPOINT 2015 IGVC DESIGN REPORT UNIVERSITÉ DE MONCTON ENGINEERING FACULTY

Driving simulation and Scenario Factory for Automated Vehicle validation

SNMP dedicated to ORVALDI Solar Infini

With PRO+ Datalogger:- Lambda (Air/Fuel Ratio)* Turbo Boost* Brake Pressure Front & Rear +Brake Bias*

Index. sequencing, 21, 26 starting off, 22 using, 28 code sequence, 28 custom pallete, 28

Wide Bank 28 DS3 QUICK START GUIDE

WEIGH IN MOTION AND DIRECT ENFORCEMENT

DLF-220L Digital Label Finishing System

PLUS+1 Ecosystem for embedded system innovation

UAV KF-1 helicopter. CopterCam UAV KF-1 helicopter specification

DELHI TECHNOLOGICAL UNIVERSITY TEAM RIPPLE Design Report

MetaXpress PowerCore System Installation and User Guide

On the role of AI in autonomous driving: prospects and challenges

Electrics/electronics Technology Workshop Cayenne

LOBO. Dynamic parking guidance system

Issue 2.0 December EPAS Midi User Manual EPAS35

CT6 SUPER CRUISE Convenience & Personalization Guide. cadillac.com

Finite Element Based, FPGA-Implemented Electric Machine Model for Hardware-in-the-Loop (HIL) Simulation

ALM-Inline. Accurate Lambda Meter V1.1.2 COPY RIGHTS ECOTRONS LLC ALL RIGHTS RESERVED.

GPP PGS2 PARKING GUIDANCE SYSTEM

CT6 SUPER CRUISE Convenience & Personalization Guide. cadillac.com

LOOKING FOR THE ULTIMATE ADVERTISING & PROMOTIONAL TOOL FOR YOUR BUSINESS?

A complete hybrid VTOL autopilot solution. Start anywhere, fly everywhere.

DD2-PRO+ Gps enabled Datalogger & display system mm (W) x 90mm (H) x 28mm (D) Datalogger Front 109mm (W) x 35mm (H) x 121mm (D) Datalogger Back

ZC706 MIG Design Creation November 2014

PRODUCT DESCRIPTIONS AND METRICS

Problem Definition Review

TRITON ERROR CODES ERROR CODE MODEL SERIES DESCRIPTION RESOLUTION

A Battery Smart Sensor and Its SOC Estimation Function for Assembled Lithium-Ion Batteries

Automated Seat Belt Switch Defect Detector

Detailed Design Review

Safety Security Fleet Management. www. smartroadwitness.com

Closing Sale Prices. AmigoBot Pioneer 3-DX Pioneer 3-AT Pioneer LX Pioneer Manipulator PeopleBot PowerBot Seekur Jr

KEEP TRACK OF WHAT MATTERS

Resilient-EGI Prototype Pilot: Common Application Space Prototype Pilot

Remote Explorer (REx IV): An Autonomous Vessel for Data Acquisition and Dissemination

Allows 2 relays to be activated. based on RPM and throttle. This guide will give you a general overview to the use of the HUB

Citi's 2016 Car of the Future Symposium

Transportation Technology Used in Trucks

Combustion Analyser. Any In/out signal. Data Interface. Pressure signals. Encoder OR 60-2 sensor AUTOMOTIVE

AUTOPILOT Webinar Series (II): Developing Automated Driving Pilots for IoT: Brainport

UAE Ministry of Interior pilot project for RFID-based SCHOOLBUS/STUDENT TRACKING SYSTEM

Lingenfelter NCC-002 Nitrous Control Center Quick Setup Guide

Introduction to Computers and Engineering Problem Solving Spring 2012 Problem Set 8: Rail switching Due: 12 noon, Friday, April 27, 2012

Ton-Tel Multi-Deck Weighbridge

Machine Learning & Active Safety Using Autonomous Driving and NVIDIA DRIVE PX. Dr. Jost Bernasch Virtual Vehicle Research Center Graz, Austria

What it is and what it can do for you. Presented by: Dustin Donaldson ACTAR #

Industrial furnaces. Innovative solutions for your success

SentryGOLD Compact. for Bennett Electronic Dispenser INSTALLATION MANUAL. Fuel Management System

Videosystem CAR-READER

MiR Hook. Technical Documentation

A Presentation on. Human Computer Interaction (HMI) in autonomous vehicles for alerting driver during overtaking and lane changing

DYNA4 Open Simulation Framework with Flexible Support for Your Work Processes and Modular Simulation Model Library

NO PART OF THIS DOCUMENT MAY BE REPRODUCED WITHOUT PRIOR AGREEMENT AND WRITTEN PERMISSION OF FORD PERFORMANCE PARTS.

Contents. 1. Connected Car Industry Overview. 2. Importance of the Connected Car -Entertainment -Safety

Adaptive Cruise Control System Overview

Pothole Tracker. Muhammad Mir. Daniel Chin. Mike Catalano. Bill Quigg Advisor: Professor Ciesielski

Life Cycle Assessment of Connected and Automated Vehicles (CAVs): Sensing and Computing Subsystem and Vehicle Level Effects

PRODUCT DESCRIPTIONS AND METRICS

S06 Update 7th SHRP 2 Safety Research Symposium Washington, DC July 12, Driving Transportation with Technology VTTI 7/12/2012 1

USER GUIDE incardoc ios

ZC706 MIG Design Creation November 2015

Transcription:

INTRODUCTION AND INTEGRATION OF DRIVEWORKS ON DRIVE PX2 Aaraadhya Narra, Alessandro Ferrari

WHAT WILL YOU LEARN IN THIS LAB? Overview Introduction to Drive PX2 Hardware setup with Drive PX2 Developing with Driveworks on Drive PX2 2

GETTING STARTED Log into the Host Machine Please log into the host based on your PX2 # PX2 1 5 : HOST 1 IP 10.30.25.189 PX2 6 10 : HOST 2 IP 10.30.25.188 PX2 11 15 : HOST 3 IP 10.30.25.174 PX2 16 20 : HOST 4 IP 10.30.25.176 PX2 21 25 : HOST 5 IP 10.30.25.90 $ export HOST_IP=<HOST_IP> $ export USER=nvidia_<PX2#><USER_LETTER> (USER_LETTER LOWERCASE!!!) $ setxkbmap gb Host Password: nvidia Example USER: nvidia_19b Example <#PX2>=19 Example <USER_LETTER>=b 3

HARDWARE SETUP ON DRIVE PX2 4

DRIVE PLATFORM DNNs and Autonomous Driving Applications HD Maps DriveWorks CUDA, TensorRT DRIVE PX 2 System Software Sensors DRIVE PX 2 System Hardware Vehicle Control 5

DRIVE PX2 Introduction AI Supercomputer for Self Driving Cars Drive PX2 2 Parker SoC - CPU: 4xA57 and 2xDenver Cores & Pascal igpu 2 Pascal dgpu Connect up to 12 cameras Rapidly growing ecosystem of supported sensors and storage solutions Eg: Lidars, Radars, UltraSonics etc. 6

OUT OF THE BOX DRIVE PX2 AC Power Supply Vehicle Cable Harness USB 3.0 Hub With Power Supply USB 2.0 Type A to Type A 7

DRIVE PX2 CONNECTORS Top View Front View 8

DRIVE PX2 VEHICLE HARNESS AURIX Console Interface CANs GB Ethernet FlexRays AURIX Programming Switch** Power Supply In LINs ** Note: Make sure that the AURIX Programming Switch is in the RUN position. Ignition 9

POWER ON THE PX2 25% 10

DRIVEWORKS 11

DRIVE PLATFORM DNNs and Autonomous Driving Applications HD Maps DriveWorks CUDA, CuDNN, TensorRT NVMedia DRIVE PX 2 System Software Sensors DRIVE PX 2 System Hardware Vehicle Control 12

DRIVEWORKS APIs, Tools & Samples Input Perceive, Localize & Visualize Vehicle Control Samples/ Preview Sensor visualization DriveNet LaneNet Several CV examples Occupancy Grid Maps Pilotnet* (End-to-end DNN for self driving) APIs Cameras Lidars Radars IMU GPS Image Processing DNN interface CV Modules HD Maps interface CAN/DBW Kit interface Tools Calibration and sensor registration Vehicle rig configuration Data acquisition * Available to select customers 13

HANDS-ON WITH DRIVEWORKS SAMPLES 14

DRIVENET Multi-class object detector Navigate to the DriveWorks precompiled samples folder on your PX2. $ cd /usr/local/driveworks/bin/ Run the DriveNet sample: $./sample_drivenet 15

DRIVENET Data Conditioning Inference Engine Bounding Boxes Camera or Video SAL 2D Feature Tracker 2D Object Tracker Bounding Boxes 16

LANENET Lane detection Navigate to the DriveWorks precompiled samples folder on your PX2. $ cd /usr/local/driveworks/bin/ To run the LaneNet sample: $./sample_lane_detection 17

LANENET Camera or Video SAL Data Conditioning Inference Engine Post Processing Ego and adjacent lanes 18

HANDS-ON WITH DRIVEWORKS TOOLS 19

CONNECT THE CAMERAS Camera A0 Camera B0 ATTENTION: User A: Connect the camera to Camera A0 User B: Connect the camera to Camera B0 PLEASE TURN OFF THE PX2 BEFORE CONNECTING CAMERAS! 20

SAMPLE CAMERA GMSL Live Camera User A connect to the group A with the following command $./sample_camera_gmsl --camera-type=ar0231 - csi-port=ab User B connect to the group B with the following command $./sample_camera_gmsl --camera-type=ar0231 - csi-port=cd 21

RECORDING TOOL Navigate to the tools folder within DriveWorks as follows $ cd /usr/local/driveworks/tools Run the recorder tool with super user privileges as follows: $ sudo./recorder-qt This will create a config file recorder-config.json file. Open this config file with your favorite editor with super user privileges $ sudo gedit recorder-config.json Password for the PX2: nvidia Data Logging 22

RECORDING TOOL Configuration File "version": "0.6", "path": /tmp", "camera": { "separate-thread": true, "write-file-pattern": "video_*", "sensors": [ { "protocol": "camera.gmsl", "params": "camera-type=ar0231,csi-port=ab,camera-count=1,fifosize=3,output-format=raw", "channel-names": [ "first" ] } ] } 23

RECORDING TOOL Edit the Configuration File User A change the first sensor in the recorder-config.json file as follows: "protocol": "camera.gmsl", "params": "camera-type=ar0231,csi-port=ab,camera-count=1,fifo-size=3,outputformat=raw", "channel-names": [ "first" ] User B change the first sensor in the recorder-config.json file as follows: "protocol": "camera.gmsl", "params": "camera-type=ar0231,csi-port=cd,camera-count=1,fifo-size=3,outputformat=raw", "channel-names": [ "first" ] 24

RECORDING TOOL Now that the config file is edited and the right parameters are included, lets run the recorder tool to record the video feed with super user privileges. $ sudo./recorder-qt Data Logging You can list the recorded file by opening up the folder dw-* $ ls /tmp/ grep dw 25

HANDS-ON WITH DRIVEWORKS API 26

DRIVEWORKS API ON DRIVE PX2 Overview Caffe Model Tensor RT RGB Camera Sample Application Inference Output 27

DRIVEWORKS API ON DRIVE PX2 Please log into the host based on your PX2 # PX2 1 5 : HOST 1 IP 10.30.25.189 PX2 6 10 : HOST 2 IP 10.30.25.201 PX2 11 15 : HOST 3 IP 10.30.25.174 PX2 16 20 : HOST 4 IP 10.30.25.176 PX2 21 25 : HOST 5 IP 10.30.25.90 $ echo $HOST_IP $ echo $USER $ ssh -X $USER@$HOST_IP Log into the Host Machine Host Password: nvidia Example: nvidia_22b 28

DRIVEWORKS API ON DRIVE PX2 Data Flow Overview Main Loop getframe Init SDK Initialization Init DNN NVMEDIA Image Clean Up CUDA Image GL Image Compute Display 29

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker $ /bin/bash $ cd ~/driveworks-0.3/ $ mkdir build $ cd build $ gedit ~/driveworks-0.3/samples/src/dnn/cmakelists.txt Navigate to the driveworks folder in your home directory. Uncomment the following lines in the CMakeLists.txt file from line 8 to 10. #TODO 1: Undo the following section to enable cross compiling of project If(VIBRANTE_V4L) add_subdirectory(sample_live_rggb_object_detector) endif() 30

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker Now open the sample main.cpp so we can start making changes to the application code. $ gedit ~/driveworks- 0.3/samples/src/dnn/sample_live_rggb_object_detector/main.cpp 31

DRIVEWORKS API ON DRIVE PX2 Sensor initialization (line 174) Live Camera with Object DNN Tracker initsdk(&gsdk, gwindow); // create HAL and camera uint32_t imagewidth; uint32_t imageheight; dwimagetype cameraimagetype; // TODO 2: Copy these input parameters to initsensor function // &sal, &gcamerasensor, &imagewidth, &imageheight, &cameraimagetype, gsdk initsensors(/* TODO 2 */); if(cameraimagetype!= DW_IMAGE_NVMEDIA) { std::cerr << "Error: Expected nvmedia image type, received " << cameraimagetype << "instead." << std::endl; exit(-1); } 32

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker DNN initialization (line 191) // TODO 3: Copy the global sdk initalization parameter to initdnn function // gsdk if (initdnn(/* TODO 3 */)) { initrenderer(&grenderer, gsdk, gwindow); runnvmedia_pipeline(gwindow, grenderer, gsdk, gcamerasensor, imagewidth, imageheight); } 33

Error checking (line 381) DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker // TODO 4: Add DW_SUCCESS to check return status of Driveworks function // DW_SUCCESS if (status!= /* TODO 4 */) { std::cerr << "Cannot initialize pixel format converter" << std::endl; exit(1); } 34

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker NVMEDIA to GL and CUDA image (line 388) //TODO 5: Create streamer from converting from DW_IMAGE_NVMEDIA TO //DW_IMAGE_GL //image API translator dwimagestreamerhandle_t nvm2gl = DW_NULL_HANDLE; dwimagestreamer_initialize(&nvm2gl, &displayimageproperties, /*TODO 5*/, sdk); //TODO 6: Create streamer from converting from DW_IMAGE_NVMEDIA TO //DW_IMAGE_CUDA agestreamerhandle_t nvm2cuda = DW_NULL_HANDLE; dwimagestreamer_initialize(&nvm2cuda, &displayimageproperties, /*TODO 6*/, sdk); 35

DRIVEWORKS API ON DRIVE PX2 Utilize GL image for display (line 483) Live Camera with Object DNN Tracker // TODO 7: Send via ImageStreamer to get GL image back // nvm2gl status = dwimagestreamer_postnvmedia(rgbaimage, /* TODO 7 */);... else { dwimagegl *framegl = nullptr; status = dwimagestreamer_receivegl(&framegl, 60000, /* TODO 7 */); if (status == DW_SUCCESS && framegl) {... dwimagestreamer_returnreceivedgl(framegl, /* TODO 7 */); } } 36

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker Utilize CUDA image for inference (line 501) // TODO 8: Send via ImageStreamer to get GL image back // nvm2cuda status = dwimagestreamer_postnvmedia(rgbaimage, /* TODO 8 */);... else { dwimagecuda *framecuda = nullptr; status = dwimagestreamer_receivecuda(&framecuda, 10000, /* TODO 8 */); if (status == DW_SUCCESS && framecuda) {... dwimagestreamer_returnreceivedcuda(framecuda, /* TODO 8 */); } } 37

Clean up (line 572) DRIVEWORKS API ON DRIVE PX2 dwsensor_stop(camerasensor); //TODO 9: Release GL imagestreamer //&nvm2gl dwimagestreamer_release(/*todo 9*/); Live Camera with Object DNN Tracker //TODO 10 Release CUDA imagestreamer //&nvm2cuda dwimagestreamer_release(/*todo 10*/); 38

DRIVEWORKS API ON DRIVE PX2 Live Camera with Object DNN Tracker Add the correct camera port (line 130) // Replace /* TODO 11 */ below with the following code in the correct places: // USER A: "ab" // USER B: "cd" ProgramArguments::Option_t("csi-port", /* TODO 11 */), 39

DRIVEWORKS API ON DRIVE PX2 Cross Compilation from Host to Drive PX2 Once in our build directory, we start the cross compilation process by generating the makefiles. Follow the compilation instruction in the /home/nvidia/readme.md file on your PX2. 40

DRIVEWORKS API ON DRIVE PX2 Now that our binaries have been successfully compiled, switch back to your PX2 to copy the files from the host directly. Press Ctl+D to leave the SSH session. Ensure you replace <PX2#> with your PX2's number and <USER_LETTER> with either A B. $HOST_IP should still be your host s IP address from earlier. ON THE DPX2!!! Cross Compilation from Host to Drive PX2 $ echo $USER $ echo $HOST_IP $ scp $USER@$HOST_IP:/home/$USER/driveworks- 0.3/build/install/bin/sample_live_rggb_object_detector ~/sample_live_rggb_object_detector $ sudo mv ~/sample_live_rggb_object_detector /usr/local/driveworks/bin Host Password: nvidia Example user: nvidia_19a Example <#PX2>=19 Example <USER_LETTER>=a 41

DRIVEWORKS API ON DRIVE PX2 Running the Sample Open a picture of a car in the Chromium browser and point your cameras towards it. $ cd /usr/local/driveworks/bin $ /usr/local/driveworks/bin/sample_live_rggb_object_detector 42

OTHER RESOURCES TOOLS Developer Zone (developer.nvidia.com/drive) Developer Forums (devtalk.nvidia.com) SCHOOLS Deep Learning Institute Autonomous Driving Udacity Nanodegree OTHER PRESENTATIONS 43

AUTOMOTIVE PX2 LABS Hands On Workshops Please attend the following Auto workshops: Training a Semantic Segmentation Network ready for Deployment in the Car by Oliver Knieps & Joohoon Lee Deployment of Semantic Segmentation Network using Tensor RT by Joohoon Lee & Chethan Ningaraju CUDA Programming on Drive PX2 by Chethan Ningaraju EGL Streams: Interoperability for Camera, CUDA and OpenGL by Debalina Bhattacharjee & Sharan Ashwathnarayan 44

THANK YOU! Questions?