03-16-2011 04:46 AM
Hi
I was assigned to create a simple robot to test and gather information about LabVIEW Robotics and his potential. I have experience with LabVIEW 8.5 and one month of intensive documentation about robotic (paradigms, architectures...). It´s not much, I know.
Problem: No hardware specifications... it has to be created for a general Compact RIO system... I dont know if that´s even possible. I dont have access to any real hardware for now, so testing the real thing it´s dismissed.
I found lots of documents in this site about LV Robotics, but for all I read... it seems that there is no way to create something "general", you must know the exact hardware specifications. What about the windows-platform type in the Robotics Wizard?
Another question: I´m confused abot how it should work the communication between my program and the hardware... I mean, there are some examples where the communication is based in read/write modules in the fpga integrated in the hard (the Lidar Guided Robot example. In those cases... I need to program myself the FPGA and the Compact RIO modules to communicate manually the motors, wheels, etc, with my Labview simple rogram? or the hardware wizard does the hard work?
Im aware those are silly doubts... but I feel like working blindfolded. I just need some explanation or documentation...
By the way, I finished the main VI for my project with the example´s help, but I dont know if it works. I started with a Windows Platform Project because it looked more simple... my problems are IN and OUTputs and understanding how communicate the VI with the hard.
03-16-2011 09:19 AM
Are you doing this as part of a FIRST program? If so I suggest you download their code base. They do most of the work for you in terms of the communications. Also, if you are doing this for a team competing in FIRST either use a dedicated machine or use a VM to run their LabVIEW enviroment. Their install will mess with your installation of LabVIEW (change pallets, move stuff, etc.) and it isn't easy to undo the changes. Isolate this environment and you will be fine.
With respect testing this without knowing the hardware I would suggest that you create either action engines or LVOOP classes for your various devices. For example, create a action engine for all of your motor control. This creates an API you can use to program. Part of the action engine is the initialization and hardware assigments for your drive system. When debugging without the hardware you could set your initialization to use a simulated hardware environment. Create a simple simulator that would allow you to set the necessary values and give you feedback about what your code is doing. Most of your logic can be tested this way. When you get the hardware do the appropriate hardware assigments and run in a "real" mode, not your simulated mode.
03-16-2011 10:36 AM
@Mark Yedinak wrote:
Are you doing this as part of a FIRST program?
Sounds like the poster is asking about the LabVIEW Robotics products, not FIRST.
03-16-2011 04:52 PM
...my problems are IN and OUTputs and understanding how communicate the VI with the hard.
Can you elaborate on what you mean? It sounds like there is hardware you want to communicate with.
What exactly does your main VI do and what aspects of it are you trying to test?
Cheers,
Karl
03-23-2011 06:47 AM
Im working with LabView Robotics module, not FIRST.
Are you doing this as part of a FIRST program? If so I suggest you download their code base. They do most of the work for you in terms of the communications. Also, if you are doing this for a team competing in FIRST either use a dedicated machine or use a VM to run their LabVIEW enviroment. Their install will mess with your installation of LabVIEW (change pallets, move stuff, etc.) and it isn't easy to undo the changes. Isolate this environment and you will be fine.
With respect testing this without knowing the hardware I would suggest that you create either action engines or LVOOP classes for your various devices. For example, create a action engine for all of your motor control. This creates an API you can use to program. Part of the action engine is the initialization and hardware assigments for your drive system. When debugging without the hardware you could set your initialization to use a simulated hardware environment. Create a simple simulator that would allow you to set the necessary values and give you feedback about what your code is doing. Most of your logic can be tested this way. When you get the hardware do the appropriate hardware assigments and run in a "real" mode, not your simulated mode.
I dont understand what are you talking about Im afraid thats way beyond my level... maybe that´s specific for FIRST? Thank you for the answer, anyway.
Can you elaborate on what you mean? It sounds like there is hardware you want to communicate with.
What exactly does your main VI do and what aspects of it are you trying to test?
Well, in teory it´s a simple robot, four wheels, one hokuyo lidar, he roams harmlessly to the largest gap in his vision field (with the lidar). it´s only the start for a bigger project.
I managed to elaborate the simple logic with the Robotics examples, but my problem is the robot itself... I mean: If for example I create a Single Board RIO project, select all my hardware with the Wizard, and then I had my project ready to start:
1.- The FPGA has to be programmed as a VI? That´s something a student without experience in it can do or its much more complicated?
2.- How I communicate the VI who controls de robot with the actual hardware? Using the FPGA ports that you programmed? I found some examples that let the motor control to the fpga...
3.- I need to initialize all the hardware? only the hokuyo? the motor/wheels too? I found some examples that initialize the motor for the wheels, others only creates the wheels and frames but not initialize their motors!
I read all the documentation I found, examples, etc, but I lack of experience in robotics (the real field AND the LV module) and I have those basic doubts about the "structure"...
By the way, I attached my actual project in a zip. Sorry for the spanish comments, but it´s pertty simple.
PD. For now, I created the robot project based on a Windows-Platform with the Robotics Wizard, because I dont know the exact hardwaer yet)
03-28-2011 02:32 PM
Hi Xandro,
@Xandro wrote:
I managed to elaborate the simple logic with the Robotics examples, but my problem is the robot itself... I mean: If for example I create a Single Board RIO project, select all my hardware with the Wizard, and then I had my project ready to start:
1.- The FPGA has to be programmed as a VI? That´s something a student without experience in it can do or its much more complicated?
2.- How I communicate the VI who controls de robot with the actual hardware? Using the FPGA ports that you programmed? I found some examples that let the motor control to the fpga...
3.- I need to initialize all the hardware? only the hokuyo? the motor/wheels too? I found some examples that initialize the motor for the wheels, others only creates the wheels and frames but not initialize their motors!
1. There are some concepts that a programmer should be aware of when programming an FPGA that makes it a little bit more complicated. The LabVIEW help topics on the FPGA Module and the FPGA Interface should be a good place to start.
2.Are you looking to eventually use a cRIO or sbRIO as your controller? If so, you'll need to use teh FPGA read/write nodes to communicate with the sensors connected to the controller.
3. Whenever programming in LabVIEW, it's always recommended to follow the paradigm of initialize/create/open » read/write » close. So, yes, you need to initialize all hardware that you are using. This will open references to the different components of your system and you can pass values to them. It might seem some examples don't initialize the motors and that's because they are only showing how you can set up a frame. You'll need to set up some additional code to have the output from the frame be converted to a command to the motors.
It seems the main issue your having right now is that you dont' have any hardware to deploy your code to. Are you expecting to use a cRIO in the future? Or are you using something else as your controller?
Based on your questions, it sounds like you're looking for a way to similulate your robot before you have any hardware to communicate with. The problem with your current project is that it is looking for a real lidar to communicate with. Since you don't have any hardware, Karl's suggestion to use an Action Engine or LVOOP is a good way around this. With an Action Engine or LVOOP you can simulate the kind of data you could be receiving from your lidar or you can simulate the reaction of the motors from your input command.
Cheers,
Olivia