We are pleased to present Ciclop, the first DIY 3D scanner from BQ, together with the 3D scanning software Horus.
As with the other BQ DIY products, Ciclop and Horus are open source, which is why they belong to the Technological Heritage of Humanity. All the information on the mechanical design, the electronics, the software, algorithms, mathematics and experiments made will be available to the community.
This enables anybody to study and understand the functioning of the scanner, as well as making modifications, improvements and developing new versions. We want to contribute and drive forwarde the development of these devices.
The scanner is based on major projects from our Technological Heritage which have been developed in the community, such as: GNU/Linux1, Python2, Reprap3 and Arduino4, among others. They have all our admiration, recognition and gratitude, as they have been fundamental in accomplishing this project.
State of the art
Several alternatives exist for capturing the three-dimensional geometry of an object, such as laser triangulation, structured light and stereo vision. Comparatively, the first method offers greater precision and a higher resolution, but it also has limitations in terms of the kind of materials that can be scanned. Laser triangulation is based on capturing the projection of a laser beam over an object using a camera.
There are already scanners on the market with prices ranging from €500 to over €20,000 which are not open source, so the user is not able to study or modify the software.
FabScan5 and MakerScanner6 feature among these open source scanners, but they are not available for purchase as kits and the materials must therefore be purchased separately.
Ciclop
Ciclop is an open source 3D scanner kit. Being open source enables the user to study and modify it, whereas being sold as a kit permits the user to buy all the components together and at a fair price.
Design
The structure of Ciclop is made up of 3D-printed pieces, M8 threaded rods, M8 screws, M3 screws, nuts and washers. It has a 20 cm diameter methacrylate platform on which the piece is placed for scanning. It is covered with a anti-slip surface to prevent objects from moving during the scanning process.
The platform is supported by a 110 mm diameter ball bearing. The movement is created using a Nema 17 stepper motor.
Electronics
The sensor consists of a Logitech C270 HD webcam in the centre, two class 17 line laser modules located on the sides and a ZUM BT-3288 board, which is located in the interior of the body.
The ZUM BT-328 is an Arduino-based board that executes the control firmware of the motor and both lasers. It communicates with the PC via a micro-USB cable or Bluetooth. The ZUM SCAN is connected at the top, a shield derived from the Arduino CNC Shield9. This shield has 2 stepper drivers and connection pins for 4 lasers and 2 light dependent resistors (LDRs).
Horus
Firmware
The firmware has been developed using GRBL10 as a base and using other projects such as Marlin11 (the firmware used in open source 3D printers). It enables the lasers to be switched on and off, as well as the position, speed and acceleration of the stepper motor to be controlled using Gcode commands.
Software
The main program is a cross-platform desktop application developed in Python2. It uses wxPython12, NumPy13, SciPy14, Matplotlib15, OpenGL16, and an optimised version of OpenCV17 for Linux.
This application is the core of the scanning process. It manages the communications, the capture and syncing of the data, the image processing and the generation and visualisation of the point cloud.
It has been developed and optimised for GNU/Linux (Ubuntu18). However, it has been tested for Windows and it will also be supported for Mac. Horus consists of three workbenches which can be selected by the user.
Control
In this section each component of the scanner can be freely controlled: the camera settings, the lasers, the motors, etc… It has been designed so that makers and developers can carry out tests and experiments on eac h component of the device separately.
Calibration
The calibration workbench contains the tools needed for calibrating the device, from adjustment of the camera settings to the laser triangulation and detection of the rotating platform.
The system has been designed to calculate the internal scanning parameters automatically, using the structure assembled by the user. This is very important, because on being a DIY kit, no two scanners will ever be assembled identically. It is impossible to determine a priori what dimensions and directions the user will create on assembling it. Furthermore, the user can create a scanner with different dimensions and positions of the lasers and the camera. Horus will auto-calibrate correctly to achieve the perfect scanning.
Scanning
This section allows to select the type of scanning: with/without texture, one/two lasers, steps per turn, etc. It also provides a 3D environment for visualising the point clouds in real time and a video window which displays the different parts of the image processing.
The scanning times depend on the algorithm used and the acceleration and step of the motor. For 800 steps per turn (0.45º per step), the times vary from 2′ the fastest to 6′ the slowest (using both lasers) on Linux.
The result of this process is a PLY19 file. Here are some more examples:
Wizard
Horus also includes a wizard that simplifies the calibration and scanning processes, using a step-by-step guide.
Meshing
There are various open source programs, such as Blender20 or MeshLab21, which allow a point cloud (PLY) to be converted into a mesh (an STL22 file). STL is a file format for 3D meshes composed of triangles. An STL file can be printed in 3D using programs such as Cura23.
Once the STL has been created, the model can be visualised in Horus.
Future work
In this project we want to keep on evolving and improving. One of our main areas of work will be incorporating post-processing 3D mechanisms and meshing into Horus..
The opinion of the community is of great interest to us, which is why we are open to suggestions and improvements via our Group or GitHub.
We encourage you to get involved with this project!
Publications
In the coming weeks, we will be publishing all the developments, documents and manuals relating to this project in detail under Creative Commons and GPL v2 licence.
Are you ready?
References
- GNU/Linux operating system
- Python programming language
- RepRap community
- Arduino community
- FabScan project
- MakerScanner project
- IEC60825-1:2014 Class 1 Security certification
- ZUM BT-328 controller board
- Arduino CNC Shield power shield
- GRBL CNC control software
- Marlin firmware
- wxPython graphic library
- NumPy matrix calculus library
- SciPy scientific calculus library
- Matplotlib graph-plotting generation library
- OpenGL 3D graphics library
- OpenCV artificial vision library
- Ubuntu. Ubuntu GNOME, Kubuntu operating system
- PLY mesh format
- Blender 3D editor
- MeshLab advanced mesh processor
- STL mesh format
- Cura 3D printing software
Pingback: Ciclop, un scanner 3D open-source présenté au CES de Las Vegas - 3Dnatives
Nice, very very nice !! ça déchire ! bravo.
Continue.
Genial! J ai hate de le tester pour en parler ds mon blog! D ailleurs je recois ma witbox bientot!
Miracle coming…
I love it !!! lol
Tres envie de jouer avec !
Nous avons hâte de tester ce produit en avant première.
S’il est du même niveau que l’Hephestos , ce sera une nouvelle réussite pour BQ et ses partenaires
Premium Computer Services
95 France
Superbe projet. Après avoir étudié les infos disponible, une question me vient à l’esprit. Peut on remplacer une ZUM BT 328 par un simple arduino UNO? Car à priori aucune spécificité de la ZUM BT 328 est utilisée. En tout cas, très bon projet
Salut! Vous avez plus d’informations ici: http://diwo.bq.com/en/zum-scan-released/
Pingback: Most Exciting Products and Open Source Highlights at CES 2015 | Open Electronics
Will there be kits be for sale? I would be especially interested in a kit that includes all the electronics and the non-printable parts like the turn table and the anti-slip mat for it.
Reiner,
We can now provide you a quote for international shipment. Please contact us with the shipping address.
http://www.3dprintworld.uk.com
Paul Hiscoe
Pingback: 全新发布完全开源的3D扫描仪及3D扫描软件 | 3D小蚂蚁工作室
I’m also interested in buying a kit (or kits) for our makerspace (and for me). Please plst information on how to buy a kit (cost & location).
Thanks,
Charlie Lindahl
Houston, TX
Hi Charlie,
If you can let us have the address where you would like it shipped, please come back us and we can quote for shipment to USA.
http://www.3dprintworld.uk.com
Paul Hiscoe
For USA, contact us: http://www.cubimapdistribution.com.
CubiMap is the Official Distributor for bq in USA. Thanks.
I’m looking into scanners that are suited for small sized very detailed objects like miniature figurines, flowers, insects and jewellery. Would it be possible to adapt this design for that? For instance by bringing the camera and lasers a lot closer to the platform?
Yes of course, you can modify the geometry of the scanner making it smaller. Horus calibration system will do the rest 😉
Also it would be possible to use another camera with more resolution, or different line laser modules.
Regards!
I have found lasers ranging from 3 to 6 volts, what are the design limitations of the driver board?
Never mind, I’ve finally found the schematic…
Pingback: BQ Launches New Ciclop Open Source DIY 3D Scanner And Horus 3D Scanning Software | FILACART BLOG | 3D Printing MegaStore
Felicitaciones Jesús!
estoy interesado en experimentar. Donde podría comprar esta placa?
Is it possible to use other types of webcams like the Logitech C920 or C615?
Yes, Horus works with those cameras.
Regards!
Hi Jesús,
thanks for the replies. I’m putting this on the list as next project (after getting my 3D printer to work).
Best regards,
Ming-Hua
Hi everyone!
We will sell the full Ciclop DIY kit on March. For more information contact with http://www.bq.com/gb/contact.html.
Hi Jesus
When I open the web:”http://www.bq.com/gb/contact”. It seems need to write some characters under ” Please type the characters below:”,but I can’t see any characters under .So I can’t finish my contant to you.
Is there some other way I can get the Ciclop DIY kit?My Email is kong200250004012@163.com.
Best regards
Johnny
Hi Johnny,
We will put in contact with you.
Regards!
Pingback: Scanner 3D low-cost: 7 soluzioni per acquisire modelli 3D
Can I make it only with Arduino CNC Shield?
It’s hard to find somewhere that makes ZUM scan and ZUM BT-328!!
You can find more info here: https://github.com/bq/ciclop/issues/5
Since the linked inside the issue 5 is failed, I still don’t know what I should change in my software and hardware.
Ce kit sera disponible à partir du 18 mars 2015 en France chez Premium http://premium-forum.fr/viewtopic.php?f=3&t=509 – See more at: http://diwo.bq.com/en/zum-scan-released-2/#comment-1654
Hello,
one more question. I want to use a smaller disk of about 60-80mm. Do I need to scale down the calibration squares sheet to half it’s size? Or use the calibration sheet as it is?
Best regards,
Ming-Hua
You can use whatever chessboard calibration pattern you want. Only you need to use odd number of columns and an even number of rows. You can configure those parameters, square distance in mm included, in “Advanced Calibration” section in Horus. You need to ensure that camera detects the pattern and all will be fine
Regards!
Ok, sounds good. Thanks.
What precision/resolution do you espect on the point cloud?
Thank you.
Marco
Hi,
Reachable resolution is about 0.2 mm because a subpixel interpolation algorithm is used. Also you can use another camera with higher resolution to improve even more the point cloud density.
Regards!
Pingback: Modular 3D Scanner | AdaptedDesigns
My partner and I absolutely love your blog and find the majority of your post’s to be what precisely I’m looking for. Do you offer guest writers to write content in your case? I wouldn’t mind composing a post or elaborating on most of the subjects you write related to here. Again, awesome website!
tree arborist Mountville PA http://www.simpletreeservice.com/pa/tree-service-in-mountville/
Pingback: Erster 3D-Scanner mit freier Soft- und Hardware | sysbus
Hi Jesus, nice job. I started to build a scanner with a different webcam and the image is rotated 90° . I could not find the way to rotate it back to a normal view unless physically move it but then it dosen’t fit the support I have. Can i do it with Horus ?
Thanks and regards.
Gerard.
Hi, try removing https://github.com/bq/horus/blob/develop/src/horus/engine/camera.py#L158 and changing https://github.com/bq/horus/blob/develop/src/horus/engine/camera.py#L183. For future issues, please write in our Group: https://groups.google.com/forum/?hl=es#!forum/ciclop-3d-scanner.
Regards!
We just finished mounting the ciclop kit. We use linuxmint17 and it is always saying we choose the wrong camera, whatever camera is choosen, on several different computers (some with no webcam so there is only the logitech). The webcam though is recognized by the system (we can use it with other softwares) and listed in horus. Help needed please
Hi! Please, follow these instructions in order to build our custom OpenCV: https://github.com/bq/horus/wiki/Documentation#build-custom-opencv for Horus. For future issues, please write here: https://groups.google.com/forum/?hl=en#!forum/ciclop-3d-scanner.
Regards!
Bonjour.
Je recherche un scanner capable de numériser des cartes électroniques (un peu comme la ZUM, mais en plus grand). J’ai essayé quelques scanners 3D, sans trop de résultat. Ciclop est il capable de faire cela ? Y a t il déjà eu des essais de réalisés ? Merci d’avance.
Hi
I keep receiving “Laser calibration failed” message during the wizard. What is wrong? However, I managed to have not bad scans so far!!
Hi ALi,
In order to help you, could you send us the name of the Operating System and a screenshot of the log?
Thanks for your patience.
Hello, i also keeps gettng laser calibration failed, because the lasers dont work while calibrating, they work fine while scanning however, but nothing gets scanned. I have windows 10
I have exactly the same problem…the laser it s not turn on while calibrating
Hi, Dean and stratos.
Have you checked that you have all the Pattern settings correctly configured, as well as the Laser triangulation and the rest of the other calibrations?
Hello Jesus !
I use your 3D Scanner and i’ve a question for u, why there are 2 lasers for the triangulation ? One lasers can work alone right ?
Pingback: 3D Scanning – BQ Ciclop kit ordered | Nanohawk
The camera and lasers seem to be working fine, but I haven’t been able to get the motor to move. Any ideas?
Hi David,
Can you show us a photo of how you have the stepper connected to the electronic board?
I am having trouble calibrating my scanner. no matter what i do it will not calibrate. any help would be appreciated
Hi Nick,
Please, can you tell if you have problems during the “Auto check” process or during the “Calibration process”?
Moreover, I recommend you to read these guides:
– Horus user manual: https://it-bqcom15-media.s3.amazonaws.com/prod/resources/manual/Horus_User_Manual_0-1437403420.1
– Guide for optimum scanning: https://it-bqcom15-media.s3.amazonaws.com/prod/resources/manual/Horus_Guide_for_Optimum_Scanning-1437403443.pdf
Hi there, I’m trying to make the ciclop work. I having problem. I get this error messages during the process
Auto Check — Check motor position and pattern position and try again.
Calibration — Laser calibration failed. Please try again.
I am using ardruino uno and ZUM Scan.
I will be very thankful for your help and comments.
Thank you in advanced
Hi there, @Waqz:
It’s possible that you have to configure correctly the camera before you proceed with the calibration process. I recommend you to read these two guides:
– Horus user manual: https://it-bqcom15-media.s3.amazonaws.com/prod/resources/manual/Horus_User_Manual_0-1437403420.1
– Guide for optimum scanning: https://it-bqcom15-media.s3.amazonaws.com/prod/resources/manual/Horus_Guide_for_Optimum_Scanning-1437403443.pdf
is it possible to alter ciclop to scan larger objects?
e.g an object 150mm diameter x 400mm high