[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)