First of all we received the Teflon balls that we will use in our ball caster (the third wheel of our robots), and I tested, it works like a charm !
I spent some time working with the Decawave modules too. I tried to compensate the temperature drift caused by the heating of the modules with the software but the Decawave embedded thermometer isn’t precise enough to do so. I also tried to make one of the module send two frames separated by a known time interval to synchronise the clocks but the errors actually accumulate and the precision gets worse by doing that. Finally I tried to limit heating by making sure that receivers on the beacon is activated less than 5% of the time. The disadvantage is that there is a synchronisation phase where the robot sends messages when the beacon is not listening, and after the first successful exchange the receiver becomes synchronized and receiver enable time can then be reduced to less than 1% of the time. This worked quite well by shortening the “cooling” phase of the beacon when the robot starts sending messages.
In the next days, I’ll work on a more advanced message sequence to try to improve precision a bit more. I will also switch to full STM32 setup to get closer to our projet (for now the “beacon” is a STM32 board but the “robot” is a Raspberry Pi).