WinRME ( Robot Motion Editor for Windows )

I'm definitely getting ahead of myself here but I'm already too excited about this new project named WinRME for the HR-OS1. Using a modified version of RME ( netRME ) on the HR-OS1 UDP packets can be sent to and from the robot you've bound to during the discovery process. This will allow for multiple robots to play nicely on the same wifi network. On the windows side of things we have a .Net application that's capable of relaying all the standard RME commands to the robot via manual entry as well as a growing list of features which make a GUI special.

Some of the current features from early development:

Easy page selection with a list that's always visible.

Quickly turn joints on and off by clicking their label in the Pose Manager.

Quickly set new values by double clicking the cell.

Easily Insert, Cut, Paste or Remove a step via contextual menu.

Drag and drop steps to re-order the page via the Pose Manager.

We are diligently working on this project when time is available. There are many plans for features but if anyone has any ideas they'd like to throw in while the development is getting started they are more than welcome. I hope to hear there will be interest in others using this application.

Re: WinRME ( Robot Motion Editor for Windows )

Will be fun to play with once you have a version that you wish to release.

I would guess that you have already looked at some different editors out there for ideas, but in case you have missed a few, here are a few different ones I have played with:

Probably starting with the one that came with the Robonova (sitting somewhere in a box for many years now ). Don't remember much about it.

But mainly I used to play with the one that Lynxmotion used to sell: http://www.lynxmotion.com/p-443-lynx...er-seq-01.aspx It worked pretty well, especially since it was used on servos without feedback. Some of the interesting things you could do was to setup a more visual setup showing where the servos are located in the robot. This was in addition to the tabular views... This program was more or less replaced with a version written in flowstone (http://www.lynxmotion.com/p-832-free...sequencer.aspx), which I never got in to.

Things of interest for someone like me who is all thumbs
Things like: having some way for relationships to between servos or groups of servos to be expressed and used. Like if I want the left arm to do the same as right arm, somehow express this, such that the capture of one arm is reflected in other, taking servo directions into account. Also maybe some smart capturing/roundings, could be some form of snap to logical settable grid. Could also be comparing the different sides and either round or the like. IK? FK? ...

Re: WinRME ( Robot Motion Editor for Windows )

Thanks Kurt!

For the initial release we are shooting for emulating all the current workings of RME plus some extras that I've yet to mention. That way there will be a baseline version available for testing and feedback as we move towards making it do new things. I like your idea of matching/inverting the movements between arms; it's something I was thinking about doing for fun on the side but it makes more sense to incorporate into this application.

So hopefully within the next week or two I'll make something available.

Re: WinRME ( Robot Motion Editor for Windows )

A quick update on WinRME..

An overview of the current state of the application. There is the "main" window pictured in the upper right corner that allows you to find your HR-OS1 on the network, select it from a list, and bind so it will accept commands from you. The RoboPose window is a multifunction tool that gives a graphical representation of each servo. And the PoseManager window represents what you'd be used to seeing with RME in a terminal but with some new features.

Some new features of the PoseManager are the ability to save and load "poses" on your local machine. Any pose loaded from the robot that is not in the list will automatically be added to the pose manager so it can be saved later. This is all in hopes that it will make sharing custom poses easier. You can select what Pose you are viewing/editing from the drop down menu in the upper right corner. Just as well as the main window if you query the robot for it's saved data.

The RoboPose window is all new and by default automatically queries the robot for the servo information and generates a linear but customizable view of each servo, it's current position, id, and label. Customized layouts can easily be created by clicking the edit page and dragging the servos into the desired position. You then have the ability to save and load or even share these layouts. The servo icons are interactive meaning you can click and drag them to change the setpoint value or for fine control you can mouse over and use your scroll wheel to adjust the setpoint up or down.

A neat feature of RoboPose is the ability to mirror joints. When this option is selected if a setpoint for a left servo is changed the right side will mirror the same position. Just the same when you change a right servo the left servo moves into a mirrored position. This is extremely fun with the arms but also makes standing up with only using my scroll wheel super easy.

One last thing to mention is safety limits. By right clicking any of the servo icons you can not only adjust the displayed label but set a minimum and maximum position to help limit chances of a collision. These limits are also saved and loaded with the customized RoboPose layout.

There are still more features planned but the software is coming along smoothly and I'm already finding new ways to have fun with my robot. Stay tuned!

Re: WinRME ( Robot Motion Editor for Windows )

That's funny; I'm building a very similar system right now in C# to build poses for my customized Darwin Mini. (I didn't get along with RoboPlus 2 after I modified the leg structure)
It's interesting to see how similar requirements end up with similar solutions :-)

Re: WinRME ( Robot Motion Editor for Windows )

I'd be interested to see what you come up with. WinRME is C# WPF and... has a new servo "linking" feature that I'll post about as soon as the final touches are complete. Basically it allows you to select two or more servos and create a "link" that appears as a servo icon in in the RobotPose window. You can specify an offset, inversion, and create an exponential curve (visually, without math) for each servo in the link to manipulate how the link value is applied to each servo. That allows for one value to possibly change.. all the arm joints at once in different ways.. or the arms plus hips and ankles to do a little dance. I can already see this feature being a lot of fun.

Re: WinRME ( Robot Motion Editor for Windows )

Still making progress on WinRME.

The linking feature works quite well by allowing you to select what servos you'd like included in the link, each servo's offset in the link, the curve the servo's value follows in the link, and if the servo's output should be reversed/mirrored.

And most recently a 3D visualizer was added with all the joints mimicking the robot! Watch out RViz.. just kidding.

Re: WinRME ( Robot Motion Editor for Windows )

Looking great. I like your RVIZ!

I could not tell from your description if when you are saying servo angle and offset, are you saying you have the length of each segment (coxa femur tibia...). If so are you then using it to generate the FK for different parts of the robot? That is great.

Re: WinRME ( Robot Motion Editor for Windows )

Thanks Kurt I'll pass the message along to Eric who has been coding the 3D rendering for days now. It's working amazingly well and is fun to see the rendered robot mimic the movements of the real thing and vice versa.

Sorry for the misunderstanding. No kinematics are being performed in this software. When I say offset I'm talking about the difference between the servo's position value ( 0-1023 ) and the value of the link containing the servo. Now that I'm thinking about it, that gets negated by the output curve, currently kinda mislabeled as "scale" in the LinkOptions window. The offset was introduced early on and now it's not likely needed with the more recent output curve editor. Anyway I'm just about to start thinking out loud. Hah.

It's all in the works right now. Things are coming and going and getting better definition as the project grows.

Re: WinRME ( Robot Motion Editor for Windows )

After much development and testing I'd like to present the first public beta of WinRME. While it currently doesn't replace 100% of functionality found in rme there are enough features implemented to (hopefully) find this application useful. At the same time feedback and ideas are more than welcome during this period of development.

Things to note:

WinRME does not require a connection to an HR-OS1 to visualize, create, edit poses so feel free to explore the program before controlling your robot.

Compile netrme with the make command as you would the other programs within the framework. Execute with ./netrme or see the extras directory for an Intel Edison startup service to handle automatic execution of netrme.

If you should run into a major problem please note the steps required to reproduce the issue and if things go horribly wrong please send the bug report provided by WinRME at the time of the error.

Tips:

On first load the RoboPose window will look pretty square and I recommend using the File menu to open the provided HR-OS1 Servo Layout.

Some new poses are provided in the Chair Poses file.

Explore. Try right clicking. There are lots of details to discover.

Use your mouse wheel when hovered over a servo's icon in the RoboPose window for fine position control.

Double click a servo's icon in the RoboPose window to set it's position to 512 (centered).

Poses/Pages can be played, saved, duplicated, modified, and imported via the PoseAnimator window.