Older blog entries for NateW (starting at number 9)

Another year has gone by so it's time for my annual robots.net journal entry. :-)

Still no new developments with the simulator, it stabilized back in '02 with the features I set out to create so I haven't had much inspiration or motivation to enhance it. There may be an extension before long to allow other applications to control simulated robots... but I'm not promising. Lots of other irons in the fire right now.

Moments ago I beheaded a Hitec 645MG and 5645MG (essentially the same servo, but the former is analog and the latter digital) and a Futaba 9252 (digital), and hooked them up to some RC gear to see how they would behave in continuous-rotation applications. I have long theorized that digital servos use PID feedback to get their improved holding power, and furthermore the "I" term in the PID equation would render them useless for continuous rotation. I was wrong.

If there were an I term in the feedback equation, I would expect the servo motor to accelerate to full speed if the desired position and actual position were held just slightly apart for a length of time. However, I was able to make the motor run at a low speed indefinitely. The Hitec 5645 seems to have slightly higher proportional feedback than the 645; the Futaba 9252 has substantially higher proportional gain (the 'window' that creates variable speed output is quite narrow by comparison to the others), but there's no evidence of integral feedback.

I surgicially reattached the heads of the aforementined servos and I am happy to report that all three patients recovered fully.

Warning, shamelessly off-topic self-promotion follows:
If you have pet birds, check out www.featherforum.com

Now, back to robot stuff...

Holy smokes, I've been certified as Master. Thanks, everybody.

It's been a whole year since I last posted something here. How did that happen? In the interval I got a new job and a parrot, but nothing much to report on the robot front.

The simulator hasn't changed in any big ways, but there have been a bunch of minor incremental improvements. I uploaded a new version today that might be christened v1.6 if no major bugs turn up.

It isn't GPLed, but you can hack on it anyway if you like - the source is now available through the web site. It will probably be a pain in the butt to build though, and I apologize for that. The build environment needs to be documented... I'd probably tear my hair out for weeks if my hard drive died right now.

I've uploaded a new version of the simulator, with a couple more minor bug fixes.

In the last two or three weeks I've added a 'terrain' mode to the simulator, so now you can drive stuff over hills and through valleys, as well as on flat ground. I've also fixed a few bugs, so if you have had trouble loading files with the simulator in the past, it should work now.

I also created a mailing list for it the other day, and two whole people have signed up so far. :-)

I should have added wheels to the simulator a long time ago. It's approximately 3.9*10^3 times more fun now, give or take an order of magnitude.

The control system has also turned out to be much cooler than I expected. You just create objects like motors and controllers and arithemtic operations, drag them arround on screen, connect them, and you get a control system. It just occurred to me that this could be a pretty cool thing in its own right if it generated, say, PIC code. Hmmm.

I've just uploaded a version of Juice that supports wheeled robots in addition to walking robots. I'm not sure if it will be as useful for wheeled robot design as (I think) it is for legged robot design, but it's kind of fun.

steve had a couple of things to say/ask about my Juice project in the story about snake robots, and I thought I'd answer them here since I haven't done a diary update lately anyhow...

[...] your Juice project looks like an interesting simulator that could come in handy for robot builders.

I hope so - that is the whole reason I started the project. :-)

Does it currently have any mechanism for implementing sensors? For example, could one build a biped robot with a walking algorithm that used a sense of "balance" - perhaps from measuring its inclination or angular velocity or something?

As luck would have it, Juice provides exactly the type of sensor you're looking for, and some of the examples that come with Juice use that feature to balance themselves as they walk. During the simulation, the rotation of any of the 'beams' in the robot's structure can be used as an input to any of the joints in the structure. I tried using sensors based on angular velocity, but the 'virtual pendulum' approach is easier to work with.

Juice does not yet include any other sensors, but I in the not-too-distant future I hope to add support for proximity sensors (for navigation over/around obstacles) and pressure sensors (to help weight distribution while walking).

I look forward to seeing a linux port so I can try it out - and a GNU GPL license so we can hack on it! :)

It'll happen. My first priority is to finish implementing the features I had in mind back when I decided to start this project. There are two reasons I'm keeping the source to myself for the moment, both stemming from the fact that I'm unemployed right now. First, Juice is featured on my resume and I want to be unambiguous about the fact that I wrote everything but the low-level physical simulation math. With a GPLed code base that claim becomes a little bit less compelling, than it already is with a closed code base. Second, I'm having a lot of fun creating this thing. Perhaps this is selfish, but I've been wanting to do this project for a long time, I'm enjoying every minute of it, and I want to see it though to the end just for the satisfaction of creating it on my own. :-)

When I have a full-time job, I won't be so concerned with my resume and I probably won't have the time or energy to keep working at this pace anyhow. At that point, the GPL will be the logical next step. And Linux, too.

I went with Windows for this version because that's where I can be most productive (I have loads of experience here, so I'm already familiar with the tools and APIs), and because that's the environment my future employers are interested in... but I'd really like to see this running on Linux. I built a new Mandrake 8.1 box specifically for the purpose of porting Juice, and I can hardly wait to begin. First things first, though: feature completeness under the OS I started with.

Speaking of features, the latest beta adds a new user interface with which to define the robot's behavior. check it out... I hope to have this stuff stabilized by the end of the week for a production-quality release of version 1.2.

I just came across a very nice collection of robotics links at http://www.machinebrain. com/.

Does anyone know of a good forum for robotics hobbyists? Machinebrain.com has a forum, but it's completely empty.

I just finished uploading a few MPEGs of some of my simulated robots: http ://www.packetgnomes.org/~nathan/video/Juice/

The dinosaur-like biped "Dihno" is the most sophisticated of the bunch, followed closely by the dog. With a joystick they can be commanded to turn as they walk, lean side to side, crouch, and so on.

I am working on a simulator for walking robots. It is specifically intended to aid in the the high-level design of the mechanics and movements (gaits).

At this point, it is possible to create a walking machine from beams and hinges, then animate the machine with simple motions, and steer the machine around under joystick control. It's harder than it sounds, but if it were easy I wouldn't have bothered with the simulator, right? :-)

Click here for details.

It's free software, but it's not yet open source. So far it has been tested on Windows 2k (with much success) and Windows 98 (with limited success).

Share this page