When Detecting Lines Is Harder Than Expected

[Conor Patrick] is no stranger to hardware development, and he’s had an interesting project for the past few months. He’s attempting to create a tool to convert images of technical drawings (such as footprints for electronic components) into digital formats that can be imported into other tools. This could automate turning a typical footprint drawing like the one shown into an actual part definition in a CAD program, which could really speed up the creation of custom parts.

Key to the entire concept is the detection of lines in a black-and-white technical drawing. To some people this won’t sound like a particularly challenging problem; choose one or another baked-in line detection function, maybe with a bit of pre or post-processing, and that should be that. It turns out that detecting lines can be harder than expected, and as usual the devil is in the detail.

When [Conor] tried some existing methods for detecting lines, the results appeared good at first but came up short in frustrating ways. Software did not appreciate that in a technical drawing, a line is a single unbroken unit from point A to point B. Without that assumption, what should be a single line sometimes had sections missing, or single lines were detected as multiple segments instead of a unit. Lines that crossed other lines complicated things. Unwanted lines like a “1” or the lower half of a “Y” were being detected. There had to be a better way.

In the end, a custom solution that took proper advantage of the nature of the source images and made the correct assumptions is what made all the difference. With some intelligent threshold setting combined with looking at vertical and horizontal line instances separately, it was possible to locate lines and their lengths far more accurately than any other method he had tried. The system doesn’t handle sloped lines yet, but it might be possible to simply iterate through rotations of the image while applying the same method. If you have a better solution, [Conor] wants to hear from you.

Of course, garbage in means garbage out and sadly not all technical drawings measure up.

Life On Contract: Lowering Your Cost Without Dropping Your Price

Last time in Life on Contract, I discussed ways to figure out a starting point on how much to charge for your services. However, sometimes you and a client may wish to work together but for some reason they cannot (or do not wish to) pay what you have decided to charge. If you are inexperienced, it can be tempting to assume you have overpriced yourself and discount down to what they are willing to pay. But if your price is a number you have chosen for reasons you can explain, dropping it is not something you should do unless you have thought about it carefully.

Instead of just agreeing to do the same work but for less money, it is often possible to offer a lower overall cost without cheapening the value of your work. I’ll share a process I use to find opportunities to make this happen.

It Should be Win-Win, Not Hard Sell

The best case scenario is a client wants your service, your cost is within their budget, and everyone agrees to work together. Tragically, the process isn’t always that smooth. If cost is an issue, the alternative to lowering your price is to fine-tune what you provide to better fit the actual needs. To do that, you will need two things:

  1. A detailed understanding of your own time and costs for the work.
  2. Knowledge of what things your client considers most important.

By intimately knowing your own costs, you can figure out where to make savings without scrimping on the things your client considers important.
Continue reading “Life On Contract: Lowering Your Cost Without Dropping Your Price”

DIY Magnetic Actuator, Illustrated And Demonstrated

Electromagnetic actuators exert small amounts of force, but are simple and definitely have their niche. [SeanHodgins] took a design that’s common in flip-dot displays as well as the lightweight RC aircraft world and decided to make his own version. He does a good job of explaining and demonstrating the basic principles behind how one of these actuators works, although the “robotic” application claimed is less clear.

It’s a small, 3D printed lever with an embedded magnet that flips one way or another depending on the direction of current flowing through a nearby coil. Actuators of this design are capable of fast response and have no moving parts beyond the lever itself, meaning that they can be made very small. He has details on an imgur gallery as well as a video, embedded below.

Continue reading “DIY Magnetic Actuator, Illustrated And Demonstrated”

Customize All The Fan Covers You Never Knew You Needed

Do you need a fancy fan cover with precisely specified attributes, but have no desire to design one from scratch? If you answered yes (or no) then [mightynozzle] has the answer. The Customizable Fan Grill Cover is a parametric design in OpenSCAD that allows adjusting the frame style, size, and grill pattern for any fan cover one may possibly need. [mightynozzle] also went the extra mile to provide a large number of pre-made STL files for a variety of designs in a wide range of sizes, so those who don’t want to fuss with customizing can simply download and print.

Normally Thingiverse would allow customizing this model’s attributes with their built-in Customizer, but the functionality and availability of that feature is spotty. Luckily it’s always an option to download the source and do the customizing directly in OpenSCAD. For those who may be intrigued but are not sure where to start, here’s a reminder that we covered how to make a thing with OpenSCAD that demonstrates the whole process.

3D Printer Time Lapse Videos Ditch The Blur

Example output of Octolapse with the print head absent from the images.

Most time-lapse videos of 3D prints show a steadily growing print with a crazy blur of machine movement everywhere else. This is because an image is captured at a regular time interval, regardless of what’s physically going on with the machine. But what if images were captured at consistent machine positions instead? [FormerLurker]’s Octolapse plugin for OctoPrint came out of beta recently and does exactly that, and the results are striking. Because OctoPrint knows where a 3D printer’s print head is at all times, it’s possible for a plugin to use this information to create time-lapse videos where the print head position is consistent instead of a crazy blur, or even have the print head absent from the shot altogether.

[FormerLurker] had originally created stabilized time lapses by hand editing G-code, which had great results but was inefficient and time-consuming. This plugin is the result of his work at automating and enhancing the process, and is also his first serious open source programming project. We’ve covered upgrading a 3D printer with OctoPrint before, and the plugins functionality of OctoPrint means features can be added independently from the core system, which itself largely remains a one-woman effort by creator and maintainer [Gina Häußge].

 

Redirected Walking In VR Done Via Exploit Of Eyeballs

[Anjul Patney] and [Qi Sun] demonstrated a fascinating new technique at NVIDIA’s GPU Technology Conference (GTC) for tricking a human into thinking a VR space is larger than it actually is. The way it works is this: when a person walks around in VR, they invariably make turns. During these turns, it’s possible to fool the person into thinking they have pivoted more or less than they have actually physically turned. With a way to manipulate perception of turns comes a way for software to gently manipulate a person’s perception of how large a virtual space is. Unlike other methods that rely on visual distortions, this method is undetectable by the viewer.

Saccadic movements

The software essentially exploits a quirk of how our eyes work. When a human’s eyes move around to look at different things, the eyeballs don’t physically glide smoothly from point to point. The eyes make frequent but unpredictable darting movements called saccades. There are a number of deeply interesting things about saccades, but the important one here is the fact that our eyes essentially go offline during saccadic movement. Our vision is perceived as a smooth and unbroken stream, but that’s a result of the brain stitching visual information into a cohesive whole, and filling in blanks without us being aware of it.

Part one of [Anjul] and [Qi]’s method is to manipulate perception of a virtual area relative to actual physical area by making a person’s pivots not a 1:1 match. In VR, it may appear one has turned more or less than one has in the real world, and in this way the software can guide the physical motion while making it appear in VR as though nothing is amiss. But by itself, this isn’t enough. To make the mismatches imperceptible, the system watches the eye for saccades and times its adjustments to occur only while they are underway. The brain ignores what happens during saccadic movement, stitches together the rest, and there you have it: a method to gently steer a human being in a way that a virtual space is larger than the physical area available.

Embedded below is a video demonstration and overview, which mentions other methods of manipulating perception of space in VR and how it avoids the pitfalls of other methods.

Continue reading “Redirected Walking In VR Done Via Exploit Of Eyeballs”

Social Networking Robot Actually Respects Privacy

[Fribo] the robot is a research project in the form of an adorable unit that hears and speaks, but doesn’t move. Moving isn’t necessary for it to do its job, which is helping people who live alone feel more connected with their friends. What’s more interesting (and we daresay, unusual) is that it does this in a way that respects and maintains individuals’ feelings of privacy. To be a sort of “social connector and trigger” between friends where every interaction is optional and opt-in was the design intent behind [Fribo].

The device works by passively monitoring one’s home and understands things like the difference between opening the fridge and opening the front door; it can recognize speech but cannot record and explicitly does not have a memory of your activities. Whenever the robot hears something it recognizes, it will notify other units in a circle of friends. For example, [Fribo] may suddenly say “Oh, one of your friends just opened their refrigerator. I wonder what food they are going to have?” People know someone did something, but not who. From there, there are two entirely optional ways to interact further: knocking indicates curiosity, clapping indicates empathy, and doing either reveals your identity to the originator. All this can serve as an opportunity to connect in some way, or it can just help people feel more connected to others. The whole thing is best explained by the video embedded below, which shows several use cases.

Continue reading “Social Networking Robot Actually Respects Privacy”