Use our Indoor “GPS” solution if you need a robust and precise indoor positioning system. To achieve accurate indoor tracking, you must follow a step-by-step guide from the Operating Manual and the video guides. That is easy.
But what to do next? How to use the location data in your system? How to use it with your autonomous robot or drone? For tracking forklifts, humans, or the tip of a crane?
Let us give some essential hints and recommendations to save time and energy.
We have produced many helpful videos on using our indoor positioning system – Indoor “GPS”. The most fundamental ones are about Unpacking Marvelmind Indoor “GPS”. Watch it first to know what to do when you get a parcel from us.
Since we have so many different hardware variants, the video was published quite some time ago, and we progressed far with developing the SW, but the details are slightly different. But the whole idea and approach are 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 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 we have followed them and successfully made the system up and running.
After you have good tracking in the Dashboard, it is time to think about integrating it into your device. Not earlier.
In general, we very strongly advise sticking to the following strategy:
We explained the approach in the example of setting up an autonomous drone:
The same underlying logic is applicable in the vast majority of other real cases.
Let us explain the logic, recommended approach, and its essential steps.
First, you must achieve perfect tracking in the Dashboard.
If you can’t achieve it in your final configuration, for example, 3D with the Paired Beacons in a map with 20 submaps – a pretty complex setup – simplify. Achieve 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 perfect tracking in the most simple configuration. If needed, use the embedded Oscilloscope.
After you achieve the perfect tracking in the most straightforward configuration, increase complexity one step at a time. Monitor tracking, If lost – you will know your last action. 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 is more than one right way to achieve the same result in the end:
a) Make all large maps for basic tracking first, and only then start integrating your system
b) Go through all steps on the most straightforward comparable map, achieve full integration, make an autonomous flight, and after that, increase the complexity of the map to the final one
Both approaches have merits. The choice is yours. What we very much discourage is 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 it in steps and monitor and confirm the performance on each stage 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?
– In your robot/drone/forklift’s conditions, the basic tracking is still OK. It could not be OK for multiple reasons: obstructions caused by your mobile object, the noise of your mobile object, radio/telemetry of your mobile object, lousy power supply of your mobile object, etc. There are 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 and 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 the drone in hands – not yet an autonomous drive – not even a remotely controlled drive – just basic movement – not static anymore.
What is checked?
The fact of movement does break tracking. There could be whatever reasons: in static, a cover didn’t block, but with a moving object, you close a lid, it blocks the ultrasound path and tracking as a result; or while moving, the mobile beacon falls due to vibration, etc. – there could be many unforeseen things
It is time to control your mobile object and see the tracking remotely. At this stage, some cases are already complete. For example, basic tracking of people or forklifts is done already – there is nothing remotely controlled. In 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.
What is checked?
Well, potentially, multiple things. Usually: telemetry/remote radio control doesn’t interfere, and that full=blown power consumption doesn’t produce too much noise on the power supply lines and other interference due to sparks, wind, vibration, or something similar. In 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 primary source of help and information is a Downloads page.
The main document describing interfaces is Hardware interfaces and data exchange protocols with Marvelmind devices.
The same logic is applied here: don’t jump over; get some basic connectivity and proceed in small steps to identify at what stage the mistake is made. Many systems have many small settings; often, a single one can cause a failure, for example, UART speed, UDP address, or an essential parameter in ArduPilot settings.
Notice that we have different types of beacons and modems, and they have other interfaces and protocols supported. Double-check what exactly you have. Maybe, you are trying to get what is not supported in your hardware:
Check the settings: The most typical – the address is not chosen, wrong baud rate, etc.
By this moment, you have confirmed and solid tracking. You have integrated your mobile object successfully. It is getting the mobile data that can use it. It is time to do the autonomous movements – drive autonomously, fly autonomously, swim autonomously – whatever the system was intended for. Of course, make it cautiously with all the safety measures with the lowest speed, etc., but it is time.