The self-driving unmanned ground vehicles (UGV) design problem is analyzed in this paper. Two methodological problems of UGV design are formulated. The first problem is the difference between the purpose of creating a self-driving automobile from UGV, which leads to fundamentally different systemic solutions. The second methodological problem is associated with the need for sufficiently deep knowledge and the ability to work with a number of technologies that are used in the complex to create a control system for self-driving. The joint analysis of these problems allowed us to put forward a number of control systems design principles for self-driving UGV, including the principle of upcycling, the principle of using a discrete-event model for the logical synchronization of the operation of modules and the principle of ensuring the functional safety of the UGV during autonomous movement. The principle of using the discrete-event model for synchronizing the operation of software modules is explained by the example of a Petri net. A general solution to the problem of quantitative evaluation of the safety of autonomous movement of UGV is presented. The considered principles were used during development of prototypes of self-driving control systems for various purposes.