PDA

View Full Version : C# Bioloid Motion Sequence Program



DresnerRobotics
09-13-2008, 10:38 PM
So... I said from the beginning I was working on an open source C# based bioloid control software solution to share with the community. This will be a comprehensive software package, and hopefully be modular and versatile enough so that anyone using an AX-12 based robot can make use of it.

The particular software package I am writing for use in Mech Wars will consist of three parts. I don't have fancy names for any of them yet :p

1. A Motion Sequence Program with exportable sequences. This is what I'm working on right now, think of it as an open source .NET based version of the stock bioloid software. I'll use it to generate walking gaits and export those in a uniform format (probably a basic CSV format) that a control program onboard the Mech will access. Although I'm using an onboard PC on my mech, I'm hoping that the walking sequence this program will export will be usable by anyone using AX-12s. This is by far the most complex part of this software package.

2. Program onboard the Mech. This will be a minimal program that simply listens on an open socket server over wifi for instructions (walk forward, turn left, fire, etc) from the controller program on my laptop. Probably doesn't even need a gui, all it's doing is waiting for instructions, pulling up the walking gaits, and sending commands out to the Dynamixel servo network. I'm writing this in C# first but I'll try to get a C version available for those not running an onboard PC with .NET.

3. Controller Program. This is what will run on my laptop. It's not going to be nearly as pretty as Matt Bauer's Mech CP program simply because my main control interface will be a directx compatible joystick rather than a visual GUI. This program will read the joystick signals and translate them to instructions (walk forward, fire, etc) and send those over the socket via wifi to the onboard Mech program. It will also house a large format video feed from the mech, as well as sensory data (taking fire, guns hot, servo temperatures, etc). Still a pretty simple program.


I want my motion sequence software to be as versatile as possible. I'm using Scott Ferguson's open source Dynamixel library (http://www.forestmoon.com/Software/AX12ArmSample/DynamixelHelp/Index.aspx) and some of his code examples as a foundation (it's awesome btw, if anyone is interested in seeing an amazing example of how to write a comprehensive robotic control library, look no further) and thus everything I'm writing will be available as source code. The concept is similar to the stock bioloid software, except I hope to make this much easier to use, more customizable, and not as proprietary (you can't do jack with the motion sequence exports of the stock software)

You take a picture of your robot, drag and drop servo control modules at their corresponding locations on the picture, at which point you can manually use a slider to adjust position, or use the 'pose and capture' capability of the servos and manually pose your robot for each step. Snapshot each pose to create a walking/motion sequence, and export them to the uniform format for use onboard your robot. You'll also be able to adjust the various attributes of each servo within this program, monitor voltage and load, etc.

Anyway, enough talking, here's a sneak peak of my progress thus far. This is only a few days in the making, all my previous time has been spent teaching myself C#. Don't expect a release too soon, this is the most difficult part of my software package and I'm taking my time to make sure all my code is well organized and annotated so that anyone else wanting to tweak it can do so easily.

http://www.trossenrobotics.com/images/forums/MechCommand.JPG
(http://www.trossenrobotics.com/images/forums/MechCommand.JPG)

srobot
10-23-2008, 05:09 PM
Hey Tyb,

Where are you at on this software?

DresnerRobotics
10-23-2008, 05:11 PM
Getting some help from Alex in turning the Servo Control modules into an actual Control instead of a cluster of controls with a ton of backend code.

I'm probably going to simplify it and make it for use with my Xbee Bioloid Controller, so that people don't have to run a C# program onboard the Bioloid itself, rather commands would just be relayed from the PC to the Xbee controller.

I'm also combining the motion editor with the control console, for simplicity. Easier to have an all in one software package imo.

Obscene
11-16-2008, 08:47 PM
Awesome. When I first decided to build a robot, I spent months looking at LynxMotion parts, but wouldn't have been able to afford the servos I wanted. The Bioloid kit seemed to be the best choice for me for now. At any rate, I had wanted to build the Lynx 209, but figured I could get a good Mech configuration out of Bioloid.

Glad you're working on this. :)

Suicidal.Banana
11-25-2009, 04:55 AM
sry to bump, but how is it going?