• No results found

Conclusions and future work

The main objectives of this research comprised implementing, investigating, and evaluating a practical implementation of a system with tracking and sensor fusion techniques, for an embedded platform. A complete practical working setup was the major outcome of the graduation project described in this thesis, and based on results, the research questions were answered.

The uncomplicated and fast complementary filter was used to fuse encoder and IMU data, which greatly increased the ego-motion sampling frequency from 50 to 140 Hz, in addition to increasing its accuracy. The estimation of the ego-motion impact, in terms of pixel movement, was implemented through approximation functions that are only dependent on the derived speed and gyroscope data, and proved to be fairly accurate without the need for more complex procedures. The standard Kalman filter implemented considers the pixel speeds derived with the ego-motion data, and proved to handle false-negatives, target occlusions and decrease the position deviation in a reliable manner meanwhile dealing with several uncertainties. However, due the fact that a pure software solution was used for the tracking system and a 0.5 seconds delay was introduced by the wireless transmission of the video stream, the complete implementation has a noticeably slow responsive behavior. Ultimately, responsiveness of the system is strictly related to the execution time of the neural network, in addition to the delay present: both must be reduced in order to enhance performance.

During development computational complexity was always considered and reduced whenever possible. Firmware running on the robotic system, for instance, only uses floating-point divisions for the speed control loop (PID controller), and double precision is avoided at all costs. Moreover, the Pre- Kalman filter module only requires sine and cosine functions to properly compute the pixel speeds based on the ego-motion data, and in the worst-case scenario might be bypassed at a cost of decreasing the performance of the Kalman filter. A specific library was developed for the latter, which includes dynamic timing computation (if desired), uses float precision, few variables (thus does not require lots of memory) and does not implement matrix operations (i.e. inversion) in order to further reduce execution time of the implementation. The PID controllers were also implemented in a specific library, and are similar in terms of precision and memory usage in comparison to the Kalman filter. Both instances of the Kalman filters and PID controllers can be instantiated and run in parallel, as there is no data dependency, hence they can be directly mapped to processing elements in a FPGA.

Although the final implementation executes on a PC, this gives room to exploring jitter and non-deterministic behavior, and does not invalidate the research; in practice, most industrial applications still make use of PCs. Moreover, the whole application is implemented such that it can be easily ported to an embedded Linux. The necessary modifications correspond to the usage of a retrieval method of the neural network output, modification of the serial port used for communicating with the robotic system, and tuning the PID controllers once more in case their sampling frequency is changed. Finally, both systems must be correctly connected and interfaced to properly communicate. If a bare-metal implementation is desired, however, modifications are rather complex. Both software and hardware implementations followed guidelines during development and can be easily modified to fulfill future requirements. This is possible because development considered possible functionalities addition in forthcoming versions, likewise understandability such that others can continue with the results of this graduation project.

103

Despite the final setup performed reasonably good given the constraints imposed by mainly the tracking system implementation, some parts are not ideal and can be improved. Reviewing the project arduously, the following aspects can be enhanced:

• Complementary filter: The filter can be better tuned, however a reliable way of accurately determining the speed of the robot must be used in order to do so;

• Speed estimation: Pitch correction can be included, while considering roll and implementing mechanisms to prevent accumulating speed when the robot is rolling or pitching;

• Communication between tracking and robotic system: Instead of using an USB cable to connect both systems, a direct (serial) connection would be a far superior implementation; • Real-time implementation: The neural network should be ported to a FPGA, alongside the

other software components being totally (or partially) ported to an embedded Linux (or bare-metal). Not only would it hugely decrease the current delay introduced by the stream, but also mitigate the bottleneck of the neural network and remove the need for extra applications, thus increasing the system performance. Finally, multiple-object detection and localization, alongside power optimization are relevant topics, and might be addressed; • Pre-Kalman filter: The number of points considered to estimate the base speed and angle

functions can be further augmented to increase the precision of this module. Moreover, alternatives to estimating the ego-motion impact might be explored;

• Kalman filter: A variation of the standard Kalman filter or even a completely different method might perform better, and could be explored in the future. Moreover, the current design can be augmented with other techniques and improved with further testing;

• Pixel control: Re-tuning and greater sampling frequency might be addressed. Furthermore, steering the robot can be performed in a different manner, or completely modified to a distance control approach. Finally, the control can be optimized for delay and uncertainties; • Additional modules: The robotic system may include extra modules, such as a compass for

determining the current heading, thus positioning is possible. Moreover, a Bluetooth can replace the USB connection with the PC, although its protocol stack might introduce delays. Additionally, the camera can be mounted on top of a servo motor, in order to follow the target by moving the camera, although this complicates the design and invalidate the current ego-motion impact estimation. Finally, an ultrasonic sensor can be placed in front of the robotic system to derive the distance to other objects;

• Communication protocol: The protocol does not implement any type of Cyclic Redundancy Check (CRC) nor ACK/NACK procedures, which may compromise the communication in the long term. Hence, it is advisable to improve such protocol, especially when relevant data is sent or received, alongside increasing the serial baud rate, if supported by the tracking system; • Neural network and Kalman filter combination: Instead of filtering out the output of the neural network, the Kalman filter might be combined with the neural network itself. However, a more complex network architecture and training set are required in this case;

• Real-Time analysis: RT tools were not used to analyze the tracking system software, hence future work should determine the theoretical bounds on throughput and latency.

It is important to keep in mind that a system can always be improved. Moreover, a wide variety of alternative designs might be derived from the current realization.

104

Related documents