If you need a robust precise indoor positioning system, then you use our Indoor “GPS” solution. You just need follow a step-by-step guide from the Operating Manual and to follow the video guide and reach a perfect precise indoor tracking. That is easy.
But what to do next? How to use the location data in your own system? How to use it with your autonomous robot, drone? For tracking of forklifts, humans, or tip of a crane?
Let us give some basic hints and recommendations that will save you time and energy.
We have produced many help videos on different subjects of using our indoor positioning system – Indoor “GPS”. The most fundamental ones are about Unpacking Marvelmind Indoor “GPS”. Watch it first to have an overall idea what to do when you get a parcel from us.
Obviously, since we have so many different hardware variants and since the video was published quite some time ago and we progressed far with developing the SW, the details are slightly different. But the whole idea and approach is the same. Check the video. Get the point and follow the Operating Manual’s step-by-step guide in more detail.
For many typical Starter Sets we just recorded a step-by-step guide in the Operating Manual explaining in deep detail what to do in order to get the tracking from the system. It is pretty straightforward.
Thus, we won’t focus on those details in this article. We assume that have followed them and made the system up and running successfully.
After you have got a good tracking in the Dashboard, it is time to think to integrate to your own device. Not earlier.
In general, we very strongly advise to stick to the following strategy:
We explained the approach on the example of setting up an autonomous drone:
Absolutely the same underlying logic is applicable in the vast majority of other real cases.
Let us explain the logic, recommended approach and its key steps.
First, you must achieve perfect tracking in the Dashboard.
If you can’t achieve it in your desired final configuration, for example 3D with the Paired Beacons in a map with 20 submaps – a pretty complex setup – simplify. Achieve a perfect tracking without the Paired Beacons. Doesn’t work – reduce the number of submaps to 1 submap 3D. Still doesn’t work? – make it 2D. Reduce till you get a perfect tracking in the most simple configuration. If needed, use the embedded Oscilloscope.
After you achieved the perfect tracking in the simplest configuration, increase complexity one step at a time. Monitor tracking, If lost – you will know for sure that your last step. Return to the previous step where you had success and check there. Maybe, it is lost already. Check what caused the problem. Fix and continue climbing the complexity.
Typically, there are more than one right way to achieve the same result at the end:
a) Make all large map for basic tracking first nd only then start integrating your system
b) Go through all steps on the simplest comparable map, achieve full integration, make an autonomous flight and after that to increase the complexity of the map to final one
Both approaches have merits. The choice is yours. What we very much discourage – to attempt to build everything and the “plug and pray” – no, that will be a waste of time very-very likely. Save your time. Do in steps and monitor and confirm the performance on each step before going to the next one.
At this stage, you physically attach the mobile beacon to your mobile object and try to track it. You may power it from your mobile object’s power, if it is available and planned to be used.
What is checked actually?
– That in the conditions of your robot/drone/forklift the basic tracking still OK. It could be not OK due to multiple reasons: obstructions caused by your mobile object, noise of your mobile object, radio/telemetry of your mobile object, bad power supply of your mobile object, etc. There are really many unexpected things. Before you continue, you must rule out that the very fact that you connect the mobile beacon to your mobile object kills the tracking
In the previous stage your mobile object was static. You attached the mobile beacon, probably, powered it from your mobile object, but it was static.
At this stage, your mobile object is moving. It could be pushing the robot around or moving drone in hands – not yet an autonomous drive – no! not even a remotely controlled drive – just basic movement – not static anymore.
What is checked actually?
The fact of movement does break tracking. There could be whatever reasons: in static a cover didn’t block, but with moving object you close a cover, it blocks the ultrasound path and tracking as a result; or while moving the mobile beacon just falls do to vibration, etc. – there could be many unforeseen things
It is time to remotely control your mobile object and see the tracking. At this stage some cases are already complete. For example, basic tracking of people or forklifts is done already – there is nothing remotely controlled. At the Step 3 you have checked that everything works and you can jump over. But for something autonomous (robots, AGVs, drones, boats, etc.), you still need to check that the remote controls don’t interfere with the tracking system in any way.
What is checked actually?
Well, potentially, multiple things. Usually: telemetry/remote radio control doesn’t interfere; and that full=blown power consumption doesn’t produce to much noise on the power supply lines and other interference due to sparks, or wind, or vibration or something similar. On the Step 3, the mobile object was slow-speed, cautious, etc. Now, you are checking all conditions the mobile object must experience, but still remotely controlled – nothing automatic just yet
It is time to integrate with your system whatever you have: Arduino, Raspberry PI, PixHawk, PLC or WMS, etc.
Your main source of help and information, as usually, is a Downloads page.
The main document describing interfaces is Hardware interfaces and protocols of data exchange with Marvelmind devices.
The same logic is applied here: don’t jump over, get some basic connectivity, proceed in small steps in order to identify at what stage the mistake is done. Many systems have many small settings and, often, a single one can cause a failure, for example, UART speed or UDP address or a basic parameter in ArduPilot settings.
Notice that we have different types of beacons and modems and they have different interfaces and protocols supported. Double-check what exact you have. Maybe, you are trying to get what is simply not supported in your hardware:
Check the settings: That is the most typical – address is not chosen, wrong baudrate, etc.
By this moment you have confirmed and solid tracking. You have integrated your mobile object successfully. It is getting the mobile data can use it. It is time do the autonomous movements – drive autonomously, fly autonomously, swim autonomously – whatever the system was intended to be used for. Of course, make it cautiously with all the safety measures with the lowest speed, etc., but it is time