Skip to main content

The use of floats/doubles with AVR assembler


So I've decided with the change of the DCM matrix and PI controller for navigation to change fundamentally the code layout with the use of data structures to make more sense of the information been passed on.

I also spend most of list night trying to get my head around whether float division is really such a problem. We'll based on references xxx and xxx it is. Float memory allocation is not a real issue but float division can really boggle down your code to the core of tortoise pace.

So this reference xxx explains that one can find an alternative around this issue which should speed things up quite a bit.The fact of the matter is that float division should really be an exception in any type of code (irrespective of the compiler and host).

A lesson well learnt.

Comments

Popular posts from this blog

Setting up the Tarot T4-3D gimbal on the Pixhawk 2.4.8 with Specktrum dx6 Gen2 toggle switch

So i took the challenge of setting up the Tarot gimbal not just for inherent stable video footage but also the flexibility of controlling it from the radio control. However, I encountered quite a few challenges which made me aware that I'm not the one only in this battle . It's quite clear that the setup of the Tarot gimbal using its own software is completely different from how it's been described in the Ardupilot/Arducopter webpage and in mission Planner. In Mission Planner and it's associated site makes one believe that it should be done through software, only to realize that in actual fact the setup is more complex than that.  After two evenings of trying various combinations, I realized the getting the pixhawk Aux channels to communicate with the T4 gimbal requires the following steps: - The Pixhawk Pin9 (Aux1) needed to be activated to pass through user-chosen channel from the transmitter. For the Dx6 Gen2 it was the channel 6, which can assigned the ...

GPS Navigation Ground Test #2 - Heading Error Computation Algorithm

This one is going to be quite short. Yesterday was the turn of the heading error algorithm to be tested. This heading error is calculated based on the heading the between two waypoints and heading measurement from the GPS module. This error will then be fed into a the roll controller as an input for roll command to reduce it to zero. But for the roll controller to work accordingly, the input must be right and within certain bounds. Same as the previous ground test, waypoints were loaded unto the autopilot and serial debug data was monitored using my Asus TF101 Tablet. It's worth saying that I managed to get serial data output straight from the LINUX command line . So the command line integration with VIM is complete. So it takes approximately under 10sec to upload and start debugging data of the autopilot. Sweet! Anyway, it was found that the GPS accuracy should be considered at 10-12m. Anything less than that and you'll be running for trouble. That is not a real conc...

Development of a new learning algorithm

Over the course of the past 2-3 weeks I decided to take the plunge of learning a new training algorithm which had quite alot of attention in the academic community but was also well constructed for easier implementation. The work by Peng et al on developing the Continuous Forward Algorithm (CFA) was my subject of attention. The overall premise behind implementing this algorithm was to investigate less memory-intensive machine learning algorithm that will not sacrifice accuracy or robustness. The ability to have a real-time learning system for low-cost electronics (such as the Teensy 3.6 ) has huge implications for the commercialization and affordable access of intelligent drones specifically for developing and even under-developed economies. The far-reaching impact of having technology leveraging efforts of farmers, herders, game rangers, biologists is the next wave of industrialization. This is the essence of this blog. The journey is very exciting and eventual results even mo...