Nubotics wheel commander Board
Lizardboy  [11 posts]
11 year

Im trying to use the Wheel Commander interface supplied with Roborealm. I have no trouble reading values or controlling the motors directly. The problem comes when I try and use the advanced feature this board has. On the right off the interface screeen are for slots for control variables. The documentation  only mentions them in twice. It says that the variable assigned to the slot is both a control and a feedback variable at the same time.

If it try and put any values in these boxes it causes roborealm to stop responding. this really is an excellent board with closed loop motion control. Is anyone else using this interface. perhaps it was never updated with the new firmware version can anyone comment or report if this interface even currently works at all so I can stop pulling my hair out.

Thanks everyone
Lizardboy  [11 posts] 11 year
It appears at least some of the problem occurs because the module will not save the baud rate setting on exit so when it starts in the wrong baud rate (the program always starts in run mode) it makes roborealm non responsive.  I'm running windows 7 and I'd say the program crashes off the start even with no devices in the pipeline about half of the times I start it. But I'm hopefull that getting the right baud rate on startup would help. It seems to crash more often if I turn on more of the checkboxes. Maybe this is a USB bandwidth issue I'm running a camera an arduino and the neurotics wheel commander board.
Steven Gentner from United States  [1446 posts] 11 year

We've update the module to save the serial and baud information but have not yet had a look into some of the other issues. You can download the latest version to get that update.

If you get crashes, please allow them to upload. It sounds like a webcam driver issue if there are no modules loaded when this happens.

Lizardboy  [11 posts] 11 year
Thanks so much ill give it a try.

Just how are those left side boxes supposed to work when I assign a variable to one of the boxes it returns data from the robot. How do I use this to send commands to the board?

My hope is to be able to turn and move fwd/bkw my measured amounts since I have owed loop control.

Thanks for your time
Lizardboy  [11 posts] 11 year
Okay the baud rate is being saved now thank you. This and reducing the baud rate seems to have stopped the locking up situation.

I have a few more details on the other problems.

First if i leave the boxes at the right side empty the interface works as you'd expect the two servo sliders (controlling dc gearmotors in my robot) work fine although it's difficult to change the range of the sliders to anything other than their default values of 20. Changing the limits to +700 and -700 still leave the same +20 to -20 range. manually typing in 700 a few times seems to make it suddenly start offering the +700 to -700 range.

econd. Putting any variable into the boxes at the right causes a value like 65454 to appear in the values box no matter what you change the variable to be this value continues to change in response to the wheels of the robot. The wheels then turn very slowly randomly and the slider controls no longer do anything. Removing the variable from the box does nothing it keeps displaying the 60,000 + value the sliders still wont work and the wheels slowly creep randomly. rerunning the program still leaves it in the same state and the only solution is to completly delete the nubotics interface and start again.

If anyone can tell me if they ever made this interface work that would really help right now
Steven Gentner from United States  [1446 posts] 11 year
Please download the latest version. We've upgraded our WC to the latest firmware and found a couple problems which have been fixed.

Why do you need values above/below 20? Are you seeing the servos change speed above those values? The range seems to be from -+20.

The 60,000 value are actually 16 bit numbers represented as 32 bit numbers (this should be fixed too). So when you see 60,000+ numbers that's actually representing a negative number (in 16 bits it is).

We also took care of the switching between the sliders and the maneuver variables. Once the maneuver variables were used you have to reset the motor values in order for the sliders to work again. This was not done and the reason the sliders stopped working.

Anyhow, give the latest version a try and see if this helps improve things.


Lizardboy  [11 posts] 11 year
Hi thanks so much things are really close now.  I need values over 20 because with the external h bridge that seems to be the top speed setting.

The numbers that come up in the boxes make sense now thanks.

My remaining issue is just how the boxes work. It seems like any variable assigned to the boxes say the set relative angle box foe example, takes on the values sent from the board. This is great but what I really need is to be able send a value to the board so that it moves that relative angle under the command of the variable. I can't seem to figure out how to do that and the instructions are very brief on how the manouvering boxes work.

I mean if I was realy dreaming id have a circular gauge with a needle that showed me the relative angle direction and also the desired relative angle. Id settle though for having two boxes for each variable so I could see what I was sending and what was being feed back.

Lizardboy  [11 posts] 11 year
Or it could be that there's no go button to execute the task
Steven Gentner from United States  [1446 posts] 11 year
Ok, the module has been updated with separate set and get variables which should help to simplify that interface.

Note that one of the reasons this has never been an issue is the nature of how the module is typically used. Most will use vision to create a left and right differential motors which get updated at each new image. So a maneuver of "turn 90 degrees" is very rarely needed unless you are controlling the robot without visual feedback.

Lizardboy  [11 posts] 11 year
Thanks so much it should be much better now. Just one thing though everytime a new command is issued it generates a reset command (I think) that resets all the motion control data including the encoder counts and the angle/distance values. At least I think thats whats happening.

I think there needs to be a "g" command at the end of each command or it has to be triggered by a separate go request. I like it automatic as it is now but I think it needs to not be a reset command or whatever is causing the data to be erased.
Anonymous 11 year
Okay so I was able to verify that it in fact is not reseting... The problem in fact is that the interface is taking huge resourses to run. If I disable the nubotics interfce my system runs at 11 Fps with the interface on it drops to 3 fps. The arduino interface Im runnig has no effect on the fps.  You can run this board off a basic stamp so I can't see this kind of bandwidth being needed.

It seems also that you need to be sure and not use the motor control sliders when using the advanced controls. this was causing some of y problem,

The only controls missing are the rotational velocity controls but that can be worked around.
Lizardboy  [11 posts] 11 year
Is there anyway I could look at the code for the interface myself? Im guessing that since I've gotten no furthur responses in 6 days that the desire to fix this is gone. I could work with this and get it working properly then contribute the code back to the project.

How are you testing the board? What is the setup your using? Have you ever actually used the board to make anything move or have you just used the bare board on a bench?

I only purchased this motion system because there was an interface already included in Roborealm. I had no idea it hadn't been tested fully. Since I've already bought the license maybe I can help here and get a solution that really works for everyone using this board.

from your comments about just using the motor sliders you don't understand. The motion sliders control motor speed and without the benifits of the boards pid controls the robot motion control is very primative. Fine manouvering is very hard as there is latency in the manual controls and my left motor is just a little slower to start than the left which produces a turn at every motor start.  Just try and control a robot with only arrow controls and a one second latency. WIth the pid controls I can turn in place and stay directly on position. I can turn with very fine control and run straight lines for 50 feet or more. My plan is to use this enhanced control to imrove navigation. With the interface consuming the bandwidth it is the framerate is too slow to react while turning and it simply overshoots it's target turns completly around gets lost and crashes into something. With propr closed loop motion control this doesn't happen. Why would I want to go back to primative control?
Lizardboy  [11 posts] 11 year
The last page of the wheel commander setup wizard/program has an interface they use for testing the board uses no bandwidth and drives the robot very well. Perhaps this will provide a clue or two.
Steven Gentner from United States  [1446 posts] 11 year
The most recent version should have fixed the fps slowdown. This was due to a read/write timing issue rather than excessive bandwidth usage.

The Reset need to happen when switching between the sliders and the maneuvers otherwise the sliders will stop functioning. It appears that you cannot mix the two modes in the board ... you either use the sliders or use the maneuvers. We added additional checks to try to limit when that is performed in case things like the encoder ticks are getting zeroed.

We have the board attached to a robot but only test it on a table top. If you can post your full robofile that you are using we can always use that as part of our testing.

Yes, the module did work 3 years ago, but with substantial firmware changes we cannot be responsible for the module suddenly stop working. (See http://www.roborealm.com/index_more.php for when that was released in 2009!) We do not get messages from the vendor that changes have happened and as you can tell this is not a very popular board so those updates have gone unnoticed. From our point of view, we were not even sure you could still purchase one of these boards.

See if the new version helps with some of your issues.

Lizardboy  [11 posts] 11 year
Thanks so much the interface works great now. The bandwidth issues are solved for this interface now. However now the arduino interface is taking all the bandwidth the neubotics board used to take leaving me at exactly the same spot. I just gave up and halved the camera resolution. This will work till I get around to changng the robot to use a remote desktop computer to do some of the processing.

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index