Generative Design Algorithms Prepare For Space

NASA is famously risk-averse, taking cautious approaches because billions of taxpayer dollars are at stake and each failure receives far more political attention than their many successes. So while moving the final frontier outward requires adopting new ideas, those ideas must first prove themselves through a lengthy process of risk-reduction. Autodesk’s research into generative design algorithms has just taken a significant step on this long journey with a planetary lander concept.

It was built jointly with a research division of NASA’s Jet Propulsion Laboratory, the birthplace of many successful interplanetary space probes. This project got a foot in the door by promising 30% weight savings over conventional design techniques. Large reduction in launch mass is always a good way to get a space engineer’s attention! Mimicking mother nature’s evolutionary process, these algorithms output very organic looking shapes. This is a relatively new approach to design optimization under exploration by multiple engineering software vendors. Not just Autodesk’s “Generative Design” but also “Topology Optimization” in SolidWorks, plus others. Though these shapes appear ideally suited to 3D printing, Autodesk also had to prove their algorithm could work with more traditional fabrication techniques like 5-axis CNC mills.

This is leading-edge research technology though some less specialized, customer-ready versions are starting to trickle out of research labs. Starting with an exclusive circle: People with right tiers of SolidWorks license, the paid (not free) tier of Autodesk Fusion 360, etc. We’ve looked at another recent project with nontraditional organic shapes, and we’ve looked at generative designs used for their form as well as their function. This category of CAD tools hold a lot of promise, and we’re optimistic they’ll soon become widely accessible so we can all put them to good use in our earthbound projects.

Possibly even before they fly to another planet.

[via Engadget]

Weather Station Is A Tutorial in Low Power Design

Building your own weather station is a fun project in itself, but building it to be self-sufficient and off-grid adds another set of challenges to the mix. You’ll need a battery and a solar panel to power the station, which means adding at least a regulator and charge controller to your build. If the panel and battery are small, you’ll also need to make some power-saving tweaks to the code as well. (Google Translate from Italian) The tricks that [Danilo Larizza] uses in his build are useful for more than just weather stations though, they’ll be perfect for anyone trying to optimize their off-grid projects for battery and solar panel size.

When it comes to power conservation, the low-hanging fruit is plucked first. [Danilo] set the measurement intervals to as long as possible and put the microcontroller (a NodeMCU) to sleep in between. Removing the power from the sensors when the microcontroller was asleep was another easy step, but the device was still crashing overnight. Then he turned to a hardware solution and added a more efficient battery charger to the setup, which saved even more power. This is all the more impressive because the station communicates via WiFi which is notoriously difficult to run in low-power applications.

Besides the low power optimizations, the weather station itself is interesting for its relative simplicity. It could be built with things most of us have knocking around. Best of all, [Danilo] published the source code on his site, so most of the hard work has been done already. If you’re thinking he seems a little familiar, it’s because we’ve featured some of his projects before, like his cheap WiFi extender antenna and his homemade hybrid tube amplifier.

Learn to Optimize Code in Assembly… for Android

When programming a microcontroller, there are some physical limitations that you’ll come across much earlier than programming a modern computer, whether that’s program size or even processor speed. To make the most use of a small chip, we can easily dig into the assembly language to optimize our code. On the other hand, modern processors in everyday computers and smartphones are so fast and have so much memory compared to microcontrollers that this is rarely necessary, but on the off-chance that you really want to dig into the assembly language for ARM, [Uri Shaked] has a tutorial to get you started.

The tutorial starts with a “hello, world” program for Android written entirely in assembly. [Uri] goes into detail on every line of the program, since it looks a little confusing if you’ve never dealt with assembly before. The second half of the program is a walkthrough on how to actually execute this program on your device by using the Android Native Deveolpment Kit (NDK) and using ADB to communicate with the phone. This might be second nature for some of us already, but for those who have never programmed on a handheld device before, it’s worthwhile to notice that there are a lot more steps to go through than you might have on a regular computer.

If you want to skip the assembly language part of all of this and just get started writing programs for Android, you can download an IDE and get started pretty easily, but there’s a huge advantage to knowing assembly once you get deep in the weeds especially if you want to start reverse engineering software or bitbanging communications protocols. And if you don’t have an Android device handy to learn on, you can still learn assembly just by playing a game.

Learning Software In A Soft Exosuit

Wearables and robots don’t often intersect, because most robots rely on rigid bodies and programming while we don’t. Exoskeletons are an instance where robots interact with our bodies, and a soft exosuit is even closer to our physiology. Machine learning is closer to our minds than a simple state machine. The combination of machine learning software and a soft exosuit is a match made in heaven for the Harvard Biodesign Lab and Agile Robotics Lab.

Machine learning studies a walker’s steady gait for twenty periods while vitals are monitored to assess how much energy is being expended. After watching, the taught machine assists instead of assessing. This type of personalization has been done in the past, but the addition of machine learning shows that the necessary customization can be programmed into each machine without a team of humans.

Exoskeletons are no stranger to these pages, our 2017 Hackaday Prize gave $1000 to an open-source set of robotic legs and reported on an exoskeleton to keep seniors safe.

Continue reading “Learning Software In A Soft Exosuit”

Optimizing Linux for Slow Computers

It’s interesting, to consider what constitutes a power user of an operating system. For most people in the wider world a power user is someone who knows their way around Windows and Microsoft Office a lot, and can help them get their print jobs to come out right. For those of us in our community, and in particular Linux users though it’s a more difficult thing to nail down. If you’re a LibreOffice power user like your Windows counterpart, you’ve only really scratched the surface. Even if you’ve made your Raspberry Pi do all sorts of tricks in Python from the command line, or spent a career shepherding websites onto virtual Linux machines loaded with Apache and MySQL, are you then a power user compared to the person who knows their way around the system at the lower level and has an understanding of the kernel? Probably not. It’s like climbing a mountain with false summits, there are so many layers to power usership.

So while some of you readers will be au fait with your OS at its very lowest level, most of us will be somewhere intermediate. We’ll know our way around our OS in terms of the things we do with it, and while those things might be quite advanced we’ll rely on our distribution packager to take care of the vast majority of the hard work.

Linux distributions, at least the general purpose ones, have to be all things to all people. Which means that the way they work has to deliver acceptable performance to multiple use cases, from servers through desktops, portable, and even mobile devices. Those low-level power users we mentioned earlier can tweak their systems to release any extra performance, but the rest of us? We just have to put up with it.

To help us, [Fabio Akita] has written an excellent piece on optimizing Linux for slow computers. By which he means optimising Linux for desktop use on yesterday’s laptop that came with Windows XP or Vista, rather than on that ancient 486 in the cupboard. To a Hackaday scribe using a Core 2 Duo, and no doubt to many of you too, it’s an interesting read.

In it he explains the problem as more one of responsiveness than of hardware performance, and investigates the ways in which a typical distro can take away your resources without your realising it. He looks at RAM versus swap memory, schedulers, and tackles the thorny question of window managers head-on. Some of the tweaks that deliver the most are the easiest, for example the Great Suspender plugin for Chrome, or making Dropbox less of a hog. It’s not a hardware hack by any means, but we suspect that many readers will come away from it with a faster machine.

If you’re a power user whose skills are so advanced you have no need for such things as [Fabio]’s piece, share your wisdom on sharpening up a Linux distro for the rest of us in the comments.

Via Hacker News.

Header image, Tux: Larry Ewing, Simon Budig, Garrett LeSage [Copyrighted free use or CC0], via Wikimedia Commons.

Running Intel TBB On a Raspberry Pi

The usefulness of Raspberry Pis seems almost limitless, with new applications being introduced daily and with no end in sight. But, as versatile as they are, it’s no secret that Raspberry Pis are still lacking in pure processing power. So, some serious optimization is needed to squeeze as much power out of the Raspberry Pi as possible when you’re working on processor-intensive projects.

This simplest way to accomplish this optimization, of course, is to simply reduce what’s running down to the essentials. For example, there’s no sense in running a GUI if your project doesn’t even use a display. Another strategy, however, is to ensure that you’re actually using all of the available processing power that the Raspberry Pi offers. In [sagiz’s] case, that meant using Intel’s open source Threading Building Blocks to achieve better parallelism in his OpenCV project.

Continue reading “Running Intel TBB On a Raspberry Pi”

Lessons in Small Scale Manufacturing From The Othermill Shop Floor

Othermachine Co. is not a big company. Their flagship product, the Othermill, is made in small, careful batches. As we’ve seen with other small hardware companies, the manufacturing process can make or break the company. While we toured their factory in Berkeley California, a few interesting things stood out to us about their process which showed their manufacturing competence.

It’s not often that small companies share the secrets of their shop floor. Many of us have dreams of selling kits, so any lessons that can be learned from those who have come before is valuable. The goal of any manufacturing process optimization is to reduce cost while simultaneously maintaining or increasing quality. Despite what cynics would like to believe, this is often entirely possible and often embarrassingly easy to accomplish.

Lean manufacturing defines seven wastes that can be optimized out of a process.

  1. Overproduction: Simply, making more than you currently have demand for. This is a really common mistake for first time producers.
  2. Inventory: Storing more than you need to meet production or demand. Nearly every company I’ve worked for has this problem. There is an art to having just enough. Don’t buy one bulk order of 3,000 screws for six months, order 500 screws every month as needed.
  3. Waiting: Having significant delays between processes. These are things ranging from running out of USB cables to simply having to wait too long for something to arrive on a conveyor belt. Do everything you can to make sure the process is always flowing from one step to another.
  4. Motion: If you have a person walking back and forth between the ends of the factory to complete one step of the manufacturing process, this is wasted motion.
  5. Transport: Different from motion, this is waste in moving the products of each individual process between sections of the assembly.
  6. Rework: Get it right the first time. If your process can’t produce a product that meets specifications, fix the process.
  7. Over-processing: Don’t do more work than is necessary. If your part specifies 1000 hours of runtime don’t buy a million dollar machine to get 2000 hours out of it. If you can find a way to do it with one step, don’t do it with three.

IMG_0371

The first thing that stuck out to me upon entering Othermachine Co’s shop floor is their meticulous system for getting small batches through the factory in a timely manner. This allows them to scale their production as their demand fluctuates. CNCs and 3D printers are definitely seasonal purchases; with sales often increasing in the winter months when hackers are no longer lured away from their workstations by nice weather.

As the seven sins proclaim. It would be a bad move for Othermachine Co. to make too many mills. Let’s say they had made an extra 100 mills while demand was at a seasonal low. If they found a design or quality problem from customer feedback they’d have to commit to rework, potentially throwing away piles of defective parts. If they want to push a change to the machine or release a new model they’d either have to rework the machines, trash them, or wait till they all sold before improving their product. Even worse, they may find themselves twiddling their thumbs waiting for their supply to decrease enough to start manufacturing again. This deprives them of opportunities to improve their process and leads to a lax work environment.

One way to ensure that parts are properly handled and inventory is kept to a minimum is with proper visual controls. To this end, Othermachine Co has custom cardboard bins made that perfectly cradle all the precision parts for each process in their own color coded container. Since the shop floor is quite small, it lets them focus on making spindle assemblies one day and motion assemblies another without having to waste time between each step. Also, someone can rekit the parts for a recently completed step easily without interrupting work on the current process going on.

IMG_0373

It’s hard to define what’s over processing and what isn’t. My favorite example of what isnt, and something I’ve fought for on nearly every factory floor I’ve worked on is proper torque limiting screwdrivers. They’re a little expensive, but they are a wonderful tool that helps to avoid costly rework and over processing. For example, let’s say you didn’t have a torque limiting screwdriver. Maybe your customers would complain that occasionally a screw came loose. Now, one way to solve this would be the liberal application of Loctite. Another way would be an additional inspection step. Both of these are additional and completely uneccessary steps as most screws will hold as long as they are torqued properly.

In one factory I worked in, it was often a problem that a recently hired worker would overtorque a screw, either stripping it or damaging the parts it was mating together. A torque limiting screwdriver takes the worker’s physical strength out of the equation, while reducing their fatigue throughout the day. It’s a win/win. Any time a crucial step can go from unknown to trusted with the application of a proper tool or test step it is worth it.

Another section where Othermachine Co. applied this principle is with the final machining step for the CNC bed. The step produces a large amount of waste chips. Rather than having an employee waste time vacuuming out every Othermill after it has gone through this process, they spent some time designing a custom vacuum attachment. This essentially removed an entire production step. Not bad!

IMG_0396 (2)

With the proper management of waste it is entirely possible to save money and improve a process at the same time. It takes a bit of training to learn how to see it. It helps to have an experienced person around in order to learn how to properly respond to them, but with a bit of practice it becomes a skill that spreads to all areas of life. Have any of you had experience with this kind of problem solving? I’ve really enjoyed learning from the work stories posted in the comments.