Putting robotics at your service™

Free shipping on orders over $200

Java servo controller- feature request thread

Print view Share :
Previous topicNext topic

Page 1 of 1 [ 9 posts ]

Veteran ( offline )
Posts: 167
Posted: 2005-12-28 17:42 
I am planning on developing all the software for my robot in Java, so that it can be compiled on multiple platforms. I am considering writing a small servo controller program similar to the SSC-32 terminal as a pre-cursor to my locomotion code, and was wondering if anyone out there would be interested in this program.

If so, what features would you like to see in a program such as this?

My knowledge of Java is not great, and I HATE the way Java's GUI objects work. Also, I know that certain classes do not port well to non PC operating systems. I'll have to do more research into this to find out what the limitations are. For these reasons, I may not be able to code all the features that you would like to have, but I'll do my best.


Veteran ( offline )
Posts: 167
Posted: 2005-12-31 01:48 
Well, thanks to a little bit of help from AndyLippitt, I have now gotten Java to communicate with the SSC-32. After finding out that Sun dropped support for serial interface in Java on Windows platforms only, I had to find a replacement package, and that took some time to figure out.

Currently, the program is just a single ugly slider that controls one servo (currently hard coded to be servo 0). If anyone out there would like to help me test this, I would greatly appreciate it. I am particularly interested in hearing from people who have non Windows systems, especially Linux and Macs.

My plan for this program is to streamline the interface, and make it easier and faster to do complex moves than it currently is with LynxTerm. If anyone has any ideas or features they would like to see in this program, please let me know.

Anyone interested in helping me to test this program (both functionality in varying environments and finding bugs), please let me know.



Veteran ( offline )
Posts: 167
Posted: 2006-01-03 02:06 
I now have the SSC-32 Terminal program mostly re-written in Java. I have not implemented some features yet, but the essentials are there.

Features that I have not yet implemented:
*Ability to read VA-VD
*Ability to perform the query position (QP) command
*Ability to update the SSC-32 firmware
*Macro support
*Hex-12 sequencer
*Ability to change font options (may not implement)

Features that I probably will not implement (unless specifically requested):
*Ability to setup the port or the terminal (not really neccessary, and somewhat redundant)

Known Bugs:
*Currently the only known bug is that the Java program cannot read any data from the SSC-32. Once I get that issue sorted out, the first two items from the list above will be fixed.

Features this program has that the Windows version does not:
*Slider resize is implemented better in the Java version
*Terminal window is disabled when the SSC-32 is not connected
*Very minor interface differences

Planned Features:
*I will soon start work on the sequencers. First the H3R, then H3, then biped or H2.
*Planned support for servos on the I2C bus (will work on that once I get some of Guru's digital servo boards- several months away).
*Ability to develop custom GUI that is application specific
*"Simple" and "Detailed" sequencer displays
*Option to switch between various user interface styles (current style and application specific style- the application specific style will have pre-made setups for the LynxMotion robots described above, and others, if requested).
*Anything else that users request.

I'll make the latest version available to anyone who is interested in using or testing it. As I said above, I may not implement the ability to change font options. Also, the macro control box is not high on my list at the moment (partially because I have no use for it, and partially because my planned user interface will make the macros somewhat obsolete). I do not have a place to host the file right now (and it is constantly changing), so just contact me if you want it (via PM, e-mail, IM, or any other method).



Veteran ( offline )
Posts: 167
Posted: 2006-03-21 22:48 
I'll be picking this project back up and making it far more robust than I had originally planned. Some of the planned features have been mentioned in other threads, but I have now added an info page for this project on my website (with an early screenshot of the user interface), which can be accessed by clicking on the icon below my posts.

For those of you interested in this project, please send me any feature requests you may have. My time is limited, so I will be adding features based on how important they are to the community.


Expert ( offline )
Posts: 431
Posted: 2006-03-21 23:50 
Hi Mike,
I could be all wet here, but I've found that GUI functionality for a general-purpose servo controller becomes unneeded very quickly after the basic stuff is working.

To me, the real value of a controller program is how well can I *script* a complex sequence of moves, like for a walking gait. That sort of functionality would be very complex in a GUI, because of the problem of how to describe what you want the servos to do.

When I was working out my 4-leg walk, I wrote a C++ program that basically just added some higher-level concepts on top of the SSC-32 protocol, such as:
- Looping.
- Define the center position of each servo.
- Define which servos move 'backwards' relative to others.
- Etc.
The program runs in a DOS window, and I define the script in a TXT file. I can't imagine how a GUI would help any. The GUI would end up being a wrapper for a text-box panel that displays all the really important stuff.

Now that most of the 'hard stuff' on the walking gait is worked out, I don't use my C++ program any more. Nowadays I tweak the code that runs directly on the bot. The logic has been further abstracted to calls like "walk 3 steps".

So I guess my point is that tools like LynxTerm were only useful on the first day, when I had never moved a servo before. As soon as I knew how to do that, LynxTerm didn't help any more.


Pete in Colo. Springs

Veteran ( offline )
Posts: 167
Posted: 2006-03-21 23:59 
Thats exactly where these programs will fit in, actually.

The GUI and associated control interfaces will be for the initial testing stages, or for those who only want to stay at the higher levels of control.

For those who want to delve deeper into the code, or create autonomous robots, all of the back end IK and movement code will be totally modular, totally separate from the GUI.

What this means is that during the testing phase, you'll be able to graphically control and tweak your robot on the same exact control software your robot will be running in the wild, without user intervention.

Or, for those who do not desire autonomous robots, they will be able to remotely control their robot, as well as receive feedback from onboard sensors. This means that whether the robot is right next to you, in a desert on the other side of the world, or even on another planet, you will be able to easily and accurately control the robot, so long as the signal is good.

Basically, this package of modules is all about giving the user options. It will also be tailored toward my design goals of building and controlling remote surveillance vehicles.


Guru ( offline )
Posts: 1667
Posted: 2006-03-22 14:33 

Howabout a box somewhere that shows the positions in a given sequence.
The positions would be labeled 1, 2, 3, 4...
The user would be able to drag and drop position 2 above position 1.
And they'd be able to delete, cut, copy these positions onto the clipboard and then paste them in the same or a different sequence box.

This way, you won't need buttons like 'Insert', 'Delete', 'Move Above', etc.

That way, people get to stick with the hotkeys that they're familiar with, instead of having to learn an array of new buttons.


I find that it's the simple interfaces like that which keep me coming back and using the program again and again.

It doesn't really matter how much functionallity something has if it's not intuitive.

Disclaimer: The above person does not claim to have knowledge pertaining to the following subject: anything. Thus, said person may not be held liable for any mishaps/explosions that his advice incurs.

Veteran ( offline )
Posts: 167
Posted: 2006-03-22 14:43 
You mean when designing a series of static positions, to be able to change the order of each individual position within the sequence?

If so, I can do that, and will add it to the list.


Guru ( offline )
Posts: 1667
Posted: 2006-03-22 21:04 
Well, yes.

But, I was also saying that the copy and paste methods that people are used to would work better than buttons for moving the saved positions around.

Disclaimer: The above person does not claim to have knowledge pertaining to the following subject: anything. Thus, said person may not be held liable for any mishaps/explosions that his advice incurs.


All times are UTC - 5 hours [ DST ]. It is currently 2014-07-14 00:59
Feedback Form
Feedback Form