Abstract
Autonomous vehicles (AVs) capable of safe operation on urban roads are a complex problem that involves many subdomains of Robotics. This use case chapter presents the lessons that the authors learned while using the ROS framework to support the AV development efforts of Cruise, originally acquired by General Motors in 2016, and now an independent company. Scaling ROS to this level of complexity and team size brings an interesting viewpoint to its design decisions and can help guide the future direction of the community. After briefly introducing the hardware and software stack on a modern AV, the chapter begins with a discussion of ROS’ defining abstraction, publish/subscribe, and how it impacts system design and performance. Afterwards, we share our point of view about the complementary tools in the ROS ecosystem: visualization, data recording, and the build system. We conclude with the fundamental task of simulation and automated testing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
J. Altenberg, Introduction to realtime linux, https://www.youtube.com/watch?v=BKkX9WASfpI
Apex.ai homepage (2019), https://apex.ai
Apollo project design doc: Native Support with Protobuf, https://github.com/ApolloAuto/apollo-platform/blob/master/ros/docs/design/native_support_with_protobuf.md
Automated Driving with ROS at BMW (2016), https://www.ros.org/news/2016/05/michael-aeberhard-bmwautomated-driving-with-ros-at-bmw.html
E. Bendersky, Measuring context switching and memory overheads for Linux threads (2018), https://eli.thegreenplace.net/2018/measuring-context-switching-and-memoryoverheads-for-linux-threads/
G. Biggs, T. Foote, ROS 2 Design Documents: Managed Node, http://design.ros2.org/articles/node_lifecycle.html
A. Bockenkamp, roslaunch2: versatile, flexible and dynamic launch configurations for the robot operating system, in Robot Operating System (ROS): The Complete Reference, ed. by A. Koubaa, vol. 4 (Springer International Publishing, Berlin, 2020), pp. 165–181
H. Bruyninckx, Open robot control software: the OROCOS project, in Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No.01CH37164), vol. 3, May 2001, pp. 2523–2528. https://doi.org/10.1109/ROBOT.2001.933002
B. Cairl, Deterministic, asynchronous message driven task execution with ROS, presentation at ROSCon 2018 (2018), https://roscon.ros.org/2018/presentations/ROSCon2018_deterministic_asynchronous_message_driven_task_execution.pdf
California DMV Autonomous Vehicle Disengagement Reports (2018), https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/disengagement_report_2018
A. Dosovitskiy et al., CARLA: an open urban driving simulator, in Proceedings of the 1st Annual Conference on Robot Learning (2017), pp. 1–16
S. Glaser, E. Berger, W. Meeussen, pr2 controller manager ROS wiki page, https://wiki.ros.org/pr2_controller_manager
H. Fan et al., Baidu Apollo EM Motion Planner (2018), arXiv:1807.08048 [cs.RO]
S. Glaser, realtime tools ROS wiki page, http://wiki.ros.org/realtime_tools
C.S.V. Gutiérrez et al., Real-time Linux communications: an evaluation of the Linux communication stack for real-time robotic applications (2018), arXiv:1808.10821 [cs.OS]
C.S.V. Gutiérrez et al., Time Synchronization in modular collaborative robots (2018), arXiv:1809.07295 [cs.RO]
C.S.V. Gutiérrez et al., Towards a distributed and real-time framework for robots: evaluation of ROS 2.0 comLessons learned building a self driving car on ROS 29 munications for real-time robotic applications (2018), arXiv:1809.02595 [cs.RO]
S. Kato et al., An open approach to autonomous vehicles. IEEE Micro 35(6), 60–68 (2015)
J. Kay, A.R. Tsouroukdissian, Real-time control in ROS and ROS 2.0, presentation at ROSCon 2015 (2015), https://roscon.ros.org/2015/presentations/RealtimeROS2.pdf
I. LĂĽtkebohle, Determinism in Robotics, presentation at ROSCon 2017 (2017), https://roscon.ros.org/2017/presentations/ROSCon20ROS.pdf
I. LĂĽtkebohle, Why and how to achieve deterministic timing with ROS, presentation at ROS-Industrial Conference 2016 (2016), https://static1.squarespace.com/static/51df34b1e4b08840dcfd2841/t/58383609725e25680b8df592/1480078865773/ROS-I-Conf2016-day1-07-luetkebohle.pdf
P.E. McKenney, ’Real Time’ vs.’Real Fast’: How to Choose?
NVIDIA Drive AGX Origin (2019), https://nvidianews.nvidia.com/news/nvidia-introduces-drive-agx-orinadvanced-software-defined-platform-for-autonomousmachines
S.D. Pendleton et al., Perception, planning, control, and coordination for autonomous vehicles, in Machines 5.1 (2017). ISSN: 2075-1702. https://doi.org/10.3390/machines5010006, https://www.mdpi.com/2075-1702/5/1/6
M. Quigley et al., ROS: an open-source Robot Operating System, vol. 3 (2009)
ros-bazel code repository (2019), https://github.com/nicolov/ros-bazel
Self Driving Car Engineer Nanodegree homepage (2019), https://www.udacity.com/course/self-driving-carengineer-nanodegree--nd013
shm\_transport ROS wiki page, http://wiki.ros.org/shm_transport
Y.-P. Wang et al., TZC: efficient inter-process communication for robotics middleware with partial serialization (2018), arXiv:1810.00556 [cs.RO]
webviz code repository (2019), https://github.com/cruise-automation/webviz
W. Woodall, ROS 2 Launch, presentation at ROSCon 2018 (2018), https://roscon.ros.org/2018/presentations/ROSCon2018_launch.pdf
E. Yurtsever et al., A survey of autonomous driving: common practices and emerging technologies (2019), arXiv:abs/1906.05113
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Valigi, N. (2021). Lessons Learned Building a Self Driving Car on ROS. In: Koubaa, A. (eds) Robot Operating System (ROS). Studies in Computational Intelligence, vol 895. Springer, Cham. https://doi.org/10.1007/978-3-030-45956-7_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-45956-7_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-45955-0
Online ISBN: 978-3-030-45956-7
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)