2015/03/23

Helicopter Electronics: Test #1

Quadcopters are so popular these days, but I still prefer traditional helicopters. They are more efficient, can carry heavier payloads, give a faster response ... and are a bigger challenge. That's why I'm revamping an RC helicopter into an autonomous platform to test a few technologies. This is the first test of some of its electronics.


Sidenote: It is my little brother that you hear in the video, and actually operating the controls.

2015/03/22

A perfect fit for A3

It's been a while since the last time I wrote about the A3 project. It has recently morphed into the Prometheus Arm project, in which I work with a friend of mine. What motivated the change? Take a look yourself:



I must admit it. I can't resist Iron Man. That's just it, and now I want to contribute. My friend Pablo and I are now working on a better design of the arm, balancing between cost, simplicity, repairability and functionality, and will try to contribute to Limbitless' project with it.

Talking specifics, we are making the first tests with a 3d printed, improved version of the antagonistic mechanism that allows for better, finer and simpler adjustment of the joints.

The main problem with antagonistic actuation is obviously the cost. Since you are basically doubling the number of actuators, the costs goes up very quickly. However, a good mechanical design can simplify things a lot. I still don't have it fully documented, but I will soon post a method that uses symmetric cinematic chains to factor out some actuators while retaining the basic functionality. Reducing the number of actuators necessarily reduces the number of degrees of freedom (which originally was two for each joint), but I think this is a good trade off if all you are loosing is strength degrees.
More specifically, the tension regulators are shared among similar joints, so they will all be adjusted at the same time, but individual elasticity and torque tolerance is fully kept. I don't think the use-case for trying to exert different amounts of force with each finger is much common, so it is definitely worth the cost drop.

2015/03/08

Set up TortoiseGit to work with GitHub

Introduction:
TortoiseGit is the easiest and most comfortable Git interface I know for Windows. It integrates seamlessly with Windows explorer and simplifies common tasks as commit, checkout, pull, push, etc. I'm so used to it that I always recommend it to everyone.
If anything I enforce more than the use Tortoise, is the use Git itself. Version control systems are one of the most powerful tools a developer can have. Switching from traditional (manual) code back up systems to any form of version control system is a qualitative change that can easily increase your productivity by an order of magnitude. Not to mention the benefits of version control when you're working in a multi-person project. In such case, version control is simply a must. And of all VCS I've tried, Git is the by far. Under Windows, Git is supported by mSysGit.
Below, I will present a way to install both mSysGit and TortoiseGit and make the work together with GitHub, one of the most popular repositories over the internet, and the one I use most.

Using C++ in embedded environments

Although C++ is an incredible language, its use in constrained embedded environments is not much common. Somewhat surprisingly, even engineers with a good background of C++ in mid-size environments (e.g. Linux capable systems) often resort to plain old C when they work in small systems like an AVR. I believe there is more tradition than reason to this, and I will try to explain my reasons in this article.

2015/01/17

SpaceX Falcon 9R Crash-landing explained.


By now we've all seen this amazing footage. This is Falcon 9's first stage trying to land on the "Autonomous Spaceport Drone Ship" as seen from an onboard camera (on board to the barge, not the rocket obviously). While this is an amazing showcase of great performance of the rocket, and it demonstrates SpaceX was really really near to nail it, it may not seem so at first sight. I mean, even if it had not exploded, it still hit the ship from the side and at about 45º from vertical, right? That doesn't look like the tests of the grasshoper at all, does it?


2014/10/15

Antagonistic Actuation Arm (A3): Part I

I'm starting with the design of a 3d-printed arm to test antagonistic actuation.
Antagonistic actuation is a technique by which you control some degree of freedom (e.g. a joint rotation) with two opposite actuators at the same time. The actuators are connected by an elastic piece of material, like a spring, that can store energy. When the two actuators move accordingly, nothing special happens, and the result is just like if you had a single traditional actuator. But if the two move in opposite directions, the elastic element will stiffen, and your articulation will get stronger. Varying stiffness actually introduces a new degree of freedom, so you get two per joint.

With a good design, you can probably reuse stiffness control between various joints and get the best of both worlds: Shock absorbing and stiffness regulation from antagonistic actuation and low actuator count.

2013/01/26

Hacking a servo: Part I

Motivation

Servos are probably the most popular actuator in DIY robotics today. Cheap, easy to use and easy to control, they are almost everything you want for your little robot. However, they're also quite limited, since they don't provide any feedback, or any information about how they're performing. This makes servos open loop systems, resulting in robots showing typical open loop issues.
Basically, your robot tells its servos to move to some position, and hopes they do it. Never knows whether servos have come to its target or they are stuck in the middle. Even when a servo doesn't get stuck, it's hard to predict where it actually is due to varying loads and initial conditions.
Most of the time, this is solved using an external sensor, like a potentiometer.
But some times there is no room for extra sensors in your robot, and even if there is, why bother when the servo has its own potentiometer inside?