The classification and the position estimation of objects become more and more relevant as the field of robotics is expanding in diverse areas of society. In this Bachelor Thesis, we developed a cone detection algorithm for an autonomous car using a LiDAR sensor and a colour camera. By evaluating simple constraints, the LiDAR detection algorithm preselects cone candidates in the 3 dimensional space. The candidates are projected into the image plane of the colour camera and an image candidate is cropped out. A convolutional neural networks classifies the image candidates as cone or not a cone. With the fusion of the precise position estimation of the LiDAR sensor and the high classification accuracy of a neural network, a reliable cone detection algorithm was implemented. Furthermore, a path planning algorithm generates a path around the detected cones. The final system detects cones even at higher velocity and has the potential to drive fully autonomous around the cones.
We would like to thank a number of people who have encouraged and helped us in writing this Bachelor Thesis. We are very proud of the achieved results and we appreciate the support we received from all sides.
We are much obliged to Prof. Dr. Roland Y. Siegwart for his support, for the confidence in our project and for providing the opportunity to execute it.
Special thanks to our supervisors and PhD candidates Renaud Dubé and Mark Pfeiffer. Their broad knowledge and experiences in perception, machine learning, control and path planning as well as their very professional and friendly way of support had a wide influence on the results and also on our education. They persistently helped us with many complex questions and motivated us to extend the scope of the project into the right directions.
We are very thankful to all members of the team ARC and are happy to have spent a year together working as a team on our shared vision of Project ARC. We have formed a very capable team and helped each other to realize our ideas.
Most importantly, we are very grateful to all our friends and family members who supported us during the whole project and helped us to achieve our aims.
Zürich in June 2017,
Nico Messikommer and Simon Schaefer
- Acronyms and Abbreviations
- 1 Introduction
- 2 Alternative Approaches
- 3 System
- 4 Experimental Results
- 5 Conclusion
Acronyms and Abbreviations
- Autonomous Racing Car
- Convolutional Neural Net
- Central Processing Unit
- Swiss Federal Institute of Technology
- Global Navigation Satellite System
- Graphical User Interface
- Hue, Saturation, Value Colorspace
- Lightness, Green-Red and Blue-Yellow Colourspace
- Light Detection And Ranging
- Logitech Webcam c920
- Model Predictice Control
- Oriented FAST and Rotated BRIEF - Simultaneous Localisation And Mapping 2
- Red, Green, Blue Colorspace
- Robot Operating System
- Robust Visual Inertial Odometry
- Simultaneous Localisation And Mapping
State Vector Machine
- Visual Inertial
1.1 Vision and Motivation
Detecting objects reliably is a crucial and necessary part of fully autonomous driving, especially for anticipating the actions of other road users, e.g. cyclists and pedestrians. While current object detection approaches have to deal with issues regarding accuracy or computational power, we want to solve these problems with combining sensors, exemplary demonstrated on the basis of cone detection 111As demonstrated in 4 we developed a method providing high accuracy and recall with low computational demand compared to merely camera or Light Detection And Ranging (LiDAR) based approaches..
The motivation behind our Bachelor Thesis arose during our participation in the project Autonomous Racing Car (ARC). The goal of Project ARC was to develop a vehicle capable of driving autonomously on a Swiss mountain pass using a vision-based Teach & Repeat method [furgale]. To autonomously drive a given path, this path first needs to be manually driven and teached to the vehicle. This methode can be useful for repeating frequent routes such as commuting to work and public transportation. This approach however requires a-priori knowledge of the environment which is not always practical in real-world scenarios.
Within the scope of our Bachelor Thesis, we want to take a further step towards fully autonomous driving, i.e. to develop a system independent of the Teach & Repeat method and which does not rely on prior knowledge about the environment. To this end, we decided to focus on a fully autonomously slalom drive around cones. In order to drive a slalom, the car has to reliably detect the cones marking the course. There also lays our main focus; the development of a cone detection using a comination of a colour camera and a LiDAR sensor by applying simple constraints for the preselection of candidates and a machine learning algorithm to identify the cones.
As our main focus lays on the detection of cones, we want to develop a system able to identify cones placed on a road with a low false positive rate and a high accuracy in the estimated cone position. A low false positive rate is crucial due to the fact, that a false detection can lead to an eroneous decision by the vehicle. The cone detection should even provide correct results in a busy environment, where plenty of objects are located beside the cones. As an additional goal, the detected cones should be stored in a global 2D cone gridmap in order to plan a global path around the cones. To compute the global position of the cones, the state of the vehicle first needs to be estimated in real time. At the beginning of our Bachelor Thesis, we decided to employ the same state estimation technique which was used for the teach part during Project ARC as we assumed this state estimation to be accurate enough for driving around cones. Furthermore, the second additional goal was to generate a path around the detected cones. In the end, the system should be capable of driving fully autonomously around cones.
As this Bachelor thesis is conducted within the framework of Project ARC, our developed system is implemented on an electric car, an eRod designed and manufactured by Kyburz Switzerland AG, used during Project ARC. The modified eRod has an electrically actuated steering and braking system. Due to the car’s application in Project ARC, we were restricted in positioning the sensors, shown in Figure 1. As further explained in 2, we chose a combination of a LiDAR sensor and Logitech Webcam c920 (LOGITECH) in order to detect cones, while for the state estimation merely rotary and steering angle encoders are used.
The 3D LiDAR sensor (Velodyne VLP-16) emits rays of wavelength 903 nm with 5-20 Hz in every horizontal direction and between 15° in vertical direction, with an angle resolution of 2° in vertical and 0.4° in horizontal direction. Surfaces in the stated range reflect the laser beam. Using the measured time difference between the outgoing and incoming laser beam, the horizontal and the pitch angle, a point cloud can be constructed. In addition, the LiDAR sensor provides information about the intensity of the reflected beams. The intensity varies according to the reflectivity of the reflecting surface.
The colour camera provides Red, Green, Blue Colorspace (RGB) mono images in 1080p resolution recorded with a rate of 30 Hz. As normally used for video calling applications, the camera adjusts focus as well as exposure automatically. To ensure a sharp image of the cones in front of the car, the focus was set to infinity. Since the colour camera is placed directly below the LiDAR sensor, a transformation from world to image plane using a pinhole camera model requires only a translation.
1.4 State of the Art
To the best of our knowledge, there is little scientific work which was published on the topic of real-time cone detection for autonomous driving. In 2004, F. Lindner, U. Kressel and S.Kaelbarer [trafficSign] presented merely vision based approach using single-pixel-classifier, i.e. a detection of specific colours and shapes, for a real-time traffic sign detector. In [trafficSign] an object classification was already seperated from detection, so that the classifier has to evaluate solely preselected images. As an accurate position estimation is not necessary for traffic sign detecting, this merely vision based approach provided a high accuracy in detection but was imprecise in estimating the objects position. For improve the accuracy of position estimation, H. Yong and X. Jianru [cone_line_detection] propose an approach based on the fusion of radar and camera. In this approach, the cones are treated as triangles and the triangle’s chamfers are detected using chamfer matching as shown in Figure 2.
Since this approach allows to detect cones at different scales (i.e. distances), it has a recall rate of 90 %, but as shown in Figure 2, this method is vulnerable to shapes enclosing similar chamfers. Hence, a low accuracy, 69.2 %, is achieved.
1.5 Structure of the Report
In section ”Alternative Approaches” 2, the advantages and disadvantages of only vision based and only LiDAR based methods for cone detection are elaborated. Afterwards, in chapter ”System” 3 our components are introduced one by one. Following, the chapter ”Experimental Results” 4 contains the performance analysis of the cone detection as well as of the overall system driving around cones. In section ”Conclusion” 5, a short summary and an outlook is presented.
2 Alternative Approaches
The sensor configuration provided by Project ARC includes three exteroceptive sensors for environment perception, the LiDAR sensor, the Visual Inertial (VI)-sensor and the colour camera. As the VI sensor records black-and-white, the rich colour information is lost. Furthermore, due the inclination of the VI-sensor towards the road, a small section far away from the camera is captured. In order to detect cones, we decided therefore to evaluate three possible configuration: LiDAR only, vision only and a combination of both. Due to the goal of fully autonomously driving a path through cones without further knowledge of the environment, a reliable, real-time and computational efficient classification algorithm is necessary. Hence, in the following the advantages and disadvantages of each approach are elaborated.
2.1 Only LiDAR based Cone Detection
Due to its position at the top of the car and its limited vertical and horizontal angular resolution, the main challenge in a LiDAR-based cone detection implemented on our system certainly is handling the sparseness of the LiDAR sensor measurements. Figure 3 illustrates this scenario with a top-down view on the LiDAR reading pattern. Therefore, a cone can potentially lay between two reading lines invisile for a limited time to the laser. Assuming the shape of a cone as a pyramid, a cone is hit by less than 5 laser points from a distance more than 5.84 m and less than three laser points from a distance more than 7.33 m.
Having the goal to detect the cone without ambiguity and as far away from the car as possible, neither a spatial segmentation as in [lidar_segmentation] nor a definite object classification using a State Vector Machine (SVM) approach proposed by M. Himmelsbach [lidar_classification] is feasible. Due to sparsity, an another approach is the definition of simple constraints, which will be further described in section 3.2, for the LiDAR sensor points, so that cones can be detected up to a distance of 38 m. Because of the highly reflective surface, the intensity values can convey valuable information for identifying cones. But since a high reflectivity is not a property unique for cones, an high false positive rate is the result as shown in Figure 4.
2.2 Only Vision Based Cone Detection
A vision-based approach using a colour camera provides more information for classification, such as details about texture or shape but basically no depth infromation. Furthermore, since the information is not discretised into spatially distributed points, sparseness is not an issue. As most vision-based approaches work well in binary classification (i.e. to decide whether an image contains a cone or not), a sliding window algorithm cropping images out of the overall image can be employed in order to provide classification candidates. Here, a trade-off between limiting the number of images evaluated per frame, and the accuracy in position estimation, determined both by the windows size, has to be found. The high computational cost is one of the biggest disadvantages of a sliding window approach. As we made preliminary experiments using this approach, the frame rate of the the colour camera had to be dropped to 2 Hz in order to obtain the same classification accuracy as our final cone detection. The usage of a stereo camera would improve the accuracy of the position estimation of the cones but has several disadvantages. The biggest disadvantages are the necessity to detect and identify a cone in two images as the same cone and the computational demanding implementation. A vision-based approach certainly is computational demanding when the same accuracy in position estimation of the cone should be achieved as a LiDAR-based approach. Therefore, a computational efficient algorithm has to be developed which is precise in the detection of cones.
Next to the highly reflective surface, the cones we considered in our experiments exhibit an orange color as well as a triangular shape, both properties easily distinguishable from other objects. Hence, reasonable approaches for vision-based cone detection is to regard the cone as a triangle and calculate the enclosed angle or to search for objects with an orange color. In the following, the different approaches are evaluated based on prior conducted experiments.
In order to detect the specific triangle shape of cones with the edges in the image obtained by applying a Canny Edge Detector, the RGB image from the colour camera has to be converted into a grayscale image. Inputting the resulting edges in a Hough transformation locates and parameterises lines in the image. The specifc triangle shape of cones in the image can be found by computing and searching for the correct angle enclosed by two lines. Once a specific triangle shape of cones is detected, the image is classified as a cone. Altough this approach is very computational intensive, it works well for cones close to the camera. But as already shown by [cone_line_detection], a lot of other objects enclose a similar triangle resulting in a high false positive rate.
Another possible approach is to detect the colour of the cone. As a first step for colour detection, the RGB image recorded by the colour camera is converted into the Hue, Saturation, Value Colorspace (HSV) to separate colour from brightness information. Afterwards, the overall intensity of the orange color is calculated and compared to a threshold. A detection based on an object’s colour is computationally highly efficient, but vulnerable since a lot of structures in the environment have a similar colour, as shown below.
Combination of Line and Colour Detection
Combining triangle detection with colour detection improves the classification accuracy. However, as pictured in Figure 7, this method can potentially wrongly detect challenging objects such as backlights. Nevertheless, since every cone exhibits these properties, a recall of about 100 % is achieved. Hence, a combination of colour and simplified triangle detection works very well in preselecting images that could contain a cone.
Machine Learning Approaches
For a more accurate classification, a more advanced method is required. Two frequently used methods in object classification are Convolutional Neural Net (CNN)s as well as SVMs. SVMs weigh features in the input image in order to classify an image. In opposite to the previous approaches, a lot of training data is required but in return, a more distinct detection results. As shown in [conv_net_vs_svm] with the example of pedestrian detection, the used CNNs in the experiments are less computational demanding and have a smaller false positives rate than used SVMs with the same overall accuracy. Thats why we decided to evaluate a CNN and a fully connect neural network for the implementation on our system.
In order to fully autonomously drive a path between cones, we first need to detect the cones, then estimate their position relative to the car, plan an optimal path around the cones and control the eRod according to the planned path. In this chapter, our approach will be presented.
3.1 System Overview
As our Bachelor Thesis is based on Project ARC, we were able to adopt the state estimation as well as the high- and low-level control and focused on the development of a reliable cone detection.
In the final system, merely the colour camera, the LiDAR sensor as well as rotary and steering encoder are used. As it can be seen in Figure 8, for cone detection, we decided to combine the LiDAR sensor with the colour camera in order to ensure both, a fast and accurate position estimation of a cone as well as a reliable classification. Hence, in our final system, we preselect cone candidates from all objects in the environment and estimate their global positions using the LiDAR sensor and the pose of the car. An image of the candidates is then cropped out of the overall image by transforming the estimated object’s position into the image plane using a pinhole camera model. Then, these cropped images are evaluated with a visual detection, if they contain a cone or not. After the visual evaluation, the cones are stored in a 2D cone gridmap, so that a path around the cones can be planned. In opposite to a visual-based sliding-window approach, only a few candidate images have to be evaluated. Hence, our system is capable of operating in real time even if an accurate, and therefore computational demanding, classifying algorithm is used. Nevertheless, in contrast to a merely LiDAR-based approach (e.g. a spatial segmentation), the system is able to detect cones far away from the car, due to the fact that only one laser point reflected from a cone is needed for detection. Furthermore, to control the car while driving autonomously, a Graphical User Interface (GUI) was developed. Next to a button to change between autonomous and manual mode, a map shows all of the detected cones as well as the planned and driven path, as shown in Figure 9.
3.2 LiDAR Based Candidate Extraction
The LiDAR sensor captures a 3D pointcloud of the environment. Every point of the 3D pointcloud comprises to a local coordinate as well as to an intensity. In order to extract cone candidates out of all of these points as far away and as computational efficient as possible, simple constraints for the points had to be found. Due to the highly reflecting surface of a cone, we decided to use an intensity threshold as the most important criterion for the detection of points reflected by cones. As the LiDAR detection has to handle both, the highly reflective (white-coloured) as well as the less reflective surface (orange-coloured) of the cone, the intensity threshold was set below the intensity of the points reflected by the orange surface resulting in filter detecting other reflective objects (e.g. number plates, streetlamps, backlights) as cones. That is why, in addition to an intensity threshold other geometric properties have to be fulfilled by a candidate, assuming the cones on the ground in front of the car, as shown in 10.
With this approach, a candidate selection ensuring to detect every cone as soon as possible is implemented. The simple LiDAR detection minimises the number of images required to be classified by the visual detection. As the visual classification obtains only images preselected by the LiDAR detection, an high recall is much more important than precision for the LiDAR detection.
3.3 Image Based Cone Detection
Once the LiDAR sensor has preselected the candidates and an image is cropped, the visual classification algorithm determines if the cropped image contains a cone or not. As stated in section 2, we selected a neural network as a suitable visual classification approach for our application.
Due to the distinguishable features of a cone and the necessity of the algorithm to run on a Central Processing Unit (CPU
) in real time, it was decided to evaluate two small neural networks; a fully connected neural network with a maximum of 3 layers and a small convolutional network. A cone with its orange colour and its shape can be easy differentiated from other objects so that a network containing merely a few layers is sufficient to detect cones. Furthermore, small networks require less time to classify an image and are therefore appropriate for running in real time on the computer on the vehicle. The fully connected network was selected due to its simplicity and the broad usage in different applications. As a fully connected network inputs the whole image at once, it is difficult to detect cones near to the camera as well as cones far away from the camera due the changing scale. In order to account for this problem, the convolutional network was selected as a second network for evaluation. The convolutional network extracts features at different levels and thereby is capable of detecting cones of different sizes in the cropped images. All the networks were programmed with the open-source software library tensorflow from Google[tensorflow].
When designing the two architectures, several optimisation iterations were performed. The parameters varied during the optimisation process can be found in Figure 11 and Figure 12. The goal of the optimisation process was to increase accuracy and decrease the model’s query time. As the final network should run in real time on the CPU of the computer on the car, the computing time is an important criterion.
Different network architectures were trained on various changed parameters on a training dataset with over 20’000 images, which were recorded and labelled during this Bachelor Thesis. In total over 4 hours were spend on labelling data. The accuracy and the computing time of the neural networks was calculated and measured on a test as well as on a validation dataset with the same computer. In order to test the robustness of the neural networks, both datasets were recorded on a different day and under different light conditions than the training dataset. The information about the used datasets can be found in Tabel 1.
During the optimisation process, especially two adjustments had a great positive impact on the accuracy of all networks: the normalisation of the weights and transformation into the Lightness, Green-Red and Blue-Yellow Colourspace (LAB) of the image colours as well as the introduction of regularisation functions. The cropped RGB image is transformed into the LAB, in which the colour information is separated from the brightness resulting in a more accurate classification of cones under different light conditions. As a second adjustment, in order to prevent the neural network from overfitting on the training dataset, the introduction of L1 regularisation functions has considerably improved the accuracy of the networks. This improvement can be seen in Figure 13
on the left side. Since the linear L1 regularisation reacts more robustly to outliers and as the network should recognise similiar objects, a L1 regularisation provides slightly more reliable results compared to L2 regularisation. With a higher regularisation factor, the accuracy on the test dataset increases. Moreover, a dropout was added, but did not improve the testing results. Furthermore, as illustrated in Figure13 on the right side, the more time the evaluated neural network requires to classify images, the more accurate it is. From 9 s query time the model overfitting occurs, so that the accuracy on the validation dataset decreases. The computing time was measured by applying the neural network on 108 images on the validation dataset using the same computer for all datasets.
The final decision fell on a convolutional network, marked with red in Figure 11. This network had the highest accuracy on all datasets and with an average query time of 81 ms per image which is still capable of running in real time while driving. The final convolutional network was trained, as all the other evaluated neural networks, in 2000 iterations with a batch size of 64 and a learning rate of 0.001 on the training dataset. The structure of the final convolutional network is depicted in Figure 14.
Moreover, in Figure 15 a Receiver-Operating-Characteristic (ROC) curve is illustrated, which was created on the validation dataset. The operating point of the final convolutional network is marked with a blue circle. The operating point was chosen in order to have the highest true positive rate given a low false positive rate. Therefore, the algorithm detects with a low possibility an object falsely as a cone. This misclassification should be avoided, as the whole system is required to be restarted once an object is falsely classified as a cone. On the other hand, when an image of a cone is not classified as cone, the colour camera and the LiDAR sensor detection provide more candidates for the neural network to detect the cone.
When an object is detected and classified as a cone, the position of the cone is stored in a global 2D cone gridmap. Next to visualisation issues, the 2D cone gridmap is required for planning a global path and therefore for driving autonomously around the cones. In order to calculate the global position of new detected cone, the pose of the car as well as the position of the new detected cone in the coordinate frame of the LiDAR sensor are needed. The pose information of the car is determined by an external state estimation. Furthermore, the local position of the cone measured by the LiDAR sensor is transmitted once the visual classification has identified a cone. The coordinate origin of the global frame is the start position of the car. Combining the pose of the car and the local position results in a global position of the cone in the global coordinate frame. Due to the high precision of the LiDAR sensor, in our case, it is sufficient to rely on the first detected position of a cone and to drop further position measurements belonging to the same cone afterwards, thus a statistical position estimation approach of cones was not considered.
3.5 Path Planner
In order to drive autonomously a slalom around the detected cones, the car has to follow a given path. This path is generated by the path planner. The path planner takes the 2D cone gridmap containing the detected cones as a single input and creates in the same global coordinate frame as the 2D cone gridmap a discrete path. The path has to be global due to the fact that the Pure Pursuit Controller adopted from Project ARC needs a global and discrete path as well as a global position for calculating the steering and velocity controls.
As the car should drive smoothly around the cones, the path needs to have a low second derivative. Furthermore, the path should pass the cone alternately on the right and left side of the driving direction. Due to these two requirements, a simple cosine approximation between two cones was chosen. As the LiDAR sensor does not detect the cones in a specific order, it is therefore possible that a cone in nearer distance to the car is detected after the path is already generated around a previously detected cone further away. Due to this reason, the path planner also verifies if the newly detected cone lays between already detected cones. When this is the case, the path planner updates the whole path.
As a first step, the path planner generates a straight forward path if no cones are detected. Once the first detected cone is stored in the 2D cone gridmap, the path planer generates a cosine in a range between 0 and /4 rad from the start point to the first detected cone. Afterwards, the path planner rotates and stretches a cosine in a range of rad between two cones according to their global position. A simple cosine approximation is depicted on the left side of Figure 16. The green dots represent the calculated path and the white crosses symbolise the detected cones. When the cones are not aligned, two following cosines either have a gap or are overlapping, as shwon in 16. In the first case, the path planner adds filler points in the gap with a fixed distance to the selected cone. In the second case, the path planner removes the overlapping points. The filler points and the removal of points are illustrated in Figure 16 on the right side.
4 Experimental Results
The main focus of our Bachelor Thesis was to develop a reliable cone detection algorithm. As an additional objective, the car should drive fully autonomously around the detected cones. Therefore, the performance analysis can be divided into two sections, the evaluation of the cone detection and of the overall system performance.
4.1 Cone Detection
The final convolutional network detects reliably cones amongst other objects. On the training dataset the accuracy reached 100%, on the test dataset 95.3% and on the validation dataset 96.26%. In Figure 17 on the left side, correctly classified example images can be seen. Only in very few specific cases, the convolutional network classifies an image falsely as a cone. One of these specific cases is depicted in Figure 17 on the left side. The backlight of the car has the same red and white stripes as a cone. Furthermore, the shape of the backlight resembles the shape of a cone.
As the final convolutional network is trained on images of cones on a road, a classification of cones in other surrounding would lead to a decreased accuracy. However, the network is still capable of detecting cones even in different surroundings than a road, which can be seen in Figure 18.
Nevertheless, the final convolutional networks detects almost every cone placed on the road and with an average classification time of 81 ms per image, the convolutional network runs in real time on the computer on the car while driving. Moreover, the final convolutional network is capable of detecting cones even at velocities above 40 km/h. At higher velocities, the webcam captures only a few candidate images of the cones. The implemented networks still detects all the cones passed by the car.
Inception v3 is deep neural network for image recognition, which is trained on ImageNet and can additionally be adapted to the recognition of specific objects (e.g. cones)
In comparison to the Inception v3 network ([Inception]) 222
Inception v3 is deep neural network for image recognition, which is trained on ImageNet and can additionally be adapted to the recognition of specific objects (e.g. cones)[InceptionWebsite]., which needs 371 ms to classify an image, the final convolutional network requires only 51 ms with the same computer. The value of the computing time of the final networks differs from the value stated in Figure 11 due to the usage of two different computers. The accuracy of the Inception v3 network on the validation dataset could not be computed due to the required time to train the inception network on 20’000 images in order to compare both approaches properly. The performance compared to the methods mentioned in alternative Approaches can be found in Table 2. In conclusion, the final convolutional network is capable of detecting reliably and rapidly the cones even when only few candidate images are provided.
|Approaches||Accuracy [%]||True Positive Rate [%]||False Positive Rate [%]||Time (per
As a further improvement for the cone detection, a filtering before the classification with the convolutional network using a combination of colour and line detection improves the computing time of the cone detection algorithm. One test with the combination was conducted and resulted in a lower computing time on the validation dataset. The results of the test are shown in Table 3. The accuracy of the combined algorithm decreases as the line detection and colour detection are filtering some images with cones. As in our application the final neural network is sufficient regarding query time, we decided to maintain the merely neural network based classification approach.
|Approaches||Accuracy [%]||True Positive Rate [%]||False Positive Rate [%]||Time (per
4.2 Overall System
The system developed within the scope of our Bachelor Thesis has the potential to drive fully autonomously around cones. Almost in every validation test at the end of the testing phase, the cone detection identified all the cones and the path planner generated a slalom around the cones accordingly. In one third of the tests, the car did drive successfully a slalom around two cones. The limiting factor was the external state estimation. At the beginning of the Bachelor Thesis we assumed, that the state estimation used during Project ARC was accurate enough for the specific case of driving a slalom around cones. But as it turned out this assumption was not valid.
The visual odometry algorithm Robust Visual Inertial Odometry (ROVIO), optimised and used successfully during Project ARC, had some global inaccuracies. As the drift is identical in teach as well as in repeat phase, during Project ARC, the global drift does not pose a problem. Due to the global inaccuracy, ROVIO was not suitable for driving a narrow path around cones. One of the failed experiment with ROVIO in combination with the visual Simultaneous Localisation And Mapping (SLAM) algorithm Oriented FAST and Rotated BRIEF - Simultaneous Localisation And Mapping 2 (ORB-SLAM2) can be seen in Figure 19. On the left side, the GUI is depicted with the generated path marked with green dots and the driven path with red dots. The position of the detected cones are illustrated with white crosses. On the GUI, the position of the car and the cones seems to be correct. However, as it can be seen on the colour camera image of the same test on the right side of Figure 19, the car would have driven over the cone.
The localisation with the Global Navigation Satellite System (GNSS)-Receiver was tested as well but lead to an imprecise position estimation. We thereby decided to use a simple kinematic bicycle vehicle model. This method takes only the actual steering angle and the velocity measured by the rotary encoders as inputs. Unfortunately, due to the inaccuracies of the kinematic bicycle vehicle model, the accuracy of the position estimation decreases while driving. Therefore, we were only able to drive a short distance. In retro perspective, an earlier testing of the state estimation would have shown the problem at an earlier stage and would resulted in more time in order to optimise ROVIO for our specific case. However, the system was capable of driving around two cones using the kinematic bicycle vehicle model in certain cases. In conclusion, the development of a reliable cone detection as well as of the framework for driving a slalom around cones could be achieved in this Bachelor Thesis.
In this Bachelor Thesis an innovative approach for performing object detection was demonstrated using a combination of a mono colour camera and a LiDAR sensor, illustrated by detecting cones. This approach allows to combine a reliable (i.e. as shown computational demanding) classification with an accurate position estimation of the detected object and is capable to run in a real-time application. For cone detection, easy contraints for each laser point to preselect cone candidates and a convolutional neural network to classify the candidates provide an optimal result. In this way, a high recall as well as a high accuracy in object detection were achieved.
Regarding the overall system, the car drove a short distance around cones due to the inaccurate state estimation. In the state estimation used for our Bachelor Thesis we see a lot of room for improvement as the state estimation was not in the focus of this Bachelor Thesis and assumed to be given. An optimisation of ROVIO
for our specific case would probably increase the accuracy of the pose estimation. It is also possible to localise against the computed position of already detected cones. In combination withROVIO, a localisation using the already detected cones would lead to a more robust state estimation. Furthermore, a Model Predictice Control (MPC) would improve path planning as it would account for the dynamics of the car. The car would then drive on an optimised path around cones. Moreover, it is worth considering to position the LiDAR sensor at the front of the car in order to detect the cones constantly without having a blind spot. As a result not only a more robust state estimation but also the possibility of a local control would emerge. We are confident, that with these mentioned modifications and our reliable cone detection a system can be developed capable of driving a long distance around cones even at higher velocities.