Horus is a multi-platform software designed to control open source 3D scanners. It has a graphical interface for managing communications, capture and syncing of data, image processing, the calibration processes and generation and visualisation of point clouds.
It has been developed and optimised for GNU/Linux1 Ubuntu2. It has also been tested on Windows and Mac will also be supported. The software has been coded in Python3. It uses wxPython4, NumPy5, SciPy6, Matplotlib7, OpenGL8 and an optimised OpenCV9 version for Linux.
Horus is open source software. The source code has been published on GitHub and released under the GPL v2 licence10. This licence guarantees the fundamental freedoms associated with the use of open source software. Any code released under this licence automatically becomes part of the Technological Heritage of Humanity.
Installation
Horus can be installed on Ubuntu, Windows and Mac.
Please follow these instructions on how to install the application: Installation.
First steps with Horus
Welcome window
The first time you start Horus, a welcome message appears.
This window provides shortcuts to the main functions such as launching the wizard, scanning or accessing the advanced configuration panel. It also includes a quick access to recently used models (point clouds or meshes).
Main window
The main window has a menu bar, a tool bar and a dropdown menu to switch between workbenches.
The software includes the option to load and save profiles, as well as to reset the default parameters. It also provides access to the preferences where the user can adjust the connection parameters, load the firmware onto the board or select the application language.
The scanning section enables the options for loading, saving and deleting the model. A model is a 3D object, which could be a point cloud PLY11 or a mesh STL12.
Launching the wizard
The wizard guides the user through a simplified version of the processes of connecting, calibrating and tuning the scanning parameters.
Advanced configuration
This section describes the control and calibration workbenches.
Advanced control
This workbench permits the free control of all the scanner components independently: the camera, the lasers and the stepper motor. It also allows the reading of the LDR sensors, a feature added to implement in the future an intelligent adjustment of the camera settings.
The camera control section allows to change the following parameters:
- Brightness: image luminosity
- Contrast: relative difference of the image’s intensity
- Saturation: colour intensity of the image
- Exposure: opening time of the camera lens in milliseconds
- Frame rate: number of images captured per second
- Resolution: size of the image, always in a 4:3 relation
- Distortion: permits the correction of the lens distortion – these values are calculated during the camera calibration
The left and right lasers can be switch on or off via this workbench. The value of the LDR sensors can also be obtained. This value ranges from 0 to 1023, depending on the amount of light detected by each sensor.
In this section the motor can be enabled or disabled. The angle of rotation and the angular speed and acceleration can also be configured.
NOTE: The enabled motor consumes almost the same amount of current as the moving motor. If the motor is left enabled for a long time, both the motor and the control driver will overheat.
The last menu is a G-code commands terminal whch enables communication with the processor. Further information on the firmware commands is available on the Horus Firmware post.
Advanced calibration
The calibration workbench enables adjustment of the camera parameters in order to obtain an optimum calibration. It also enables the three fundamental calibrations to be carried out which determine the scanner parameters: camera sensor and lens calibration, calibration of the lasers in relation to the camera and calibration of the rotating platform in relation to the camera.It is also possible to change the calibration pattern values in order to use different patterns.
Camera calibration
In this calibration, the internal parameters of the camera are obtained. These are:
- Focal distances (horizontal and vertical)
- Optical centre (horizontal and vertical)
- Lens distortion
This calibration is optional, as most cameras are identical and the experimental values are close to the theoretical ones. Nevertheless, the option to calibrate these parameters is available for advanced users.
In order to perform this calibration, different captures of the pattern are taken in different positions. This data is then used to determine the intrinsic parameters.
Laser calibration
In this calibration, the laser planes equations are determined, described by the normal to the plane and the distance to the origin. The position and orientation of the laser is not important. This calibration determines their planes with millimetric precision, regardless of their location.
The laser calibration is key to determining the point cloud in relation to the camera system. It is an automated process that takes a few seconds.
Disc calibration
In the extrinsic calibration, a homogeneous transformation matrix in relation to the camera is obtained. In other words, this means the position and rotation of the disc’s system in relation to the camera system.
As with the previous calibration, the process is fast and automated. This calibration process is essential for rotating scanners.
Starting to scan
The scanning workbench is composed mainly of a toolbar, a video viewer and an interactive 3D viewer.
The point cloud of the object can be viewed in real time during the scanning.
The video viewer enables visualisation of the different phases of the image processing.
The scanning process has its own parameters for the camera, the lasers, the motor, the image processing algorithms and the point cloud.
The toolbar allows you to select the scanning algorithm (only geometry or geometry and texture), the number of lasers being used (left, right or both lasers), steps per turn, etc.
Mesh reconstruction
Once we have the point cloud from Horus in PLY format, you can use Meshlab13 or Blender14 to post-process and reconstruct it.
Meshlab is an open source software for processing 3D meshes. It can be used to remove noise, calculate the normals of the points, align different point clouds, reconstruct a mesh and apply textures, etc.
Future work
We have many objectives regarding the features of this application. The main working lines are:
- Incorporating a comprehensive point cloud post-processing system
- Developing a 3D reconstruction and meshing interface
- Creating installers for even more operating systems
- Implementing a plug-in system to simplify the integration of new features
- Many more new and interesting ideas!
We strongly encourage you to send us your ideas and suggestions, and to contribute to this project.
May the scanner be with you!
References
- GNU/Linux operating system
- Ubuntu. Ubuntu GNOME, Kubuntu operating system
- Python programming language
- wxPython graphics library
- NumPy calculus library
- SciPy scientific calculus library
- Matplotlib graphics generation library
- OpenGL 3D graphics library
- OpenCV computer vision library
- GPLv2 open source licence
- PLY mesh format
- STL mesh format
- MeshLab advanced mesh processor
- Blender 3D graphics software
Hi,
Very good job. I fork the project to purpose to you the French translation. Should be OK under a week.
Continue as well !!!
Gorgeous and useful project, I’m trying Horus to Windows 7. Many settings in the HORUS is excellent. Everything works, but I have not seen when scanning the object scan in the left window, and when you save the file has zero size. Why so?
What am I doing wrong?
Have you forum for Horus?
ALL OK! I was wrong, it works with 2 lasers, it is divine .. now calibrate and forth.
Great! 😀
Btw, we will release soon a User’s Manual and more info on GitHub Wiki and also a Google Group List to discuss about the project and its development.
We will keep you informed.
Regards!
If some onee ѡants expert ѵiew concerhing blogging and site-building
аfter that i advise ɦim/ɦer to go to seee this web site, Ҡeep uup the ɡood job.
Ңere іs my weblog :: Power Innovator Program
First thank you thank you i am printing away on this project right now the only problem i have is that i cannot get the software to open i click the icon a cmd widow opens and then something happens very fast and it all closes with no scanning software do you have any clue to what it could be
Hi. There is a bug with matplotlib and W8. We solve this issue in Google Group Ciclop: https://groups.google.com/forum/?hl=en#!topic/ciclop-3d-scanner/uDfdGbBuDGk. BTW: we will release soon a new version with this issue fixed.
Thanks!
Thank you very much just finished printing and putting all the rods in that was more work than i was expecting but it looks great
Hi
But i have the same problem with Horus in W8 .
I get my ciclop today. Verry nice work
Is it a solution for this now?
Regard Jörgen
Hi, really a good job! I can’t understand if the system recognize also the colours of the scanned object to allow the user to print a full colour object.
Yes! Horus includes Texture Scan algorithm that captures not only the geometry but also texture (colours) in RGB format.
Regards.
Hi!
i have a ciclop bq scanner, but in the scanning process with Horus on the platform of program i see 2 image of scanning process.
I have calibrate all and i’m sure of the correct connection of the laser!
Can i do to scan with 2 laser very well?
Whit one of two laser i have non problem in the scanning process!
Thanks a lot
Angelo
Hi! With a correct calibration the lasers may match. Please check our documentation: http://diwo.bq.com/en/documentation-ciclop-and-horus/. For new issues, please use our Group: https://groups.google.com/forum/?hl=en#!topic/ciclop-3d-scanner.
Regards!
I got my Ciclop kit last week and did my first scans with it, but unfortunately most of the stuff I plan to scan are rather dark/black parts. The results with such parts are not really good. Is there a way to get better results with dark or black matt parts? Special lighting, a (removable) coating with something?
Hi! Dark/black parts are difficult to scan with a laser. You can modify camera exposure and threshold in order to capture more information. You can use also white temperate paint to prepare your object before scan and improve the results.
Regards.
Hello
I want to run cyclop under raspberry pi to make a transportable scanner but it don’t work. It start (spash screen) but after I have lot of error.
I don’t know python language.
I don’t understand why it don’t work. I use raspbian witch is bse on debian.
thanks for help.
Hi! Horus is not supported for raspberry pi (yet). I’m going to create a thread in our group (https://groups.google.com/forum/?hl=en#!forum/ciclop-3d-scanner) to discuss about this issue and its development. Stay tuned.
Regards!
Still hope for a update , so i can use Horus on my W8.
Have a new ciclop just waiting to ude
Hi! Install the last version of Horus (https://github.com/bq/horus/wiki/Documentation#install-on-windows) and try it in W8.
Regards!
Installing Horus 0.1.1. But it is not working on W8
Hi Jörgen! Try to install the last version: https://github.com/bq/horus/tree/master#installation.
Regards!
https://drive.google.com/file/d/1p-mvPzueqJwSwtFH1GhIKuDmehJ6_erCNA/view?usp=sharing
Hi
Sorry it is the same like before.
I uninstall the old Horus and install the new one, but it is just opend a comand window for 1 sec and then nothing
Hi Jörgen! Thanks for the log. It has been very helpful. It seems that Windows + Matplotlib crashes with 0xf6 code (ö from Jörgen). We will work on that to provide you a solution as soon as possible. Btw, for future issues, please write to our Google Group: https://groups.google.com/forum/?hl=en#!forum/ciclop-3d-scanner.
Regards.
Hi Jörgen, try our lastest version: https://github.com/bq/horus/blob/develop/doc/installation/windows.md.
Regards.
The cost of employee benefits and compensation is
a cost of doing business, and as other prices of doing business increase, so does the accompanying cost
of offering such programs. What he tpld me
was all the really easy way around the tricks of the Tobacco Companies and how, once you know your
enemy, how rdally easy it is to stop smoking, without drugs, patches, hypnotism or anyy other aids.
The next step would be finding an easy way to quuit smoking.
Spot on with this write-up, I honestly believe this
site needs far more attention. I’ll probably be returning to see more,
thanks for the info!
Very good write-up. I certainly appreciate this website.
Thanks!
Hi Jesus,
I tried to installed Horus on a notebook Asus with Linux 15.04 vivid operating system.
I had trouble due to the fact that, following your instruction, the system doesn’t find some files.
I checked in the Github directories and I saw that in on of them the item concerning Linux 15.04 is missing.
Please may you help me in solving this matter?
Hi Alessandro,
You should join the Ciclop/Horus google group: https://groups.google.com/forum/#!forum/ciclop-3d-scanner , and ask there.
This way is easier to help you, for the community, and also for Jesus.
Thanks for your patience.
Great machine!
I built the machine but use another camera. Everything seem good but i put the camera in normal orentiation, so image show on Horus rotated 90 degree.
If i change the orentiation of the camera same as HD Webcam C270 i have redesign and reprint.
I wonder if The Horus have a “Rotate camera” function?
Thanks you
Hi Le Hoang Long,
There is no “Rotating camera” option yet. We will study its implementation in future versions.
Regards!
Hi,
I recentely installed the Horus software but iT is rather slow on my laptop. I need to buy a new one anyway so i was wondering what would be the min specs the new one should have in order to use the program and the ciclop to its fullest.
Thank you in advance and keep up the good work!
Hi dear
I am writing to explained that I have problem with your Horus software.
My problem is that when scan part I can see in the right hand image shape
And software can’t make file for export to another software .
Please help me for solve this issue
Thanks
In addition please send for me your email that I can send for you a photo from my laptop for better understanding.
Best regards
Hi, Pooria:
Can you tell us if, when you try to save the scanned model, you receive any kind of error message?
Moreover, you can follow this link to contact with our Support department: http://www.bq.com/uk/support
Then starting auto calibration or laser triangulation the lasers didn`t power ON
That is really fascinating, You’re an overly skilled blogger.
I’ve joined your rss feed and sit up for in quest
of more of your fantastic post. Also, I have shared your web site in my social networks