If you’ve ever seen a painting in which the eyes follow you around the room, you might have found that a bit uneasy. [CuriousInventor] has taken that concept further with a skeleton that literally holds a gaze on anyone in its field of view.
The heart of the system is a Raspberry Pi Zero, fitted with a Pi Camera. Running OpenCV, code is set up to track humans and turn the skeleton’s head to face any that are detected. This is achieved via a servo in the skeleton’s neck. A servo bonnet is used to drive the servos without unnecessarily straining the Raspberry Pi.
The skeleton itself doesn’t look modified in any way, though most of the electronics are mounted inside a pretty obvious plastic box. We’d love to see a version 2 with all the hardware housed neatly inside the skull.
It’s a fun hack that makes for an enjoyable Halloween decoration. OpenCV can do other useful things, too, however, like spotting weeds. Video after the break.
[Andy]’s robot is an autonomous RC car, and he shares the localization algorithm he developed to help the car keep track of itself while it zips crazily around an indoor racetrack. Since a robot like this is perfectly capable of driving faster than it can sense, his localization method is the secret to pouring on additional speed without worrying about the car losing itself.
The regular pattern of ceiling lights makes a good foundation for the system to localize itself.
To pull this off, [Andy] uses a camera with a fisheye lens aimed up towards the ceiling, and the video is processed on a Raspberry Pi 3. His implementation is slick enough that it only takes about 1 millisecond to do a localization update, netting a precision on the order of a few centimeters. It’s sort of like a fast indoor GPS, using math to infer position based on the movement of ceiling lights.
To be useful for racing, this localization method needs to be combined with a map of the racetrack itself, which [Andy] cleverly builds by manually driving the car around the track while building the localization data. Once that is in place, the car has all it needs to autonomously zip around.
Interested in the nitty-gritty details? You’re in luck, because all of the math behind [Andy]’s algorithm is explained on the project page linked above, and the GitHub repository for [Andy]’s autonomous car has all the implementation details.
The system is location-dependent, but it works so well that [Andy] considers track localization a solved problem. Watch the system in action in the two videos embedded below.
The OAK-D is an open-source, full-color depth sensing camera with embedded AI capabilities, and there is now a crowdfunding campaign for a newer, lighter version called the OAK-D Lite. The new model does everything the previous one could do, combining machine vision with stereo depth sensing and an ability to run highly complex image processing tasks all on-board, freeing the host from any of the overhead involved.
The OAK-D Lite camera is actually several elements together in one package: a full-color 4K camera, two greyscale cameras for stereo depth sensing, and onboard AI machine vision processing with Intel’s Movidius Myriad X processor. Tying it all together is an open-source software platform called DepthAI that wraps the camera’s functions and capabilities together into a unified whole.
The goal is to give embedded systems access to human-like visual perception in real-time, which at its core means detecting things, and identifying where they are in physical space. It does this with a combination of traditional machine vision functions (like edge detection and perspective correction), depth sensing, and the ability to plug in pre-trained convolutional neural network (CNN) models for complex tasks like object classification, pose estimation, or hand tracking in real-time.
So how is it used? Practically speaking, the OAK-D Lite is a USB device intended to be plugged into a host (running any OS), and the team has put a lot of work into making it as easy as possible. With the help of a downloadable application, the hardware can be up and running with examples in about half a minute. Integrating the device into other projects or products can be done in Python with the help of the DepthAI SDK, which provides functionality with minimal coding and configuration (and for more advanced users, there is also a full API for low-level access). Since the vision processing is all done on-board, even a Raspberry Pi Zero can be used effectively as a host.
There’s one more thing that improves the ease-of-use situation, and that’s the fact that support for the OAK-D Lite (as well as the previous OAK-D) has been added to a software suite called the Cortic Edge Platform (CEP). CEP is a block-based visual coding system that runs on a Raspberry Pi, and is aimed at anyone who wants to rapidly prototype with AI tools in a primarily visual interface, providing yet another way to glue a project together.
The fascination of watching a 3D printer go through its paces does tend to wear off after you spent a few hours doing it, in which case those cool time-lapse videos come in handy. Trouble is they tend to look choppy and unpleasant unless the exposures are synchronized to the motion of the gantry. That’s easy enough to do on FDM printers, but resin printers are another thing altogether.
Or are they? [Alex] found a way to make gorgeous time-lapse videos of resin printers that have to be seen to be believed. The advantage of his method is that it’ll work with any camera and requires no hardware other than a little LED throwie attached to the build platform of the printer. The LED acts as a fiducial that OpenCV can easily find in each frame, one that indicates the Z-axis position of the stage when the photo was taken. A Python program then sorts the frames, so it looks like the resin print is being pulled out of the vat in one smooth pull.
To smooth things out further, [Alex] also used frame interpolation to fill in the gaps where the build platform appears to jump between frames using real-time intermediate flow estimation, or RIFE. The details of that technique alone were worth the price of admission, and the results are spectacular. Alex kindly provides his code if you want to give this a whack; it’s almost worth buying a resin printer just to try.
It sure sounds like “laser speckle imaging” is the sort of thing you’d need grant money to experiment with, but as [anfractuosity] recently demonstrated, you can get some very impressive results with a relatively simple hardware setup and some common open source software packages. In fact, you might already have all the components required to pull this off in your own workshop right now and just not know it.
Anyone who’s ever played with a laser pointer is familiar with the sparkle effect observed when the beam shines on certain objects. That’s laser speckle, and it’s created by the beam reflecting off of microscopic variations in the surface texture and producing optical interference. While this phenomenon largely prevents laser beams from being effective direct lighting sources, it can be used as a way to measure extremely minute perturbations in what would appear to be an otherwise flat surface.
In this demonstration, [anfractuosity] has combined a simple red laser pointer with a microscope’s 25X objective lens to produce a wider and less intense beam. When this diffused beam is cast onto a wall, the speckle pattern generated by the surface texture can plainly be seen. What’s not obvious to the naked eye is that touching the wall with your hand actually produces a change in the speckle pattern. But if you take high-resolution before and after shots, the images can be run through OpenCV to highlight the differences and reveal a ghostly hand-print.
Useless machines are a fun class of devices which typically turn themselves off once they are switched on, hence their name. Even though there’s no real point, they’re fun to build and to operate nonetheless. [Burke] has followed this idea in spirit by putting an old clock he had to use with his take on a useless machine of sorts. But instead of simply powering itself off when turned on, this useless machine dislodges itself from its wall mount and falls to the ground anytime anyone looks at it.
It’s difficult to tell if this clock was originally broken when he started this project, or if many rounds of checking the time have caused the clock to damage itself, but either way this project is an instant classic. Powered by a small battery driving a Raspberry Pi, the single-board computer runs OpenCV and is programmed to recognize any face pointed in its general direction. When it does, it activates a small servo which knocks it off of its wall, rendering it unarguably useless.
[Burke] doesn’t really know why he had this idea, but it’s goofy and fun. The duct tape that holds everything together is the ultimate finishing touch as well, and we can’t really justify spending too much on fit and finish for a project that tosses itself around one’s room. On the other hand, if you’re looking for a more refined useless machine, we have seen some that have an impressive level of intricacy.
[AchillesVM] decided to build a tabletop electric fan so it would track him as he moves around the room. Pan and tilt control is provided by a pair of servos controlled by a Raspberry Pi 3b+. How does it know where [AchillesVM} is? It captures the scene using a Raspberry Pi v2 Camera and uses OpenCV’s default face-tracking algorithm to find him. Well, strictly speaking, it tracks anyone’s face around the room. If multiple faces are detected, it follows the largest — which is usually the person closest to the fan.
The whole processing loop runs at 60 ms, so the speed of the servo mechanism is probably the limiting factor when it comes to following fast-moving house guests. At first glance it might look like an old fan from the 1920s, in fact [AchillesVM] built the whole thing by himself, 3D-printing case and using a few off-the-shelf parts (like the 25 cm R/C plane propeller).
It’s a work in progress, so follow his GitHub repository (above) for updates. Hopefully, there will be a front-mounted finger guard coming soon. If you like gadgets that interact with you as you move about, we’ve covered the face-tracking confectionery cannon back in 2014, and the head-tracking water blaster last year. In the “don’t try this” file goes the build that started a career — the eye-tracking laser robot.