ABSTRACT
Autonomous vehicles and other robotics systems are frequently implemented using a general-purpose programming language such as C++, and prototyped using domain-specific tool such as MATLAB/Simulink, and LabVIEW. Such an approach is not efficient when programming primitive motions of autonomous vehicles when considering important safety constraints, and when promoting the broad access to robotic systems through involvement of students and aspiring students who do not know conventional low-level programming languages. Aside from general-purpose programming languages, there are languages that are specifically designed to model autonomous vehicles, such as SHIFT, but these languages are typically for simulation purposes only. This experience report discusses the creation of a domain-specific language that allows for faster programming of autonomous vehicles while ensuring valid constraints will be met. This language generates code for multiple controllers that will operate alternatively to allow for fast and effective programming of vehicle trajectories using primitive motions. In addition to improving coding efficiency and reducing the number of programming errors, the language adds a level of abstraction so that autonomous vehicle behaviors may be generated by people with little knowledge of low-level details of the car's operation. Furthermore, this language ensures safe operation of the vehicle by enforcing a set of user-definable constraints on the output path. A main set of constraints that are applied to every generated path have been specifically chosen to enforce safe switching between controllers and prevent the planning of unsafe actions. A novel application of the language is its ability to permit users to add specific constraints for a particular path; these constraints are checked for validity after the main constraint check is performed.
- J. Arnoldus, M. Van den Brand, A. Serebrenik, and J. J. Brunekreef. Code generation with templates, volume 1. Springer Science & Business Media, 2012. Google ScholarCross Ref
- E. Asarin, O. Bournez, T. Dang, O. Maler, and A. Pnueli. Effective synthesis of switching controllers for linear systems. Proceedings of the IEEE, 88(7):1011–1025, 2000.Google Scholar
- A. Deshpande, A. Göllü, and P. Varaiya. SHIFT: A formalism and a programming language for dynamic networks of hybrid automata. Springer, 1997.Google Scholar
- S. Donaldson. Look ma – no hands!, Aug. 2015. URL http:// ece.arizona.edu/ look-ma-no-hands.Google Scholar
- C. W. Krueger. Software reuse. ACM Computing Surveys (CSUR), 24(2):131–183, 1992. Google ScholarDigital Library
- D. A. Ladd and J. C. Ramming. Two application languagesin software production. In USENIX Very High Level Languages Symposium Proceedings. 1994. Google ScholarDigital Library
- A. Ledeczi, M. Maroti, A. Bakay, G. Karsai, J. Garrett, C. Thomason, G. Nordstrom, J. Sprinkle, and P. Volgyesi. The generic modeling environment. In Workshop on Intelligent Signal Processing, Budapest, Hungary, volume 17, page 1, 2001.Google Scholar
- D. Leijen and E. Meijer. Domain specific embedded compilers. In ACM Sigplan Notices, volume 35, pages 109–122. ACM, 1999. Google ScholarDigital Library
- S. Macrakis. From uncol to andf: Progress in standard intermediate languages. Open Software Foundation, macrakis@ osf. org, pages 1–18, 1993.Google Scholar
- M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain-specific languages. ACM computing surveys (CSUR), 37(4):316–344, 2005. Google ScholarDigital Library
- P. Morley, A. Warren, E. Rabb, S. Whitsitt, M. Bunting, and J. Sprinkle. Generating a ros/jaus bridge for an autonomous ground vehicle. In Proceedings of the 2013 ACM workshop on Domain-specific modeling, pages 13–18. ACM, 2013. Google ScholarDigital Library
- M. Popat. Hands off the wheel, please, Aug. 2015. URL http:// tucson.com/ news/ local/ take-a-ride-in-ua-s-driverless-car/ youtube_ 00f86f2c-408f-11e5-b94f-3bb8d0df702b.html.Google Scholar
- A. Van Deursen and P. Klint. Domain-specific language design requires feature descriptions. CIT. Journal of computing and information technology, 10(1):1–17, 2002.Google ScholarCross Ref
- A. Van Deursen, P. Klint, and J. Visser. Domain-specific languages: An annotated bibliography. Sigplan Notices, 35 (6):26–36, 2000. Google ScholarDigital Library
- E. Zuazua. Switching controls. Journal of the European Mathematical Society, 2008.Google Scholar
Index Terms
- Experience report: constraint-based modeling of autonomous vehicle trajectories
Recommendations
A safe autonomous vehicle trajectory domain specific modeling language for non-expert development
DSM 2016: Proceedings of the International Workshop on Domain-Specific ModelingManaging complexity while ensuring safely designed behaviors is important for cyber-physical systems as they are continually intro- duced to consumers, such as autonomous vehicles. Safety consid- erations are important as programming interfaces become ...
Modular language implementation in Rascal - experience report
All software evolves, and programming languages and programming language tools are no exception. And just like in ordinary software construction, modular implementations can help ease the process of changing a language implementation and its dependent ...
Experience report: using hackage to inform language design
HASKELL '10Hackage, an online repository of Haskell applications and libraries, provides a hub for programmers to both release code to and use code from the larger Haskell community. We suggest that Hackage can also serve as a valuable resource for language ...
Comments