Tag Archives: open source

UAV Building Facade Recording – Part 1 – Preliminary Ideas and Experimentation

The recording of buildings is an important area in Cultural Heritage, whether for conditional surveys or to record something that is about to be destroyed.

Traditional methods rely upon survey equipment such as Total Stations to take a number of points on the façade, but this results in only points and lines with no great surface detail.

Other more detailed survey techniques such as laser scanning and photogrammetry have also been employed. But laser scanning is expensive and both the techniques are generally ground based missing detail of the façade that is not visible from this position. Scaffolding or a cherry picker can be used to record the whole of the building but again this can add to the cost the recording.

Photogrammetry is a low cost method of producing high quality results but relies upon having the camera parallel to the building to produce the best results, as capturing photographs from an angle brings inaccuracies into the recording as well as there being more detail at the bottom of the 3D model created than at the top.

The UAV would seem to provide an ideal platform to carry a camera parallel to the building, recording photographs with the required photogrammetry overlap. And with its autopilot it would seem possible to automate the recording process allowing the mapping of the façade in the same way that the UAV  can map the ground.

There are of course a number of problems that need to be overcome.

Building Façade Recording


Building façade recording can be done manually with a UAV, but the larger and more complicated the building façade the mode difficult it is to do this accurately. As the pilot needs to control the UAV accurately in 3 dimensions as well as controlling its speed.

Although the results for an experimental UAV mission are acceptable the difficulty of maintaining a manual position can be seen in the image below.


In order to automate the process you need to determine what parameters are required to record a building façade using photogrammetry.

These can be seen below.

Excel Calculations

Building facade recording parameters

First experimentation was done by taking the co-ordinates of the two ends of an example the wall from Google Earth (The south facing wall of the lay brothers’ quarters at Waverley Abbey in Surrey was used). These co-ordinates can then be used to determine the bearing that the wall lies upon and its width. Using the camera parameters and level of detail the required distance from the wall for the flight can be calculated using trigonometry. Trigonometry is once again used to calculate the offset positions for the left and right extent of the flight.


The image overlap can be used to determine the number of photographs required in the horizontal and vertical, and hence the change of altitude that is required for each flight pass of the building.

Calculate altitude changes

Calculate altitude

Although it is planned to have the ability for the UAV to hover and take photographs, it is much easier to have it take photographs as it flies across the building façade. This requires the additional calculations and control of optimum flight speed and shutter speed to take photographs which are not adversely effected by motion blur.

Shutter speed formula

Shutter speed formula

Shutter speed calculions

Shutter speed calculations

These preliminary calculations were done in Microsoft Excel.


The drone manufacturer 3DR provides a series of software development kits (SDKs) for writing applications to control your UAV using one of the open-source autopilot systems they support.

DroneKit Python uses the Python programming language and provides a number of examples to help with programming the flight of a UAV; these include flying from co-ordinate to co-ordinate up to complete missions. Together with this there is an API (application program interface) reference which provides all of the Python commands that can be used to control the UAV.


Python is a fairly easy to learn programming language and as DroneKit already requires it to be installed and setup it makes sense to use the same language to calcuate the required paramaters for the flight path. This was done with the aid of a number of online resources. A graphical user interface (GUI) was created using the Tkinter Python package and was used to enter the data. The python code did the calculations then a file is exported which combines these calculations with the DroneKit code for controlling the autopilot. The final file when run will control the UAV flight.

Python GUI

Python GUI

Virtual Drone

Experimentation doesn’t need to be done with a live UAV, it can actually be done with a virtual one using a number of pieces of open-source software. These include Mission  Planner, ArduCopterMAVProxy and SITL (Software in the loop)

Virtual Drone

Virtual Drone

Next Steps

Experimentation with a UAV using the hardware and software is the next step to test whether a GPS can be used in close proximity to a structure.

Limitations of standard UAV GPS accuracy to within the range of meters also complicates the use of this method of controlling the flight. This either needs to be solved with the use of a more accurate GPS (although the proximity to the building may block the signal), sensors that measure distances or the use of computer vision technologies to control the UAV position. The UAV afterall currently only need to fly between two set points then at set altitudes above the ground.


Cloud UAV Photogrammetry Processing

Online photogrammetry processing systems such as Autodesk’s 123D Catch (which now forms part of a whole suite of software designed to do everything from 3D capturing to 3D model creation through to 3D printing) have been around for a number of years and are available on platforms including iOS, Android and Windows. But they are aimed at the amateur with limited settings and low quality results.

Recent developments in Cloud Photogrammetry Processing have brought developing technologies that can potentially save a lot of time and money in processing photographs taken on site and in the office having the abilities of commercial desktop software solutions as well as producing high quality results.

Commercial Solutions

The DroneMapper company are one of a number of ventures aimed at the processing of UAV (Unmanned Aerial Vehicle) photographs for a number of industries including archaeology. Rather than using existing photogrammetry solutions they have developed their own custom in-house photogrammetry software package.

Images or a RAR archive file can be uploaded to their server using either their web interface, FTP (File Transfer Protocol) interface or a Dropbox account. Their current processing costs are between $20 and $100 USD.

While the REDCatch company provides processing of ground based and object processing as well as UAV photographs ; costing anything from 290€ to over a 1000€

Open Source Solutions

An Open Source alternative to this is Open Drone Map, this system uses a number of previously developed SFM (Structure from motion) solutions to automate the processing of photographs into 3D models, orthophotos and Digital Elevation Models (DEM) for GIS (Geographic Information Systems) applications. Although free for non-commercial purposes a license needs to he purchased to use it in commercial circumstances.

OpenDroneMap running on Ubuntu Linux

OpenDroneMap running on Ubuntu Linux

The code can be downloaded from Github and includes detailed written instructions and YouTube videos on how to install if on Ubuntu Linux. This means that it can be simply installed on Ubuntu running on many internet hosting services.

It uses both Clustering Views for Multi-view Stereo (CMVS) and Patch-based Multi-view Stereo Software
developed by Yasutaka Furukawa and Jean Ponce; as well as Bundler: Structure from Motion (SfM) for Unordered Image Collections developed by Noah Snavely.







The VisualSFM GUI developed by Changchang Wu includes the same software combined into a single computer program.

As we can see there is great potential for the cloud processing of photogrammetry models, whether by commercial companies or with open source software. This can remove the need for expensive photogrammetry software and the expertise to use it. Photographs can be uploaded as they are taken, or shortly afterwards and the processing begun before the person recording leaves the site. This obviously saves the time it would take to return to the office and download the photographs.

One current limitation of the open source system is the fact that it is solely aimed at photogrammetric vertical mapping recording, meaning that there is no need to mask the photographs in the software. There is however a requirement for the masking of photographs within the photogrammetric recording of standing structures and objects where elements of the photographs need to be masked out in order to get the best results.

Agarwal, Sameer, Noah Snavely, Steven M. Seitz, and Richard Szeliski. “Bundle adjustment in the large.” In Computer Vision–ECCV 2010, pp. 29-42. Springer Berlin Heidelberg, 2010.

Agarwal, Sameer, Yasutaka Furukawa, Noah Snavely, Ian Simon, Brian Curless, Steven M. Seitz, and Richard Szeliski. “Building rome in a day.” Communications of the ACM 54, no. 10 (2011): 105-112.

Furukawa, Yasutaka, Brian Curless, Steven M. Seitz, and Richard Szeliski. “Towards internet-scale multi-view stereo.” In Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on, pp. 1434-1441. IEEE, 2010.

Furukawa, Yasutaka, and Jean Ponce. “Accurate, dense, and robust multiview stereopsis.” Pattern Analysis and Machine Intelligence, IEEE Transactions on 32, no. 8 (2010): 1362-1376.

Wu, Changchang, Sameer Agarwal, Brian Curless, and Steven M. Seitz. “Multicore bundle adjustment.” In Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, pp. 3057-3064. IEEE, 2011.

Wu, Changchang. “Towards linear-time incremental structure from motion.” In 3D Vision-3DV 2013, 2013 International Conference on, pp. 127-134. IEEE, 2013.