jojomojo: (Default)
My first self-designed circuit - though it's a bit of a stretch to call it that. I've got 12v coming into the near side of the breadboard from a NiMH battery (and I am a bad engineer for using the same colour wire for live and ground there, oops). That's being shunted through an adjustable switching regulator to provide 7.2v on the power rails on the far side.

The reason for this is I've gotten the superstructure off my new RC tank, removed the built-in RC controller and am getting close to testing it out with the motor controllers I used in the old tank. I need 12V because basically all the electronics I intend to put on the rover (Fit-PC2, Kinect, Arbotix and AX-12 servos) want that; however, unlike my old tank which ran on 9.6v and could tolerate 12, this one is based on 7.2v.

I could shunt 12v into the motor controllers (they'll take up to about that much) and rely on PWM to bring the effective voltage down to something the motor can handle without burning up - but I'm a programmer, and therefore I trust hardware more than my software, during development at least. This way there's no way I can mess up and explode my motors, and as a side effect I imagine the regulator will prevent too much EMI getting back and messing with the PC.
jojomojo: (penguin)
I finally have the new version of my tankbot working autonomously. I think I'm going to call him Grommit.


Picture of it a little earlier here

Still needs plenty of work, though. One of the motor driver circuit boards is loose because I need to find some more standoffs from somewhere to remount it. There's no power switch (I physically unplug the battery to make it stop). The motors at the back aren't terribly secure and tend to ride up. There's way too many cables for my liking (most of that's the Kinect cable). Both the battery (a giant fuckoff 3100 NiMH jobby that's running most of the length of the tank chassis) and the Kinect need to be secured so it's not bouncing around so much in motion. I also need to electrical-tape all the bare wires.

Still, it's functionally now about where it was with the previous netbook-based version, except with (hopefully) longer battery life, a nice modern Atom processor, a Kinect instead of stereo webcams, and an ArbotiX so I can attach servos and sensors. There's even a little breadboard!


Nov. 13th, 2010 03:37 pm
jojomojo: (Default)
Unfortunately, the load of a Kinect plus a Fit-PC2 seems to be a bit too much for my quad - it'll run for a few minutes then shut down, Not sure what to do about that. One option is to go for a hexapod and hope the extra two legs will provide sufficient carrying capacity. Another is to ditch the Kinect and use some other sort of sensor - but I kind of like the Kinect and would hate to use its capabilities. I could also go back to my tankbot, mount everything on that, and use the servos for a robotic arm. That sort of lacks the creepy-factor though :/

Edit: It also shuts down fairly rapidly with Fit-PC2 plus my dual-webcam mount. No doubt I could get some improvement by either using a lighter-weight body or a better leg design, but still, maybe hex/rover is the way to go.
jojomojo: (Default)
I got it for use in robotics, of course.

Here it is running on Linux

On the right is the camera image, on the left is the depth map - the big black blob shows it's detecting my hand as being much closer than everything else. I was going to work on getting my robot working with batteries this weekend, but I might instead have to work on integrating this. :)
jojomojo: (penguin)
First, I turned back to the Nuke engine that I tried using months ago to get my robot to walk. Now that I've solved the IK problem myself, reusing its gaits engine was fairly easy and means the robot now walks a lot more smoothly (comparatively speaking; plenty of tuning to be done still, and I think a need a longer tibia). Video here of it scaring Bitsy.

Then, I permarooted my phone. The T-Mobile G2 was locked down to make this very hard to do but this morning the open-source community figured out how to do it. I now have an engineering bootloader on my phone that won't refuse ROMs that aren't signed by T-Mobile and the ability to su into a root shell when I feel like it. One up for freedom.
jojomojo: (penguin)
A few months ago I basically burned out on robotics a bit because I had such a hard time figuring out how to get my robot to walk properly. I even bought a widget that was supposed to more or less help me get it working out of the box with someone else's canned software, but I still couldn't get anywhere (not their fault, I'm sure; I kind of wonder if I might have a dodgy servo cable in there or something and Python's serial library just happens to be more sensitive to it than C code for whatever reason).

Having taken a break and messed about with other stuff for a while, I went back to it a few days ago and started working out the trigonometry from scratch. I now finally have a walking robot, and it's all my own code rather than someone else's. It uses inverse kinematics, which means that thanks to a certain amount of maths I can tell it where I want each foot to be in Cartesian coordinates relative to the robot's body and it figures the angles to move the servos to get the legs there. Moving in any particular direction is a matter of translating the 'neutral position' leg coordinates by however far you want to move in a single step and moving the legs there one by one; turning involves rotating them instead.

Behold your new robotic overlord

Basically, this is just a four-legged test frame made out of stock Bioloid stuff and tethered to my PC and AC power; however, I arranged the servos such that they'll fit right into the upcoming Interbotix quad/hex frames should I choose to buy one. Now that I've got this far I might not since all it'd really give me are parts for the legs and body, and I can come up with that myself (out of balsa wood if need be, though I'd really rather figure out how to use aluminium or something).

It also has this fairly nifty 3d view that I'll also integrate sensor data into once I have some.


Aug. 22nd, 2010 03:13 pm
jojomojo: (Default)
I now have a working pan/tilt setup.

I feel a bit cargo-cult-y building robots out of balsa wood, but my mechanical skills (and tools) aren't all that great, unfortunately. I get the impression the majority of robotics hobbyists come from the electrical/mechanical world and don't necessarily have all that much embedded software experience, whereas my skillset is the other way round.

I suppose I should consider at least using ABS plastic or something in the future so my stuff looks more 21st century than 19th :)
jojomojo: (Default)
Lately I've gone off robotics after encountering frustration after frustration trying to make my hexapod walk and getting no further than an epileptic fit.

Still, having taken a break I'm back with it now. I've dusted off my old tank-chassis robot to mess about with; I don't know if I'll keep using that or have another go at a legged robot, but in the meantime I've been working on something that I'll be using either way, a proper pan/tilt head with dual webcams (right now I've been electrical-taping a stock Minoru camera to the chassis, which just doesn't look good and also isn't very stable).

Here's my day's work

I've de-shelled two Playstation 3 Eye cameras (good for robotics because they're high-speed and have a wide field of view) and bolted them to a piece of balsa wood. I'm even using proper standoffs like a grown-up embedded engineer, on the top at least; on the bottom there weren't any mounting holes so it's propped up with a bar of balsa wood (note the cameras are upside down in the picture).

Above it is the basis of the pan/tilt mount, two servos attached to each other. I need to attach a mounting plate to one servo horn and screw the balsa plate into it, then attach the other end of the assembly to a base and some kind of Bioloid controller, either Arbotix or CM-5, then I'll be set to mess around with it.
jojomojo: (Default)
I've spent the last few weeks off and on trying to make my hexapod walk using reverse kinematics code designed originally for the arbotix robot controller. I don't seem to be getting too far, so I'm going to just break down and buy one; it's got some useful features I can use anyway. While I was there I also broke down and bought two more servos in order to make a pan/tilt head for its eyes.

Sometimes the best solution to a technical problem is to throw money at it. :)
jojomojo: (Default)
Just showed off my robot alongside a bunch of others brought by the local robot club. Mine definitely looks kind of rednecky compared to the others, seeing as it's held together with velcro and electrical tape and the others were either commercial or made of actual hard plastic, screws and properly mounted circuit boards, but people seemed to like it nonetheless. I'm taking it to the robot club on Wednesday so I can talk about how it does stereo vision. Should be fun; I just wish I could find the deadlocking bug that causes said vision to pack up and freeze after a few minutes.

There's quite a bit of interesting tech stuff here, actually, more than I thought there would be - mostly space-related, since there's a guy from NASA here as a guest of honour. It was interesting to see a talk on the next Martian rover and think I've done some sort-of-similar stuff myself on a smaller scale.
jojomojo: (Default)
After some fiddling, and thanks to the kind people of the Ypsi/Ann Arbor robot club who taught me how to solder, I now have my RC tank chassis under USB control and can control it manually from my desktop.

The cats love it.

It's surprisingly zippy - in that video it's software throttled down to about 2/3rds maximum speed.

Next, I need to figure out a better mounting system for the USB hub and motor controllers, then stick the netbook on it.
jojomojo: (Default)
I've spent the last few days working on this.

Side view.

It's a netbook mounted on a Lego NXT-controlled tank chassis, with a webcam. I've written a little Linux server program which can drive it around and transmit the video output over Wifi to a client GUI running on a Linux desktop (or Windows for that matter; it's Qt and cross-platform). The GUI displays the webcam output and gives a simple numpad-based interface for driving.

This means I can drive it around from wherever I am in the house. I just took it for a spin around the downstairs without too much trouble other than one of the gears coming unseated.

The next step is to give it some on-board intelligence. Make it chase the cats, perhaps; they're already fascinated and a little unnerved by it.
jojomojo: (Default)
I got my Lego to do something today.

An automated laser pointer to play with the cats

I realise I originally was going to make a weapon to use against them but kitty mind control is strong.

I'm not sure it's a robot per se - the program controlling it isn't running directly on the brick, it's a Linux/C++ one on my desktop telling the brick to activate motors randomly over USB. But still, it works and it's (sort of) useful :)
jojomojo: (Default)
Turns out that Angstrom's GPE/X11 image thinks it knows how to drive the Wifi on the iPaq but really doesn't, basically making wifi unusable. I couldn't figure out how to make it stop trying so I went back to Opie, and have finally gotten Konqueror/Embedded to build.

Also, my Lego Mindstorms arrived. V. shiny. Haven't yet done much with though :)
Page generated Sep. 24th, 2017 01:19 am
Powered by Dreamwidth Studios