I’ve been having trouble 3D printing the transparent visor needed for my head-up display. The part sent to me by Shapeways was seriously warped and not at all transparent. So I complained about the warping, and they gave me a credit which I spent on printing the visor in white polished plastic.
The white version let me test the form factor (which seems OK), and I’ll glue some reflective film to the inside to check the optics.
If it passes that test I’ll get it manufactured properly. I’ve found a local prototyping firm who can make the visor using CNC and mirror-coat it using vapour deposition. Not cheap – we’re talking several hundred dollars – but it’ll be done properly.
Seeing this video made me realize that quadcopters are more advanced than I thought, which got me thinking about potential applications. One that came to mind was human-computer interactions.
To interact with someone as an equal we expect them to be at eye level (which is a huge problem for people in wheelchairs), and I assume the same will apply if we ever deal with intelligent machines.
In science fiction the usual solution is to put the intelligence in human-sized robots, such as C-3PO and Robbie the Robot. Smaller robots, such as R2-D2 and Wall-E, are generally portrayed as being child-like and inferior.
However, in his Culture novels, science fiction author Iain M Banks has another approach – small robots that float at eye level. These robots, called drones, range in size from hockey pucks up to rubbish bins, and are usually far more intelligent than the humans they deal with. And I suspect we could build a half-decent drone using existing quadcopter technology.
The intelligence behind the ‘copter would be housed remotely, and the only extra features you’d need on-board would be wireless comms, a decent speaker, a camera, a glowing component to show “emotion”, and centimetre-accuracy navigation. Apart from the centimetre accuracy, that’s mostly stuff you’d find in a cheap smartphone. I’d also like it to carry out “nodding” and “head shaking” manoeuvres, but I assume that’s already possible with quadcopters.
I’d be really interested to see how people interact with a talking quadcopter. Would they actually engage as though it were alive, or would they treat it as just another computer, like a flying automatic teller machine? If they do engage, I could imagine quadcopter drones being used as tour guides and customer service reps.
On an unrelated note, does anyone know why the quadcopter is the dominant design? Surely a tri-copter would be just as stable, and cheaper to manufacture?
Update: I don’t why I ask speculative questions when I can just look up Wikipedia. According to this page four rotors make sense because two of them can be counter-rotating, providing more stability. And they give you three axes of rotational motion, so “nodding” and “head shaking” are definitely possible.
It’s always amazing what obscure products you can buy on eBay. It this case, a 10-pack of assorted sandpaper.
Time to start sanding the visor.
The transparent visor part arrived yesterday from Shapeways.
It’s not very transparent, but apparently with sanding and polishing it becomes clear. It’s also very fragile – a piece broke off when I tried to attach it to the first part and it had to be glued back on.
Now that I’ve got my hands on the part I can see a few things that need improving.
- The visor needs to be thicker. It’s currently 1.2mm thick, and will be difficult to sand and polish without breaking. At least 1.5mm next time.
- It needs a shorter focal length. The visor sits too far forward on the brim of the cap and doesn’t really provide fully field-of-view coverage. Shortening the focal length will move it back and increase its curvature, hopefully solving both problems.
- The attachment mechanism needs rethinking. The tolerances are too tight – this can be fixed with sanding, but that’s not suitable for mass production. It can fail when the visor material is too fragile. It’s too complex for injection moulding. And it partly obscures the phone’s screen.
Still, I’ll proceed with what I’ve got. Get the visor sanded and polished, then hopefully mirror coated, and see if it works.
The first part has come back from Shapeways. I actually ordered this a week after the visor component, but there has been a backlog on the machine that prints transparent materials, so it won’t be in until early next week.
Not bad. Near as I can tell it’s exactly to specifications and it feels pretty tough.
Two related observations …
- Shapeways, when you send me a part that fits in a 12 x 8 x 3cm baggie, please don’t pack it in a 20 x 15 x 12cm box and charge me $20 shipping. Use a smaller, cheaper, box.
- I got home to find a UPS card in my letterbox. Oh no, I thought, another game of courier tag. But no, they’d left it at a nearby 7-Eleven for pickup. Brilliant, UPS you guys rock! Fedex, please do something similar.
Once you get the hang of FreeCAD’s features you can make some nice-looking designs.
The STL file for the dark green attachment mechanism has been sent to Shapeways, and should be returning in physical form in a few weeks. Then we’ll see if the pieces fit together.
FreeCAD has a few rough edges, but it delivered the goods in the end.
This is the parabolic visor, with integrated attachment points. Let’s submit it to Shapeways and see how it comes out in transparent plastic.
Last year I posted an article about a baseball cap head-up display. I’ve been looking to improve on it, and have decided to use CAD and 3D printing to do it properly. So the first step was to learn a CAD package, preferably something free and available under Linux.
I thought I’d try FreeCAD. I don’t know whether this is common among CAD packages, but I really enjoyed the way its Sketcher tool uses constraint-based rules to specify the design. Instead of specifying (x,y) coordinates for each point, you first draw approximate lines and then start imposing constraints. For example, you might specify that a line is 15mm long, or that two lines must be angled 60 degrees from each other, or that two points must have a horizontal separation of 20mm.
Every time a constraint is added the degrees-of-freedom counter goes down, and when it hits zero you have a fully-constrained design, ready for export.
At least, that’s the theory. In practice, FreeCAD is still in beta, and I ran into a few problems …
- Crashes. Frequent crashes. They’re not hard to reproduce, and crash bugs are pretty easy to catch and fix, so I’m surprised they’re still around. Or maybe they’re not easy to fix, in which case an auto-save feature is needed urgently.
- Performance. I was sketching the cross-section of a 75mm radius parabolic dish at 1mm intervals, and as I was getting to 150 points it was taking over 10 seconds to re-calculate after adding each new point. Given that a basic PC can do over a billion floating point operations per second, that’s really poor, especially since half the points were locked with explicit (x,y) coordinates and didn’t need re-calculating.
- Lack of feedback. After entering all the points it becomes a game of tracking down and removing all the degrees of freedom. But the interface doesn’t show which points are unconstrained, so a lot of guesswork is required. That’s a pain when there are 150 points and when you’ve accidentally put two points in the same location and one of them is unconstrained.
- Needs another constraint type. When designing 3D objects it’s fairly common to construct a “wall” around a complex shape, for example when designing a hollow object. So it would be really nice to be able to constrain two lines to be parallel and separated by a certain distance. FreeCAD lets you set two lines to be parallel, and you can constrain a point to be a certain distance from a line, and if you use both of these simultaneously you can achieve the desired result. But it’s easy to make mistakes and the rules are difficult to maintain, so a single constraint would be much better.
- Needs B-splines. I realize it can be difficult to calculate constraints for polynomial curves, but if you’re making a 3D object odds are it needs a curved surface of some sort. My parabolic dish certainly does. How about constraining the points based on the straight line segments, but rendering them as B-splines?
Anyway, I’ve now finished drawing the parabolic curve. Luckily I realized that you only need half a parabola to create a 3D dish, since it gets rotated around its Y axis. It remains to be seen whether the 3D editing tools in FreeCAD are up to scratch.
Just launched a new website, notr.tv
It turns out that it’s possible to overlay HTML on top of YouTube players in most browsers (with smartphone browsers being the main exception). And the YouTube API gives you a lot of information about video playback. Combine the two, and you can annotate other people’s videos.
The obvious use is generating Downfall parodies. And Osama bin Laden and Pope parodies.
But there is also a lot of content out there that isn’t in English. And a lot of YouTube users who don’t understand English. So there is a plenty of potential for the crowd-sourcing of subtitles.
At the end of the day, I don’t know how this service is going to be used, but it will be interesting to find out.
Well, the PhD was submitted for examination in early July, and within a fortnight I had started work at a company called the Portland House Group. The job came out of nowhere and I couldn’t have asked for better timing.
The company is a hedge fund, and I’m working on trading algorithms. No high-frequency trading, so don’t blame me for any flash crashes. It’s a new industry for me, but they wanted someone with code breaking experience, and that’s was my first job out of university.
Anyway, that probably means even fewer posts to this blog in the coming months.