Is your environment compatible for the use of Dragonfly?
Before starting the mapping process you need to make sure that your environment meets the requirements for the use of Dragonfly. You can find those requirements inside this page.
What is a map?
A map is the virtual representation of what has been seen by Dragonfly through the camera connected. It corresponds to a file that stores all the information describing a visual environment and enables the tracking of the positions of a camera in this environment.
The map file is created by Dragonfly during the mapping phase and it is not human readable nor readable by any other software than Dragonfly. A map file contains:
- the features related to the objects and shapes detected in your environment;
- the XY position of the virtual markers (once the geo-referencing process has been performed).
How to create a map
Step 1 – Choose the moving asset for the mapping
As a rule of thumb, we strongly suggest to perform the mapping process with the camera mounted on the same moving asset that you will track in production. So if, for example, the asset that you will track is a forklift with the camera mounted on the roof and pointed towards the ceiling, then we strongly suggest that you perform the mapping with the exact same configuration (regardless of the wiring or the fine tuning that will have to be done to equip the production forklift fleet).
Anyway there are situations in which the asset you have to track might be cumbersome or you don’t have the license to drive it. In these cases you can also perform the mapping with the camera attached firmly to an extendable stick that is attached to a trolley with good and big wheels (on which you can carry around a laptop with the Dragonfly App running). Doing so:
- the extendable stick will allow you to set the camera at the same altitude at which it will be used in production.
- the small size of the trolley will allow you move freely inside the environment and perform the loop closures described in the next part of this page.
Step 2 – Initialize the mapping
Once Dragonfly is configured properly you can initialize the mapping and then create a map of your environment. During this process the Dragonfly Web User Interface will:
- visualize the position of your camera as a drone moving inside a 3D space;
- provide the position of your camera as un-dimensioned raw coordinates;
Follow these steps to initialize the mapping:
- Clean the camera glass by wiping it first with a damp cloth and then with a dry cloth.
- Move with the device to a location on the perimeter of the venue.
- Click on the 3 bars button and make sure that Navigation only checkbox is NOT checked (otherwise you will get an error “Map file does not exist!” when you will try to start the mapping).
- Click on the button New Map to remove any loaded map.
- Press on the green START button to start the positioning. The video feed should be displayed inside the video preview window. You can drag and drop the corner to modify the size of the video preview window.
- If nothing is shown inside the video preview then it means that the calibration file has not been selected OR the USB camera is not properly connected.
- The status of the Dragonfly engine shown in the top bar will be MAP INITIALIZATION.
- Move your camera with a translation movement (not a rotation movement!) towards a chosen direction to start detecting the features associated to the shapes and objects in your environment. The status should switch from MAP INITIALIZATION to MAPPING.
Step 3 – Perform the mapping
Step 3.1 – Map the perimeter
The first thing to do during the initial mapping phase is to move with the camera along the perimeter of the area of interest and close 1 loop. To do so:
- Initialize the positioning process following the previous section.
- From a chosen starting point, move with the camera along the whole perimeter of the area you would like to map and then move back to the starting point. During this process, if the status switches from MAPPING to LOST you have to move back to the area already mapped until the status switches back to MAPPING and then you can keep following the process outlined.
- At the end of this process you have closed your first loop and corrected the drift of the map! By now the loops field in the bottom-right corner will be increased by 1 unit. If you still don’t have a loop closure after having moved back to the starting point than keep moving a bit more along the path already taken.
- Click on the Save map button to open the pop up and save the map with a chosen name and description. You can save it with a name like: “warehouse1_loop1”
- It is also possible to use the name pattern area in order to ease the map names management. Click here for more info.
During this process the RED thread inside the 3D space should follow the path of the camera.
Drift of the position
Depending on the size of the venue during this initial mapping (when the environment is completely unknown to Dragonfly), you might notice a drift between:
- the position computed by Dragonfly (displayed as a flying drone inside the 3D space).
- the real position of your camera.
This is a normal behavior and the drift is auto-corrected after the the first loop closure. If the drift is not corrected and you experience inaccurate position, please send us the information listed inside this page.
Step 3.2 – Map the internal areas
After having mapped the perimeter of the area of interest you can map the entire environment, closing additional loops, by following these steps:
- From a chosen starting point along the perimeter, move with the Dragonfly camera towards an un-mapped area and then move back to the starting point. During this process, if the status switches from MAPPING to LOST you have to move back to the area already mapped until the status switches back to MAPPING and then you can keep following the process outlined.
- At the end of this process you have closed your second loop and corrected the drift of the map! By now the loops field in the bottom-right corner will be increased by 1 unit. If you still don’t have a loop closure after having moved back to the starting point than keep moving a bit more along the path already taken.
- Click on the Save map button to open the pop up and save the map with a chosen name and description. You can save it with a name like: “warehouse1_loop2”. Do not update the current map! Save a NEW map!
- It is also possible to use the name pattern area in order to ease the map names management. Click here for more info.
- Once you are back at the starting point, explore another un-mapped area following a new path, and then move back again to the starting point. During this process, if the status switches from MAPPING to LOST you have to move back to the area already mapped until the status switches back to MAPPING and then you can keep following the process outlined.
- At the end of this process you have closed your third loop and corrected the drift of the map! By now the loops field in the bottom-right corner will be increased by 1 unit. If you still don’t have a loop closure after having moved back to the starting point than keep moving a bit more along the path already taken.
- Click on the Save map button to open the pop up and save the map with a chosen name and description. You can save it with a name like: “warehouse1_loop3”. Do not update the current map! Save a NEW map!
- It is also possible to use the name pattern area in order to ease the map names management. Click here for more info.
Keep following the process just described until the whole environment has been mapped. During this process the RED thread inside the 3D space should follow the path of the camera. Once the whole environment has been mapped you can move freely inside it and Dragonfly will display your position without getting LOST.
Save the progresses with NEW maps
During the mapping process we encourage you to save the progresses done by creating NEW maps that contain all the progresses done. Doing so you can go back to a previously saved map in case of problems during the mapping process. If you have any problem during the mapping process please send us the information listed inside this page.
Variable lighting conditions
If Dragonfly will have to be used inside venues with variable lighting conditions then the mapping will have to be done in various lighting conditions. This means that a map during daylight will have to be extended with the features collected during an additional mapping session done during the night. The instructions about this can be found inside this page.
Please send us the information listed inside this page.
Information inside the Dragonfly UI
Central area
A 3D space where:
- the flying drone represents your camera. You can use your mouse to zoom.
- the RED thread represents the path followed with the camera.
- the green dots are the features currently seen by your camera.
- the black dots are the features previously seen by your camera.
Top-left corner
- name of the current map (if already saved).
- Save map button.
Top-right corner
- the video preview on the right that shows what is seen by the camera where the dots represent the features associated to objects/shapes detected in your environment. The colors of the dots are a function of the distance between the features and the camera lens.
Bottom-right corner
- tracking FPS – provides an indication about the speed at which the system runs (it must be higher than 20 FPS to produce good results).
- map memory usage – weight of the map.
- Landmarks – number of features associated to objects/shapes detected in your environment and part of the current map.
- Keyframes – number of keyframes detected so far.
- Markers – number of ArUco markers detected so far.
- Loops – number of loops closed.
- distance, driving time, average speed, stop time – usage information (provided after the geo-referencing process).
- X, Y, Z – these are the un-dimensioned raw coordinates.
- roll, pitch, yaw – orientation in degrees of the device (more info inside this page).
Bottom-left corner
- Follow checkbox – to enable/disable the automatic movement of the interface when the device moves.
- Draw Path checkbox – to enable/disable the red thread.
- Draw Points checkbox – to visualize/hide the features associated to the objects and shapes detected in your environment.
- Draw frame – to visualize the keyframes.
Top bar
- Start/stop button – to start and stop the positioning engine to perform the mapping process.
- Pause button – to pause the mapping process without stopping the engine.
- the down arrow – to visualize:
- the built-in parameters of the location engine.
- the camera parameters (that can be changed by clicking on the 3 lines button and then on the Camera Settings button)
- the 3 lines menu with these buttons:
- Navigation only – enable or disable the Navigation mode. While the system is in Navigation the map used for Navigation is not updated or changed during the navigation process. The navigation mode allows users to manage the virtual markers used for the geo-referencing of the map.
- Show video image – which allows to hide and show the video preview available on the top-right side of the GUI.
- Enable Aruco – to enable/disable the usage of ArUco markers. The ArUco markers are artificial fiducials used to make the maps more reliable when there is a low number or variability of the natural features. More info inside this page.
- Store source feed video – which allows to save the original/raw video coming from the camera.
- Store processed video – which allows to save the processed video.
- Enable data store – to enable the storage of the location data.
- Save path in device – to enable the storage of the location data locally.
- Sync path with cloud – to enable the storage of the location data on the cloud.
- Pull all floorplans from the cloud – to download all floor plan metadata from the Dragonfly Cloud Server.
- Push all floorplans to cloud – to upload all floor plan metadata to the Dragonfly Cloud Server.
- Calibrate camera – to calibrate the camera as described in this page.
- Camera settings – to access all the settings related to your camera (shown ONLY when the location engine is STOPPED).