Hallo,
ich habe einen 3D-Scanner auf ciclopbasis gebaut und wollte ihn als fabscanpi betreiben. Hardware ist ok, Kamera, Drehteller und die beiden Laser
lassen sich mit fabscan steuern. Es ist alles justiert und eingestellt. Der Kalibrierungsvorgang wird mit Fehler beendet. In der fabscanpi.log wird von step69 - step85 ein Fehler angezeigt. ich komme leider nicht weiter. Vielleicht kann mir jemand auf die Sprünge helfen, was verkehrt läuft.
fabscanpi.log Auszug:
2021-12-03 08:26:22,900 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Trying to detect calibration pattern pose and plane.
2021-12-03 08:26:23,287 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Detected Plane: True, Detected Pose: True.
2021-12-03 08:26:23,287 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Calibration Pattern plane detected.
2021-12-03 08:26:23,288 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Current Angle is: -27.728909105242213
2021-12-03 08:26:23,295 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Capturing laser 0
2021-12-03 08:26:23,560 [545:1384305760] DEBUG - fabscan.FSScanner: CPU Temperature: 55.84 C
2021-12-03 08:26:24,581 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSCalibrationActor.py", line 442, in _capture_scanner_calibration
points_2d = self._imageprocessor.compute_2d_points(image, roi_mask=False, refinement_method='RANSAC')
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSImageProcessor.py", line 264, in compute_2d_points
u = (self.config.high_weighted_matrix * image).sum(axis=1)[v] / s[v]
ValueError: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
2021-12-03 08:26:24,592 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: Laser Capture Error: operands could not be broadcast together with shapes (164$
2021-12-03 08:26:24,631 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Step 70 of 102 in MODE_SCANNER_CALIBRATION.
2021-12-03 08:26:26,259 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Trying to detect calibration pattern pose and plane.
2021-12-03 08:26:26,666 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Detected Plane: True, Detected Pose: True.
2021-12-03 08:26:26,667 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Calibration Pattern plane detected.
2021-12-03 08:26:26,668 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Current Angle is: -24.107321085938285
2021-12-03 08:26:26,674 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Capturing laser 0
2021-12-03 08:26:27,895 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSCalibrationActor.py", line 442, in _capture_scanner_calibration
points_2d = self._imageprocessor.compute_2d_points(image, roi_mask=False, refinement_method='RANSAC')
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSImageProcessor.py", line 264, in compute_2d_points
u = (self.config.high_weighted_matrix * image).sum(axis=1)[v] / s[v]
ValueError: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
2021-12-03 08:26:27,896 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: Laser Capture Error: operands could not be broadcast together with shapes (164$
2021-12-03 08:26:27,962 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Step 71 of 102 in MODE_SCANNER_CALIBRATION.
2021-12-03 08:26:29,599 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Trying to detect calibration pattern pose and plane.
2021-12-03 08:26:29,991 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Detected Plane: True, Detected Pose: True.
2021-12-03 08:26:29,993 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Calibration Pattern plane detected.
2021-12-03 08:26:29,994 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Current Angle is: -20.461735591749697
2021-12-03 08:26:30,000 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Capturing laser 0
2021-12-03 08:26:31,225 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSCalibrationActor.py", line 442, in _capture_scanner_calibration
points_2d = self._imageprocessor.compute_2d_points(image, roi_mask=False, refinement_method='RANSAC')
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSImageProcessor.py", line 264, in compute_2d_points
u = (self.config.high_weighted_matrix * image).sum(axis=1)[v] / s[v]
ValueError: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
2021-12-03 08:26:31,227 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: Laser Capture Error: operands could not be broadcast together with shapes (164$
2021-12-03 08:26:31,239 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Step 72 of 102 in MODE_SCANNER_CALIBRATION.
2021-12-03 08:26:32,872 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Trying to detect calibration pattern pose and plane.
2021-12-03 08:26:33,251 [545:1549915232] DEBUG - fabscan.scanner.laserscanner.FSCalibrationActor: Detected Plane: True, Detected Pose: True.
ve been working with a ciclop installation with some success. While I cannot tell you exactly what is wrong I will send you zipped files of my recent work on December 4 and a calibration information performed today. Because of unfamiliarity with ehe zip process 2 scans are shown in the 20211201-195516 folder- namely for the scan with this folder name and a folder within the folder for a scan 20211201-182733. Scan 20211201-182733 is a test scan to determine if may calibration is correct. Scan 20211201-195516 is a scan with the texture (color not checked) in which the red progress line reached nearly completion but will not display the scan complete bars. I had to save the scan to another location with linux commands before aborting the scan. This is a problem i am encountering. The scan height may need adjusting as the table also shows in the .ply files. I am not sure of placement of the calibration pattern but the pattern 16 mm ahead of table center gives good results. If you look at my Default.config.json file the number of columns I use is 11.
Here is the zipped file I hope.
Danke für die Hilfe. Habe fast die gleichen Einstellung benutzt. Was mir auffällt, das mein Bildausschnitt der Kamera ein anderer ist.
Ich habe eine Raspi-Kamera mit 3,6mm Objektiv verwendet um nicht zu viel Background zu haben. Möglicherweise liegt es daran.
Komme nicht weiter mit der Kalibrierung. Der Fehler tritt immer wieder an den gleichen Stellen auf, egal wo ich das Pattern aufstelle. Die Bilder im Scanverzeichnis sehen wie ich meine vernünftig aus. Die Scanhöhe ist bei mir auf 125mm eingestellt.
Habe relevante Daten in eine Zip-Datei gepackt, die ich wie auch immer nicht anhängen kann.
Werde dieser Tage es mit einer anderen Rasp-V2-Kamera ohne Objektiv nochmals versuchen.
From a non-expert, here are my thoughts:
I have no luck using the "interleaved": "True", (i don"t know what to expect, what i get is no trace of action on the screen during the scan. If I remember correctly the table does turn and the lasers fire at the appropriate times but the .ply files do not contain a point cloud.
i believe your chessboard pattern information is incorrect. if you have the Ciclop pattern and holder I am using-The row and column info is derived from the Fabscan example procedure. 13 mm squares, 8 rows, 11 columns.
I did not change the turntable height from 155 and don't have an idea about its significance.
Your baud rates are different than the example, but you have a browser screen and communication so why change what works.
My recommendations (will not cost anything but time):
Work with the V2 camera, you can try the special lens later.
Use:
"laser": {
"interleaved": "False",
"numbers": 2,
"color": "R (RGB)"
},
"scanner_type": "laserscanner",
"calibration": {
"weight_matrix": [],
"dist_camera_matrix": [],
"pattern": {
"square_size": 13,
"rows": 6,
"columns": 11,
"origin_distance": 35.0,
"type": "chessboard"
Additional info- The LED light data connection on the Zun Hat is as shown but the +5 volt and ground connections are in line with the data connection and can be checked with a voltmeter.
I am using a screen behind the device tahat has a black cloth curtain and additional side supports for a over the device cloth cover.
Good luck in your calibration trial.
THE Laser0 has given me problems at times. I suggest a reboot. After boot up the web page does not come on util the LED flashes at which time Laser0 comes on as the web page appears. It takes about a minute for the LED to flashes for approximately 10 seconds.
The calibration sequence is such that the chart goes through a series of moves then a notice appears that calibration is started and a series of Laser0 and Laser1 flashes with chart in various positions. It will give an approximate time and a notice when finished.
Since I am a widowed old man, I only have to consider my time and will check back in about 2 hours. By the way my typing and proof reading is terrible so please forgive any mistakes. I always use the excuse "Well what do you expect of an old man anyhow"
With Google translate we don't need to worry too much about the language barrier. My paternal grandparents were immigrated to the US from Germany in the last part of the 1800's. Unfortunately, I have not had the opportunity to learn German. A little Portuguese and a little Spanish as the we had exchange students from Mexico and Brazil and of course visited their families.
I am here 24/7 except for some grocery shopping and household duties or visiting the daughter 7km away. I will try to work with you as you want.
I have a Fabscanpi unit and the Ciclop unit is being used to keep me thinking and have something interesting to do rather than the TV (idiot box). I am widowed, retired and will be 86 next February so time is not a factor.
The unit I have 3D printed comes from Thingiverse and I am using the chessboard pattern from it. I don't know how to get the Thingiverse number since everything is in the new format. The row and column information is derived from the method shown in the Fabscan Documation.
My unit uses a Raspberry Pi4, an Arduino Uno and a Zum Hat. I am powering it with a 12-volt capable up to 5-amp supply. I am using a 3-amp voltage reducer to supply the Pi4 and of course the Arduino has 5-volt reduction on it. Since in the course of my life I have acquired an extra HDMI monitor, I do use it and a keyboard to monitor and control the raspberry Pi along with the web-based interface using either Edge or Firefox for the scanning operation.
I can do adequate scans with the default settings and any of the 3 resolution selections but have issues with any deviation from the default settings. I will try to attach pictures of the unit installations. I have a struggle doing the attachment correctly, so I do a hope and pray each time I try.
ok I can understand wanting to let it rest for a bit. I think when you do decide to try again, we will need to have a greater understanding of your equipment although I think you have the led light working. Some of the later ciclops had a board which included the Arduino microcontroller as part of the board and had the functions to switch the lasers and control the motor but no good way to get to the processor pin designated A0 for controlling the light.
For the fun of it, I also have had the Fabscanpi Hat controlling the ciclop to the level that the Arduino-Zum Hat works for me and also the Watterwott arduino hat with a hat having the functions of the Zum Hat on it (took a hand wired proto board to do that) also had to load the Fabscanpi firmware which utilizes different arduino pins than the Zum Hat. Rest a while and come back and have more fun.
Hallo,
ich hänge mich mal mit rein, muß aber gestehen dass ich die von euch zusammen getragenen Daten erst mal anschauen muß.
Irgendwie bekommen wir das Problem sicher gelöst.
Gruss
Mario
Good morning, Mario,
I can provide the same information for operation with the FabscanPi Hat or the Watterott Arduino Hat with a Hat which has the same function as the Zum Hat on the Arduino Uno R3 board. On those 2 cases I of course had to provide a default.config.json telling it to load the fabscanpi firmware into ttyAMA0. With the version 10 software if I select a scan completed by deselecting no color (no texture scan) with all controllers when using the Ciclops calibration pattern characteristics, the process hangs when the red progress line nears completion and does not save or present the scan complete save menu. I can do a directory command and find the scan folder listed and if I save the scan to another folder it is saved. This seems to be true no matter which of the 3 controllers I use. I have only checked the present FabscanPi cube a little, but the feature seems to work ok with it.
On the FabscanPi cube I seem to have intermittent Laser0 trace operation. I have external led's showing the laser operation and it seems that the laser0 is on for a shorter period than the laser1. Is there a read period being missed? With all conditions - ciclop or FabscanPi- if I turn the motor on and then off from the browser, the scan operation will not work, and I have to reboot. If you wish, I can run any conditions desired to check them.
I am very glad that you have a fully functioning spell and language checker on this editor now. I need it.
Hello:
Looking at your default.config.json file I have an issue with the "columns": 8, . I can't find it in the documentation now, but I think the figure should be 9 for your calibration chart.
Also, I don't see a "height": parameter in the turntable description. I really don't know how it is used. One guess is it is used to restrict the recording of positions to a reasonable height and not display the rest of possible locations. For me I can't get the "interleaved": True". to work but don't know enough to comment about it.
Now that Mario is here, I'm sure that the problem will be solved.
l
Hallo,
ich habe extra das Pattern mit 6 Zeilen und 8 Spalten wie in der Dokumentation beschrieben von Mario zuletzt genommen,
damit ein Fehler von der Seite ausgeschlossen werden kann. Die Höhe habe ich gelöscht, da sie in der Datei ciclop.config.json im
Verzeichnis /etc/fabscanpi/ fehlt. Ich wollte damit den Fehler eingrenzen. Hatte keinen Einfluss.
@Wolf2021 also ich hätte jetzt auch auf einen Fehler beim Pattern gesetzt. Ich konnte den Fehler in den Logs genau so reproduzieren (durch falsche Anzahl Zeilen und Spalten in der config. Ich habe schon die Software gepatcht so dass der Kalibrierungsvorgang zumindest mit einer Fehlermeldung im Frontend abgebrochen wird und nicht hängen bleibt. Ich muss aber noch einige Tests durchführen bevor ich das als Release veröffentliche.
Es kann sein das ich ein bisschen schlampig war beim Übertragen der Werte der defaul.config auf die ciclop.config. Also alles was in default drin ist und in ciclop fehlt sollte dort natürlich auch auftauchen. Die Konfigurationen sind so weit identisch bis auf die eingestellten Werte der einzelnen Parameter natürlich. Die Parameter sollten aber schon gleich sein. Wenn dir dort was auffällt bitte schreib einfach, dann kann ich das auch so übernehmen.
Wie groß das pattern am Ende ist 9x10, 6x8 oder was auch immer spielt keine Rolle. Wichtig ist nur das in der Config die Anzahl columns und rows passen zu deinem Aufsteller drin steht. Auch die square_size sollte passen. Schau noch mal hier nach
https://fabscanpi-server.readthedocs.io/en/latest/software_configuration.html#calibration-values
Dort ist beschrieben wie man das abzählt.
2021-12-03 0824,581 [545:1549915232] ERROR - fabscan.scanner.laserscanner.FSCalibrationActor: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSCalibrationActor.py", line 442, in _capture_scanner_calibration
points_2d = self._imageprocessor.compute_2d_points(image, roi_mask=False, refinement_method='RANSAC')
File "/usr/lib/python3/dist-packages/fabscan/scanner/laserscanner/FSImageProcessor.py", line 264, in compute_2d_points
u = (self.config.high_weighted_matrix * image).sum(axis=1)[v] / s[v]
ValueError: operands could not be broadcast together with shapes (1640,1232) (1232,1640)
Der Fehler deutet darauf hin das irgendwas mit der Kamera Auflösung Problematisch ist. Mich wundert eigentlich dass der Fehler nicht durchgehend auftritt? Sondern ab Schritt 69. Kannst du da noch mal nachschauen ob das wirklich so ist?
wie sieht es mit dem Bildausschnitt aus? Muss er nur so groß sein wie der Drehteller oder kann
er größer sein?
Der Bildausschnitt kann auch größer sein. Hast du die Kamera gedreht montiert (um 90°)? Also so wie beim FabScan vorgesehen?