[HN Gopher] Show HN: 3dasd - open-source DIY room-scale 3D scanner
       ___________________________________________________________________
        
       Show HN: 3dasd - open-source DIY room-scale 3D scanner
        
       Author : dvoros
       Score  : 172 points
       Date   : 2021-06-24 07:34 UTC (15 hours ago)
        
 (HTM) web link (3dasd.com)
 (TXT) w3m dump (3dasd.com)
        
       | okamiueru wrote:
       | Cool project, and as an amateur tinkerer, I love to see these
       | things open sourced and documented as there is so much to learn.
       | 
       | I'm a little surprised by the nema motors, as they look
       | overdimensioned for the task. Is there a good reason?
       | Stability/precision?
        
         | dvoros wrote:
         | I could justify that with being so standard that it's available
         | everywhere but TBH that's just what my local electronics store
         | had. (: I've also realized that it's probably overkill for the
         | job and added a note in the documentation.
        
           | okamiueru wrote:
           | I think that's a good enough justification :) I was more
           | curious if it came as a result of actually needing it. Btw,
           | great job on the website and examples.
        
       | xchip wrote:
       | Hmm no gallery of scans?
        
         | AlexAltea wrote:
         | Available at https://examples.3dasd.com/
        
       | rambojazz wrote:
       | I'm not familiar with the 3d scanning tech, but my first thought
       | when looking at the examples is that they do not look really
       | detailed. What is the max "resolution" of the machine? Can it
       | scan objects with a higher number of particles?
        
         | PicassoCTs wrote:
         | Max resolution are the steps of the stepper motor per
         | activation. (1.8deg step-angle)
         | https://datasheetspdf.com/pdf/1260602/Schneider/NEMA17/1
         | 
         | It could be increased by adding multiple distance measurement
         | sensors in parallel per scan direction.
         | 
         | It could also be made more precise by adding a "sub-gear" that
         | only turns within the frame of the step. But this would
         | lengthen the scan process considerably.
         | 
         | To shorten that again, one could add the same scan head into
         | the opposite direction.
         | 
         | At the moment the resolution is depending on the distance from
         | the scanning device. Meaning the larger the distance, the more
         | the angling distributes the points on a surface.
         | 
         | There are no real ways to mitigate that with a stationary
         | device. Density can be improved though with rescans, using the
         | noise to increase, although there the noise blurs the points
         | along the line to the degree.
        
           | dekhn wrote:
           | Stepper motors can be microstepped (typically up to 1/32 or
           | 1/64). In my experience, this works poorly as the microsteps
           | are not evenly spaced. I find gearing works better.
        
         | dvoros wrote:
         | Yes, you're right, this is extremely low resolution, compared
         | to commercial scanners. This is mostly the result of using a
         | point-by-point scanner. One thing I have on my plate is
         | exchanging that for a field-of-view scanner (probably a Livox
         | Mid-40).
         | 
         | One interesting feature of the current setup is the ability to
         | "zoom in" on details. With the microstepping mode of the
         | stepper motors, one can take 2/4/8 times as dense measurements
         | of an area if necessary. The limiting factor here is time. A
         | single scan takes around 40 minutes with the current resolution
         | (1800*300).
        
           | PicassoCTs wrote:
           | You could half it with a double header (one forward, one
           | backward scanning at the same time)
        
             | bruce343434 wrote:
             | quart it with a quadruple header!
        
       | bruce343434 wrote:
       | This is really cool. I'm looking to build a body scanner so I can
       | import a 3d model of my body. I can then use this model in
       | Marvelous Designer to make shirts and pants and other clothes
       | that will literally fit perfectly to my body.
       | 
       | I'm thinking of a platform on which you stand, with a rotating
       | arm under it which holds the arduino which then scans up and
       | down, the arduino relays the distance and both angles to a
       | processor which turns the data into a point cloud and then into a
       | 3d model.
        
         | dannyw wrote:
         | Ask HN: If I have a budget of maybe ~$1000, what would be the
         | best body scanner I can get? Happy with either DIY or for-
         | purchase.
         | 
         | Keen to try some ML projects with a body-sized scanner.
        
       | sprite wrote:
       | Bookmarked. Looks like a great project. A bit off topic but semi
       | related as this requires 3D printed parts. What's a HN
       | recommended 3d printer?
        
         | dwild wrote:
         | The Creality Ender 3 is probably the best entry-level 3D
         | printer you can get. It does need a tiny bit of tinkering in
         | some case, but it can print incredibly well, for a pretty low
         | price.
         | 
         | If you just want to print as well but without any risk, a Prusa
         | i3 pre-assembled is the best bet, but it does cost 4x+ the
         | price of an Ender 3.
        
       | searchconwestdu wrote:
       | Awesome work! How long does it take to finish this project?
        
       | ur-whale wrote:
       | How does this improve on taking a video with your phone and
       | feeding it to one of the OpenSource 3D reconstruction packages
       | (such as e.g. MeshRoom [1])?
       | 
       | [1] https://alicevision.org/#meshroom
        
         | serf wrote:
         | from my experience photogrammetry suites tend to produce
         | results that are a lot more 'delusional' than measuring with an
         | actual sensor, especially if you're photographing
         | reflective/metallic/transparent surfaces.
         | 
         | Yeah, LIDAR is sensitive too, but usually the data is missing
         | rather than random/delusional. Missing points tend to be less
         | labor-intensive to clean up on the results than erroneous
         | points that totally deform whatever mesh they're a member of.
        
         | dekhn wrote:
         | I don't think it helps meshroom much because (afaict) there's
         | no easy way to tell meshroom the angular information that's
         | known from the stepper controller (I couldn't find anything
         | obvious in the docs). If that worked, you could avoid the
         | expensive and error prone initial orientation-determining step,
         | which is absurdly slow.
         | 
         | I've done similar to this article but using Hugin as a panorama
         | constructor. It speeds up the process signnificantly (because
         | again you don't have to search for image orientations if you
         | "know" them).
        
       | koolhaas wrote:
       | Awesome work!
       | 
       | How long does it take to scan a room? And when scanning something
       | like an apartment with multiple scans, how do you piece them
       | together / automatically offset the points collected in the next
       | scan?
        
         | dvoros wrote:
         | Thanks for the feedback! A single scan takes around 40 minutes.
         | The multi-scan example took me an afternoon to take. (: I've
         | tried Meshlab but then ended up using CloudCompare for
         | combining the point clouds. That was done completely manually.
        
       | dvoros wrote:
       | Taking a break from my software developer job, I've started to
       | work on my first ever hardware project and with too much free
       | time on my hands it quickly turned into something bigger than
       | I've anticipated.
       | 
       | Working with a friend, we wanted to explore the use of 3D
       | scanners on construction sites but quickly got stuck as no cheap
       | hardware was available to fool around with. How hard can it be to
       | build one I thought? I've already programmed Arduinos to blink
       | LEDs before, this isn't that different... Then a few months into
       | the project I've realized that I've spent way too much time on
       | this to let it go to waste and started turning this into a
       | community project.
       | 
       | At this point I've reached the first milestone of having a
       | working 3D scanner with (hopefully) enough documentation to help
       | others get started with building their own. I'm sharing this with
       | you now to spread the word, get feedback and to invite you to
       | contribute if you feel like it! (:
       | 
       | Kind Regards, Daniel
        
         | miahi wrote:
         | Nice project! I did almost the same (Garmin v3 Lidar +
         | steppers), but based on an ESP32 instead of raspi + arduino.
         | The problem I have is the scanning speed vs resolution. The
         | sensor is quite slow, so it takes a really long time to scan
         | anything (hundred of hertz seems fast, but when you do the math
         | you realize it's not fast at all).
        
         | TaylorAlexander wrote:
         | Great project Daniel! Really cool that you're venturing out of
         | software land. Looks like you would have learned a lot about
         | Arduino from this!
         | 
         | I've recently been playing around with 3D scanning, but using
         | photogrammetry. You could record high res video or take high
         | res photographs of a scene, and then use the program Meshroom
         | or colmap to convert those photos (cut video in to 1fps stills)
         | in to a 3D model. If you want to play around with dense scans
         | that may be worth a try.
         | 
         | Doing it with a LIDAR is nice though because it is the correct
         | scale, something photogrammetry inherently fails at without
         | additional sensors.
         | 
         | I'm a very project oriented learner, and I'm always making
         | things and learning stuff and then pivoting with my projects.
         | I've been doing that for 20 years and it's great because I
         | learn whatever the hell I want and after I get good at it I can
         | get a job in that area. So keep up the hardware projects! This
         | one looks great.
        
           | dvoros wrote:
           | Thank you very much for the kind words and the
           | recommendation! Adding a camera is probably the next step
           | I'll take. Adding color information to the point cloud would
           | be a huge plus. I haven't tried photogrammetry before but I
           | assume it works best if things are captured from multiple
           | angles so my current setup of taking measurements from a
           | single point isn't the best fit. But maybe combining scans
           | from different standpoints...
        
             | TaylorAlexander wrote:
             | Yes probably best to experiment with photogrammetry
             | separately and then think about how to integrate it. But it
             | can be difficult to ensure you got 100% coverage so
             | programming a full scan with your gimbal could be useful.
             | You would want to do it from multiple locations. But I've
             | found just handheld 4k video from a phone is a great place
             | to start. You can extract frames from video easily with
             | this script I wrote:
             | 
             | https://github.com/tlalexander/rover_video_scripts/blob/mas
             | t...
        
           | fxtentacle wrote:
           | In my experience, photogrammetry had issues with transparent
           | and reflective surfaces, so wooden floor or brushes metal
           | kitchen appliances wouldn't work well.
           | 
           | As for the scale, you can always just bring a measurement
           | stick and place it on the floor so that you have an object
           | with known sizes to use to calibrate the scale after the 3d
           | recognition.
           | 
           | The gold standard in my opinion is a laser pattern protector
           | in combination with photogrammetry. That way, you can project
           | a pattern onto objects that would otherwise be too uniform in
           | color.
        
           | secretsatan wrote:
           | We've been working on using the new iOS devices and
           | integrating their LiDAR data into our photogrammetry
           | pipeline. We've also developed an app that gets good scale
           | using only photogrammetry and AR functionality
        
         | utopcell wrote:
         | Cool project! You could also have used a 2 Axis Brushless
         | Gimbal Stabilizer for most of the mechanics stuff, coupled with
         | either your Garmin Lidar Lite module, or a 360 degrees Lidar
         | module.
        
         | encypruon wrote:
         | Great project and excellent presentation!
         | 
         | I've been trying to build something similar for tracking birds
         | / panoramas / photogrammetry while avoiding using non-printed
         | parts as much as possible but haven't been very successful so
         | far. Because of that I'm particularly interested in the printed
         | gears you are using. Maybe you could help me with some of my
         | questions and concerns.
         | 
         | It looks like the whole thing is designed to be stiff, which
         | means that the gears are pretty much at a fixed distance from
         | each other. Doesn't that lead to backlash / play if the gears
         | are a little bit too far apart or vibrations if there is too
         | much pressure pushing them against each other? I've been
         | worried about this and experimented with mounting the stepper
         | motors on flexing parts to keep the pressure consistent and
         | allow for more imprecision in the prints but I never really
         | tried whether I can get away without that, so I'd be interested
         | about how well this is working for you.
         | 
         | Pictures on the flexible motor mount idea:
         | https://imgur.com/a/mM1Uql9
         | 
         | I would also like to know if there are any signs of wear after
         | using the thing for a few days and what materials were used. I
         | couldn't find anything on the type of filament on your website
         | (did I overlook something?). I've only ever printed PLA so far
         | and found that the gears would turn more smoothly after being
         | used for a while. I imagine that the effect of wear might be
         | different on the design without flexing parts.
         | 
         | Is it correct that the upper part is resting / sliding on
         | "base-2"? Or is the bearing doing most of the work? Does it
         | wobble at all? That was another one of the problems I had.
        
           | dekhn wrote:
           | if you really care about backlash, just measure it and then
           | add a correction in your motor controller.
           | 
           | Another way to do this is to always move back to endstop
           | zero, and only move forward. THis is very limiting.
           | 
           | The biggest problem I had was all my PLA prints melted in the
           | direct sun!
        
             | encypruon wrote:
             | > if you really care about backlash
             | 
             | At 1200 mm equivalent a picture is only about 1.15deg high,
             | so accuracy is important :)
             | 
             | > just measure it and then add a correction in your motor
             | controller.
             | 
             | I think your first idea doesn't really work for tilting
             | because there is little friction and the camera isn't going
             | to be perfectly balanced (the center of gravity also
             | changes with the focal length and even the focus). When
             | gravity pulls the camera towards one direction backlash is
             | less of a problem, but when it's near the tipping point it
             | becomes really shaky and sensitive to disturbances. Past
             | the tipping point it is biased towards the other direction.
             | 
             | Preloading might be an easy fix but at the cost of
             | acceleration.
             | 
             | > Another way to do this is to always move back to endstop
             | zero, and only move forward. THis is very limiting.
             | 
             | At least for panning in panoramas this isn't a bad solution
             | at all. I think both your ideas are good for panning with
             | planned paths.
             | 
             | > The biggest problem I had was all my PLA prints melted in
             | the direct sun!
             | 
             | Was it white PLA? So far I've only had stuff bend out of
             | shape in the car.
        
         | nerform wrote:
         | Thank you for sharing and making in open. Awesome work.
        
         | fxtentacle wrote:
         | A great idea :)
         | 
         | I see that you've been using EasyEda. I myself are also doing a
         | hardware project to get some more variation than the daily
         | software grind. After trying out Altium and then being shocked
         | by their recent price increase, I'm now using KiCAD.
         | 
         | But KiCAD doesn't have any autorouter. And the one in Altium
         | failed for my FPGA board. I also tried ELECTRA and it failed,
         | too.
         | 
         | Did you route things by hand? If not, what tool did you use?
         | How did that work for you?
        
           | dvoros wrote:
           | Thanks for the kind words!
           | 
           | I've started with EasyEDA and stuck with it as it worked okay
           | so unfortunately I can't help with a comparison. I've tried
           | the autorouter and it worked (=didn't fail) for earlier
           | prototypes when the board wasn't so packed, but it couldn't
           | do it (was hanging indefinitely) for the current layout so I
           | did it manually. It wasn't that painful... (:
           | 
           | Good luck with your project! (;
        
         | sbayeta wrote:
         | Congrats! Seems like a neat project. I just skimmed through the
         | article and saw "it tries to be cheap". Maybe you can evaluate
         | whether ultra-cheap steppers can give you acceptable results.
         | They cost around 1/10 compared to the kind you're using. They
         | are a lot slower and have less torque, but probably could give
         | similar results.
         | 
         | Good luck and thanks for sharing this!
        
           | sbayeta wrote:
           | Sorry forgot to mention I'm thinking specifically of the
           | 28byj-48 motors. I had an (unfinished) project making a
           | motorized water sprinkler for watering lawns in non circular
           | shapes, and these motors were up to the task. If you can
           | achieve your goal with them, you'll probably shave a nice
           | chunk of the cost (not only on the motors but also on the
           | drivers). Cheers
        
       | behindai wrote:
       | Hi! Nice job! How much time does it take to perform a full scan?
        
       | compweblaren wrote:
       | This is really cool. I'm looking to build something similar
        
       | OnACoffeeBreak wrote:
       | Neat! Looks like the project uses the same LIDAR module (Garmin
       | LIDAR-Lite v3) that's on the Ingenuity helicopter presently on
       | Mars.
        
       | holoduke wrote:
       | Will this work with small 5cm objects? For ages I am trying to
       | find a good (and cheap) scanner able to scan small objects mostly
       | used in cars. Had mixed results with tools like meshroom. I would
       | immediately bi It a scanner when less than 1000usd.
        
       ___________________________________________________________________
       (page generated 2021-06-24 23:01 UTC)