How does one go about programming a drone to fly itself through the real world to a location without crashing into something? This is a tough problem, made even tougher if you’re pushing speeds higher and high. But any article with “MIT” implies the problems being engineered are not trivial.
The folks over at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) have put their considerable skill set to work in tackling this problem. And what they’ve come up with is (not surprisingly) quite clever: they’re embracing uncertainty.
Why Is Autonomous Navigation So Hard?
Suppose we task ourselves with building a robot that can insert a key into the ignition switch of a motor vehicle and start the engine, and could do so in roughly the same time-frame that a human could do — let’s say 10 seconds. It may not be an easy robot to create, but we can all agree that it is very doable. With foreknowledge of the coordinate information of the vehicle’s ignition switch relative to our robotic arm, we can place the key in the switch with 100% accuracy. But what if we wanted our robot to succeed in any car with a standard ignition switch?
Now the location of the ignition switch will vary slightly (and not so slightly) for each model of car. That means we’re going to have to deal with this in real time and develop our coordinate system on the fly. This would not be too much of an issue if we could slow down a little. But keeping the process limited to 10 seconds is extremely difficult, perhaps impossible. At some point, the amount of environment information and computation becomes so large that the task becomes digitally unwieldy.
This problem is analogous to autonomous navigation. The environment is always changing, so we need sensors to constantly monitor the state of the drone and its immediate surroundings. If the obstacles become too great, it creates another problem that lies in computational abilities… there is just too much information to process. The only solution is to slow the drone down. NanoMap is a new modeling method that breaks the artificial speed limit normally imposed with on-the-fly environment mapping.
Continue reading “MIT Breaks Autonomous Drone Speed Limits By Not Sweating Obstacles”
“If I have seen further than others, it is by standing upon the shoulders of giants.” This famous quote by Isaac Newton points to an axiom that lies at the heart of The Sciences — knowledge precedes knowledge.
What we know today is entirely based upon what we learned in the past. This general pattern is echoed throughout recorded history by the revelation of one scientific mystery leading to other mysteries… other more compounding questions. In the vast majority of cases these mysteries and other questions are sprung from the source of an experiment with an unexpected outcome sparking the question: “why the hell did it do that?” This leads to more experiments which creates even more questions and next thing you know we go from moving around on horse-drawn carriages to landing drones on Mars in a few generations.
The observant of you will have noticed that I preceded a statement above with “the vast majority of cases.” Apart from particle physics, almost all scientific discovery throughout recorded history has been made via experiment and observation. There are a few, however, that have been discovered hidden within the confines of an equation, only later to be confirmed with observation. One such discovery is the Black Hole, and how it was stumbled upon on a dusty chalkboard in the early 1900s will be the focal point of today’s article.
Continue reading “Black Holes and the Elusive Mystery That Lies Within an Equation”
We’re not sure which is more fun – putting together a little RC truck with parts laying around on your workbench, or driving it around through a Linux terminal. We’ll take the easy road and say they’re both equally fun. [technodict] had some spare time on his hands and decided to build such a truck.
He started off with a great little chassis that can act as the base for many projects. Powering the four motors is a cheap little dual H bridge motor driver and a couple rechargeable batteries. But the neatest part of this build is that it’s controlled using a little bit of python and driven directly from a terminal, made possible by the Raspberry Pi Zero of course.
With Raspberry Pi Zero now having built in WiFi and Bluetooth – we should see a lot more projects popping up with one at its heart. Be sure to visit [technodict’s] blog for full source and details. And let us know how you could use that little chassis for your next mobile project!
The Raspberry Pi came upon us as an educational platform. A credit card sized computer capable of running Linux from a micro SD card, the Raspberry Pi has proven useful for far more than just education. It has made its way into every nook and cranny of the hacker world. There are some cases, however, where it might be a bit slow or seem a bit under powered. One way of speeding the Raspi up is to overclock it.
[Dmitry] has written up an excellent overclocking guide based upon Eltech’s write up on the subject. He takes it a bit further and applies the algorithm to both Raspi 2 and Raspi 3. You’ll need a beefier power supply, some heat sinks and fans – all stuff you probably have lying around on your workbench. Now there’s no excuse stopping you from ratcheting up the MHz and pushing your Pi to the limit!
We’ve seen several guides to overclocking the Raspi here on Hackaday, including the current record holder. Be sure to check out [dmitry’s] IO page for the overclocking details, and let us know of any new uses you’ve found by overclocking your Raspi in the comment below.
Long taken for granted – lights are a basic necessity of modern life. From the time of the first light bulb, we’ve been able to navigate the dark without the use of fire. With the advent of the Internet of Things, it has become somewhat of a requirement to bring a little intelligence to lights before labeling yourself as a hardware hacker. There are many ways to do this; one of the most common being making use of an ESP32. [Luca Dentella] is somewhat of an ESP32 expert, and has written a fantastic tutorial on how to use the chip. The tutorial builds up to making a set of lights controllable from a smartphone web browser as well a light intensity sensor.
Now before you brush this off as simple n0Ob stuff – consider the following. He’s using a Lolin32 lite dev board, a BH1750 light intensity sensor and a relay to interface with mains for the lights. He wrote his own firmware and gets into the gritty details of developing the HTTP interface and flashing code to the correct memory.
We’ve seen a lot of ESP32 projects here at Hackaday, including this most interesting clock. Be sure to check out the video below to see the smart lights in action.
Continue reading “ESP32 Makes Not-So-Smart Lights Smart”
The vast majority of desktop 3D printers in use today use one or more lead screws for the Z-axis. Sometimes you need to think outside of the box to make an improvement on something. Sometimes you need to go against the grain and do something that others wouldn’t do before you can see what good will come out of it. [Mark Rehorst] had heard the arguments against using a belt drive for the Z-axis on a 3D printer build:
- The belt can stretch, causing inaccurate layer height.
- If power fails, gravity will totally ruin your day.
He decided to go for it anyway and made a belt driven Z axis for his huge printer. To deal with the power loss issue, he’s using a 30:1 reduction worm gear on the drive — keeping the bed in one place if power goes. And after a few studies, he found the belt stretch was so minimal that it has no effect on layer height.
Of course those two issues are but a small portion of the overall ingenuity that [Mark] poured into this project. You’ll want to see it in action below, printing a vase that is 500 mm tall (took about 32 hours to get to 466 mm and you can see the top is a hairy wobbly at this point). Luckily we can geek out with the rest of his design considerations and test by walking through this fantastic build log from back in July. Of note is the clamp he designed to hold the belt. It uses a small scrap of the belt itself to lock together the two ends. That’s a neat trick!
The introduction of a belt driven Z-axis eliminates Z-axis wobble — an issue that can be exacerbated in tall printers. Desktop 3D printers are constantly improving, and we’re always excited to see a new trick work so well. Let us know if you’ve seen any other handy Z-axis modifications out there.
Continue reading “Huge 3D Printer Ditches Lead Screw for Belt Driven Z Axis”
Soon the most wonderful time of the year will be upon us. Families all over the globe will gather together to exchange gifts, eat good food and enjoy some quality time with each other. For many, it will be the first time they’ve seen each other since the last holiday season. For us hackers – this translates to a time we get to talk about ourselves and show off a little about what we do. Been taking it easy this year? Have no hacks to talk about? Well, it’s not too late! Break out the soldering iron and whip up the perfect conversation starter – an LED Christmas tree!
[Gumix] took a handful of those flickering LEDs and a step down DC-DC converter to make his simple but elegant tree. No microcontroller here… no code is running. As soon as power is applied, the flickering LEDs do all the work to create a visual delight.
Flickering LEDs have been the focus of a few hackers. They’re basically LEDs designed to flicker like a real candle. [cpldcpu] hooked a scope to one and guessed that a linear shift-register was responsible for the randomness behind the flickering, which would be confirmed several months later.
Be sure to check out [Gumix] LED tree and the video demonstration below.
Continue reading “LED Christmas Tree Is Perfect Holiday Build”