Kalibr [19]: This is a toolbox that solves the following calibration problems:– Multiple camera calibration: intrinsic and extrinsic calibration of a camera system with non-globally shared overlapping fields of view.– Visual-inertial calibration (camera-IMU): spatial and temporal calibration of an IMU with respect to a camera system.– Rolling shutter camera calibration: full intrinsic calibration (projection, distortion, and shutter parameters) of rolling shutter cameras.
OpenCV [20]: OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products.
ORB-SLAM2 [21]: This is a real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction. It is able to detect loops and relocalize the camera in real time.
libELAS [22]: This is a cross-platform C++ library with MATLAB wrappers for computing disparity maps of large images. Input is a rectified grayscale stereo image pair of the same size. Output is the corresponding disparity maps.
Mask R-CNN [23]: This is a deep learning model for object detection and instance segmentation on Keras and TensorFlow.
Baidu Apollo [24]: Apollo is a high performance, flexible architecture which accelerates the development, testing, and deployment of autonomous vehicles.
OpenStreetMap [25]: This is a collaborative project to create a free editable map of the world. The geodata underlying the map are considered the primary output of the project. The creation and growth of OpenStreetMap has been motivated by restrictions on use or availability of map data across much of the world, and the advent of inexpensive portable satellite navigation devices.
1 1 U.S. Department of Energy (2017). Emissions from Hybrid and Plug-In Electric Vehicles. https://www.afdc.energy.gov/vehicles/electric_emissions.php(accessed 1 December 2017).
2 2 MIT CSAIL (2016). Study: carpooling apps could reduce taxi traffic 75%. https://www.csail.mit.edu/news/study-carpooling-apps-could-reduce-taxi-traffic-75(accessed 1 December 2017).
3 3 VirginiaTech (2017). Automated vehicle crash rate comparison using naturalistic data. https://www.vtti.vt.edu/featured/?p=422(accessed 1 December 2017).
4 4 U.S. Department of Transportation (2016). U.S. Driving Tops 3.1 Trillion Miles in 2015. https://www.fhwa.dot.gov/pressroom/fhwa1607.cfm(accessed 1 December 2017).
5 5 Moore, F.C. and Diaz, D.B. (2015). Temperature impacts on economic growth warrant stringent mitigation policy. Nature Climate Change 5 (2): 127–131.
6 6 New York State Department of Transportation (2016). Average Accident Costs. https://www.dot.ny.gov/divisions/operating/osss/highway-repository/39D1F023EC4400C6E0530A3DFC0700C6(accessed 1 December 2017).
7 7 Liu, S., Li, L., Tang, J. et al. (2017). Creating Autonomous Vehicle Systems, Synthesis Lectures on Computer Science, vol. 6, 1–186. Morgan & Claypool Publishers.
8 8 Liu, S., Tang, J., Wang, C. et al. (2017). A unified cloud platform for autonomous driving. Computer (12): 42–49.
9 9 Liu, S., Tang, J., Zhang, Z., and Gaudiot, J.-L. (2017). Computer architectures for autonomous driving. Computer 50 (8): 18–25.
10 10 AutonomousStuff (2017). Lincoln MKZ Platform. https://autonomoustuff.com/product/lincoln-mkz(accessed 1 October 2018).
11 11 YouTube (2018). PerceptIn DragonFly Sensor Module https://www.youtube.com/watch?v=WQUGB-IqbgQ&feature=youtu.be(accessed 1 October 2018).
12 12 Vega, P. (2018). UC Irvine grad works to make a self-driving car costing under $10,000. Los Angeles Times. http://www.latimes.com/socal/daily-pilot/news/tn-dpt-me-driverless-cars-20180105-story.html(accessed 8 January 2018).
13 13 PerceptIn (2017). PerceptIn DragonFly Pod. https://www.perceptin.io/products(accessed 1 October 2019).
14 14 GitHub (2019). CANopenNode. https://github.com/CANopenNode/CANopenNode(accessed 1 October 2019).
15 15 GitHub (2019). Open Source Car Control. https://github.com/PolySync/oscc(accessed 1 October 2019).
16 16 GitHub (2019). OpenCaret. October 2019, https://github.com/frk2/opencaret(accessed 1 October 2019).
17 17 GitHub (2019). NtripCaster. https://github.com/nunojpg/ntripcaster(accessed 1 October 2019).
18 18 gpsd (2019). gpsd – a GPS sevice daemon. https://gpsd.gitlab.io/gpsd/index.html(accessed 1 October 2019).
19 19 GitHub (2019). Kalibr. https://github.com/ethz-asl/kalibr(accessed 1 October 2019).
20 20 OpenCV (2019). OpenCV. https://opencv.org(accessed 1 October 2019).
21 21 GitHub (2019). ORB-SLAM2. https://github.com/raulmur/ORB_SLAM2(accessed 1 October 2019).
22 22 Geiger, A. (2019). libELAS. http://www.cvlibs.net/software/libelas(accessed 1 October 2019).
23 23 GitHub (2019). Mask R-CNN. https://github.com/matterport/Mask_RCNN(accessed 1 October 2019).
24 24 GitHub (2019). Baidu Apollo. https://github.com/ApolloAuto/apollo(accessed 1 October 2019).
25 25 GitHub (2019). OpenStreetMap. https://github.com/openstreetmap(accessed 1 October 2019).
2 In-Vehicle Communication Systems
2.1 Introduction
As shown in Figure 2.1, one key component in the modular design architecture is the in-vehicle communication network, which allows Electronic Control Units (ECUs), sensors, and other components to communicate with each other. Note, the Controller Area Network (CAN) bus is the most widely used in-vehicle communication network today due to its simplicity.
In this chapter, we introduce in-vehicle communication systems. We first introduce CAN bus, which is a high-integrity serial bus system for networking intelligent devices. Also, we introduce FlexRay, a deterministic, fault-tolerant, and high-speed bus system developed in conjunction with automobile manufacturers and leading suppliers; FlexRay is meant to gradually replace CAN as the default in-vehicle communication network. In addition, we introduce CANopen, a communication protocol and device profile specification for embedded systems used in automation, as well as CANopenNode, a free and open source CANopen Stack written in ANSI C in an object-oriented way. We believe this chapter will provide sufficient background for readers to understand in-vehicle communication networks.
A CAN bus is a high-integrity serial bus system for networking intelligent devices. CAN buses and devices are common components in automotive and industrial systems. Using a CAN interface device, applications can be developed to communicate with a CAN network [1,2].
In the past few decades, the need for improvements in automotive technology caused increased usage of electronic control systems for functions such as engine timing, anti-lock brake systems, and distributor-less ignition. Originally, point-to-point wiring systems connected electronic devices in vehicles. As more and more electronics in vehicles resulted in bulky wire harnesses that were heavy and expensive, point-to-point wiring was no longer scalable.
To eliminate point-to-point wiring, automotive manufacturers replaced dedicated wiring with in-vehicle networks, which reduced wiring cost, complexity, and weight. In 1985, Bosch developed the CAN, which has emerged as the standard in-vehicle network.
Figure 2.1 Modular design architecture.
CAN provides a cheap, durable network that allows the devices to communicate through the ECUs. CAN allows the ECUs to have one CAN interface rather than analog inputs to every device in the system. This decreases overall cost and weight in automobiles. Each of the devices on the network has a CAN controller chip and is therefore intelligent. All transmitted messages are seen by all devices on the network. Each device can decide if the message is relevant or if it can be filtered.
Читать дальше