Labview control of Roboard RB-100 PWM Channels

Based on DMP's Vortex processor / SoC this board is a full computer capable of running a standard Windows and Linux installation on the backpack of your robot.
22 postsPage 1 of 21, 2
22 postsPage 1 of 21, 2

Labview control of Roboard RB-100 PWM Channels

Post by goofylogic98 » Thu Sep 03, 2009 9:21 pm

Post by goofylogic98
Thu Sep 03, 2009 9:21 pm

I was wondering if anyone had advice on how to use Labview to control the PWM channels on the RB-100 board. I am attempting to control a simple servo (no feedback from servo) and just want to make it rotate in both directions. Thanks.
I was wondering if anyone had advice on how to use Labview to control the PWM channels on the RB-100 board. I am attempting to control a simple servo (no feedback from servo) and just want to make it rotate in both directions. Thanks.
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by iEmilie » Thu Sep 10, 2009 10:32 pm

Post by iEmilie
Thu Sep 10, 2009 10:32 pm

While I don't think there is any official support for RB-100 board with LabVIEW, it should be possible (and perhaps even simple!).

Awhile back, I saw someone control Robotis Bioloid AX-12 actuators by sending ASCII commands from LabVIEW to the CM-5 controller. I imagine you might take a similar approach.

I'd suggest you take a look at the open-source code. It should at least provide you with a good start:
http://decibel.ni.com/content/docs/DOC-2976

If need LabVIEW programming help, the NI Support Forums might provide some additional guidance: http://forums.ni.com/ni/

On a side note: Are you building a robot programmed with LabVIEW? I work for National Instruments and I'd be interested to find out more about your project. I might be able to help (and even show you some cool stuff).
While I don't think there is any official support for RB-100 board with LabVIEW, it should be possible (and perhaps even simple!).

Awhile back, I saw someone control Robotis Bioloid AX-12 actuators by sending ASCII commands from LabVIEW to the CM-5 controller. I imagine you might take a similar approach.

I'd suggest you take a look at the open-source code. It should at least provide you with a good start:
http://decibel.ni.com/content/docs/DOC-2976

If need LabVIEW programming help, the NI Support Forums might provide some additional guidance: http://forums.ni.com/ni/

On a side note: Are you building a robot programmed with LabVIEW? I work for National Instruments and I'd be interested to find out more about your project. I might be able to help (and even show you some cool stuff).
iEmilie offline
Newbie
Newbie
Posts: 1
Joined: Thu Sep 10, 2009 10:17 pm

Post by ries » Fri Sep 11, 2009 6:26 pm

Post by ries
Fri Sep 11, 2009 6:26 pm

You can call the dll from within labview to create your own project.
There is a "Call Library Function Node" VI.

See:
http://digital.ni.com/public.nsf/allkb/ ... 1E00797C33

Use the .h file supplied with roboard and the roboio.dll.
I can make an example if you have need for it.

Regards,
Ries
You can call the dll from within labview to create your own project.
There is a "Call Library Function Node" VI.

See:
http://digital.ni.com/public.nsf/allkb/ ... 1E00797C33

Use the .h file supplied with roboard and the roboio.dll.
I can make an example if you have need for it.

Regards,
Ries
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Labview and Roboadr

Post by goofylogic98 » Tue Nov 03, 2009 4:27 am

Post by goofylogic98
Tue Nov 03, 2009 4:27 am

Sorry it has taken awhile to get back, I got pulled off to another project.

Here is what I am doing, I am building a small robotic ground vehicle that will be predominetly used for surviellance. It has cameras and audio devices that I have no problem controlling. The Roboard 100 is the brains of the operation. I have been successful in controlling the standard PC conections, USB, Serial, etc on the Roboard however have been unsuccessful in exercising the PWM, I2C, GPIO, etc. I have imported the roboard.dll file into labview and created numerous VI's however they apparently do not work properly. For example, in reading the documentation, an error should be generated in the pwm Set Pulse.vi if the duty value is 0 or the channel value is less than 0 or greater than 31. I get no returned errors, nor do I get any signal on the PWM pins themselves.

I have pretty good experience working with Labview, I am not a C++ programer and have never worked with PWM before this, so am really looking for guidance and help.
Sorry it has taken awhile to get back, I got pulled off to another project.

Here is what I am doing, I am building a small robotic ground vehicle that will be predominetly used for surviellance. It has cameras and audio devices that I have no problem controlling. The Roboard 100 is the brains of the operation. I have been successful in controlling the standard PC conections, USB, Serial, etc on the Roboard however have been unsuccessful in exercising the PWM, I2C, GPIO, etc. I have imported the roboard.dll file into labview and created numerous VI's however they apparently do not work properly. For example, in reading the documentation, an error should be generated in the pwm Set Pulse.vi if the duty value is 0 or the channel value is less than 0 or greater than 31. I get no returned errors, nor do I get any signal on the PWM pins themselves.

I have pretty good experience working with Labview, I am not a C++ programer and have never worked with PWM before this, so am really looking for guidance and help.
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by roboard » Tue Nov 03, 2009 11:03 am

Post by roboard
Tue Nov 03, 2009 11:03 am

Hi goofylogic98,

the below link is the Labview (8.6.1) RoBoIO library, special thanks Mr. Richard van der Wolf from the Netherlands share this for us, you can free to download and use.

http://www.roboard.com/labview/Labview_RoBoIOv15b.zip
Hi goofylogic98,

the below link is the Labview (8.6.1) RoBoIO library, special thanks Mr. Richard van der Wolf from the Netherlands share this for us, you can free to download and use.

http://www.roboard.com/labview/Labview_RoBoIOv15b.zip
roboard offline
Savvy Roboteer
Savvy Roboteer
Posts: 302
Joined: Fri Jul 03, 2009 4:44 am

Error

Post by goofylogic98 » Tue Nov 03, 2009 4:02 pm

Post by goofylogic98
Tue Nov 03, 2009 4:02 pm

I am getting the following error with every VI I try to open:

Error loading "C:\Program Files\National Insturments\LabView 8.6\user.lib\Roboiov15b\roboio.dll". This application has failed to start because the application configuration is incorrect. Reinstalling the application my fix this problem.


Any idea what is causing this?
I am getting the following error with every VI I try to open:

Error loading "C:\Program Files\National Insturments\LabView 8.6\user.lib\Roboiov15b\roboio.dll". This application has failed to start because the application configuration is incorrect. Reinstalling the application my fix this problem.


Any idea what is causing this?
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by ries » Tue Nov 03, 2009 5:10 pm

Post by ries
Tue Nov 03, 2009 5:10 pm

Hi goofylogic98,

I had the same problem with the dll v1.5b from roboard.
And I had the VC2005/2008 SP1 runtime redistribution installed on the RB100.
Im not that deep into c programming that I could find out what it was, but it had something to do with the manifest.

I created a .dll installer with ms visual studio and after installing it, it worked for me.

I have included an installer for the labview .dll version so hopefully your problem will be solved after this. Let me know if not.

http://robosavvy.com/Builders/ries/Labview%20RoBoIO%20DLL%20v1.5b%20Installer.zip

I got the same error as you had on another pc and when installing this dll installer the error was gone.
Please close down labview completly and after installing start it up again.

Regards
Ries[url][/url]
Hi goofylogic98,

I had the same problem with the dll v1.5b from roboard.
And I had the VC2005/2008 SP1 runtime redistribution installed on the RB100.
Im not that deep into c programming that I could find out what it was, but it had something to do with the manifest.

I created a .dll installer with ms visual studio and after installing it, it worked for me.

I have included an installer for the labview .dll version so hopefully your problem will be solved after this. Let me know if not.

http://robosavvy.com/Builders/ries/Labview%20RoBoIO%20DLL%20v1.5b%20Installer.zip

I got the same error as you had on another pc and when installing this dll installer the error was gone.
Please close down labview completly and after installing start it up again.

Regards
Ries[url][/url]
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Post by ries » Tue Nov 03, 2009 5:14 pm

Post by ries
Tue Nov 03, 2009 5:14 pm

Hi goofylogic98,

my thought on your post of 3 nov:

The error that the roboio.dll is generating is put into an errmsg buffer.
With the vi roboio_GetErrMsg.vi you can get the error/warning generated.

greetings,
Ries
Hi goofylogic98,

my thought on your post of 3 nov:

The error that the roboio.dll is generating is put into an errmsg buffer.
With the vi roboio_GetErrMsg.vi you can get the error/warning generated.

greetings,
Ries
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Post by goofylogic98 » Tue Nov 03, 2009 6:52 pm

Post by goofylogic98
Tue Nov 03, 2009 6:52 pm

Using the Get Err msg.vi, I am getting I/O library fails to initialize. Any help?
Using the Get Err msg.vi, I am getting I/O library fails to initialize. Any help?
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by ries » Tue Nov 03, 2009 8:28 pm

Post by ries
Tue Nov 03, 2009 8:28 pm

do you use the vi on the RB-100 or on your pc?
If you use it on your pc you get it because you can't use the dll since it can't initialize the I/O lib while it's not there.

On your RB-100 it should work, at least on my RB-100.

I use application builder to build executables on my pc and via the network connection i put the executable in a share folder on my RB-100.
Via remote desktop sharing I execute the application.

click on this link to get the init rcservo.zip; the same as in roborc.exe.
http://robosavvy.com/Builders/ries/init%20rcservo.zip

Regards,
Ries
do you use the vi on the RB-100 or on your pc?
If you use it on your pc you get it because you can't use the dll since it can't initialize the I/O lib while it's not there.

On your RB-100 it should work, at least on my RB-100.

I use application builder to build executables on my pc and via the network connection i put the executable in a share folder on my RB-100.
Via remote desktop sharing I execute the application.

click on this link to get the init rcservo.zip; the same as in roborc.exe.
http://robosavvy.com/Builders/ries/init%20rcservo.zip

Regards,
Ries
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Post by goofylogic98 » Tue Nov 03, 2009 8:49 pm

Post by goofylogic98
Tue Nov 03, 2009 8:49 pm

I am building the VI's on a different system, creating an executable, porting over to the RB-100. I get the same message using your program as well.

I will not guarentee you that I have things on the Roboard set up correctly. I am beginning to think that something in the setup on RB is not correct.

I am runing Windows XP on RB-100, I have installed VC 2005/2008 sp1. Is there anything else I need to do to set this up, either in the bios or other settings?

I do not have a Kondo KRS-788 servo, I have a simple 6v PWM servos used for motor control and steering.
I am building the VI's on a different system, creating an executable, porting over to the RB-100. I get the same message using your program as well.

I will not guarentee you that I have things on the Roboard set up correctly. I am beginning to think that something in the setup on RB is not correct.

I am runing Windows XP on RB-100, I have installed VC 2005/2008 sp1. Is there anything else I need to do to set this up, either in the bios or other settings?

I do not have a Kondo KRS-788 servo, I have a simple 6v PWM servos used for motor control and steering.
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by ries » Tue Nov 03, 2009 9:10 pm

Post by ries
Tue Nov 03, 2009 9:10 pm

- did you check the manual on the topic of the bios regarding the pull down?
- is winio.dll and .sys in the same folder as the dll?
- use the setting RCSERVO_SERVO_DEFAULT_NOFB as the servomodel in the vi, 24 noservo's and channel = FFFFFFFF.

the I/O lib initialisation has nothing to do with the kind of servo you are using.

Regards,
Ries
- did you check the manual on the topic of the bios regarding the pull down?
- is winio.dll and .sys in the same folder as the dll?
- use the setting RCSERVO_SERVO_DEFAULT_NOFB as the servomodel in the vi, 24 noservo's and channel = FFFFFFFF.

the I/O lib initialisation has nothing to do with the kind of servo you are using.

Regards,
Ries
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Post by goofylogic98 » Tue Nov 03, 2009 9:33 pm

Post by goofylogic98
Tue Nov 03, 2009 9:33 pm

Yes, I have the winio.dll and .sys files in the same folder as the roboio.dll file, which is the directory it installed when I ran the installation program I downloaded from here.

I have tried running it with the nofb option still get that the I/O labrary did not initialize.
Yes, I have the winio.dll and .sys files in the same folder as the roboio.dll file, which is the directory it installed when I ran the installation program I downloaded from here.

I have tried running it with the nofb option still get that the I/O labrary did not initialize.
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by goofylogic98 » Tue Nov 03, 2009 10:51 pm

Post by goofylogic98
Tue Nov 03, 2009 10:51 pm

OK, I now have the initialization error gone away. My question now is much more simple and not necessarily related to labview.

The servo I am using has a center value of a pulse width of 1500us. Any value between 1500 and 1700us makes the servo spin one way (the higher the value the faster the spin) and a value between 1300 and 1500us makes it spin the other. What I am not sure of is how does a pulse width of 1500us translate into period and duty values.

Also from a programming standpoint, once I figure out the period/duty thing, I can set the count to 1 and put it in a loop to run until stopped.
OK, I now have the initialization error gone away. My question now is much more simple and not necessarily related to labview.

The servo I am using has a center value of a pulse width of 1500us. Any value between 1500 and 1700us makes the servo spin one way (the higher the value the faster the spin) and a value between 1300 and 1500us makes it spin the other. What I am not sure of is how does a pulse width of 1500us translate into period and duty values.

Also from a programming standpoint, once I figure out the period/duty thing, I can set the count to 1 and put it in a loop to run until stopped.
goofylogic98 offline
Robot Builder
Robot Builder
Posts: 12
Joined: Thu Aug 20, 2009 10:39 pm

Post by ries » Tue Nov 03, 2009 11:07 pm

Post by ries
Tue Nov 03, 2009 11:07 pm

I put the winio.dll and sys in the same folder as my application I build with labview, evenso with the roboio.dll. All in the same folder as the .exe.

here is a website that maybe explains for you how the servo works (if that's your question):
http://www.societyofrobots.com/actuators_servos.shtml

for moving the servo use a slider and set the scale limits to 1300 and 1700.
After the init of the servo's use rcservo enter play mode and rcservo move to. Make an array of 24 unsigned integers and replace index 1 of that array with your slider. set FPS to 500 and place the move to vi and the slider in a while loop. Dont forget to close the rcservo lib otherwise it stays open.
When using the slider your servo will move.
I put the winio.dll and sys in the same folder as my application I build with labview, evenso with the roboio.dll. All in the same folder as the .exe.

here is a website that maybe explains for you how the servo works (if that's your question):
http://www.societyofrobots.com/actuators_servos.shtml

for moving the servo use a slider and set the scale limits to 1300 and 1700.
After the init of the servo's use rcservo enter play mode and rcservo move to. Make an array of 24 unsigned integers and replace index 1 of that array with your slider. set FPS to 500 and place the move to vi and the slider in a while loop. Dont forget to close the rcservo lib otherwise it stays open.
When using the slider your servo will move.
ries offline
Savvy Roboteer
Savvy Roboteer
Posts: 62
Joined: Sun Dec 16, 2007 11:33 am
Location: Netherlands

Next
Next
22 postsPage 1 of 21, 2
22 postsPage 1 of 21, 2