Asked
— Edited
I am making a plugin to use the XV-11 LIDAR with the GetSurreal 1.2 controller in EZ-Builder, but I am having an issue on step 6.5 of the plugin tutorial. I tried creating the stub plugin and going to my plugins, but I get a 404 error.
Just letting you know. Let me know if there is anything I can do to get the XML file that is required.
Thanks
David
Once this part is done, I will send you the code. I would love for you to take a look at it and either make suggestions or changes as you see fit. This is my first attempt at a plugin and want to get it right. I want to make plugins for all of the subsystems in Rafiki and use ARC as the interface. I have code that works outside of ARC that I will be converting into plugins so getting the first one right will be of great benefit.
Thanks for the offer. I'll send you what I have when the configuration is working correctly.
XV-11-WithIntensity.zip
Please take a look.
The parts that I think I am out of compliance on are
Avoid Length GUI Thread Processing - Initially create a variable array of 360 Items. This locks ARC until it completes.
Timers
I don't use any timers yet. It is basically a continuously running loop when data is being received from the LIDAR.
Exception Handling
The major errors are caught. There are some with data sometimes, which are ignored and the plugin moves onto the next piece of data. Also, any errors that need to be caught are showing up in the form of messageboxes. I need to convert these to use the log.
Code:
How come there are so many Thread.Sleep() calls? That is causing the performance troubles.
I see the following areas things that need to be addressed or at least looked at.
The parsing of the LIDAR data isn't the best. There is probably a more eloquent way to do this.
The graphic could be done differently I am sure. I just have no idea of what to do on it.
It would probably be best to build an array from the data that is being returned from the LIDAR and pass that between the map generation piece and the piece that updates the $LIDAR variable array.
I do have to say that I ran the plugin outside of the debugger just now and it is pretty quick. It doesn't seem to be interfering with the other controls that I have in this project. This is a good thing. When running through the 2015 debugger, I didn't like the speed that things were happening. I am much happier now:)
Instead of connecting the lidar to a pc how feasible might it be to use an arduino as an interface to the EZ-B .... such a plan might help those who want the lidar to be mounted on a computer.
Sorry if this is a dumb question but I am not even able to test this plugin with my lider as I am in Canada and my lidar is in Australia .... but I think that this would really make the plugin (and the surreal lidar) hugely useful.
A big thanks for all the work gone into this and I can't wait to get back to try out all the work that has been done so far.
Cheers
Chris
DJ is getting one of these to mess with. He may have some way to make this happen. I would think that if you setup the LIDAR to refresh no more than every few seconds, maybe it would be okay with the current version.
The GetSurreal controller is a Teensy (arduino based) controller. You might be able to intercept the output from the Teensy to the comport and patch it into the EZ-B, but I haven't tried.
I always use onboard computers because I have multiple cameras and other devices that I want to have very fast communication paths without affecting other things that are using the communication path for the V4. It is just the way that I do things, and the code has been published if anyone wants to modify it.
The neopixel control I just put out also is designed to be connected to directly from a PC and not through the V4. This is going to be a part of my Rafiki project in ARC and I want to keep this communication path as open so that the user can modify the robot however they see fit with as little interference from me as possible. Because of this, I have even moved my neopixel (very small bandwidth usage) to the usb ports on the onboard computer.
This code is also shared, so if someone wants to modify it to be used with the EZ-B, they can. Right now, it is more designed for someone to manually set the Neopixel to specific modes. I haven't created the Script interface for it yet. It is going to be a pain to do because of the numerous options that have to be set. The GUI has been made to allow someone to manually run a NeoPixel through a COM port. These two were released with the code because I either used something that someone posted on this forum or there was nothing like it available yet. My hope is that someone will take the LIDAR code and go crazy with it. I really don't have the time to do this right now. It works but could be improved upon.
Thanks for making this great plugin !
I'm having the same issue as @RobotDoc in that the program can create the variables and start/start the lidar but the variables receive no data
I tried the quick test using the Arduino IDE on the Surreal site and the lidar work fine and retuned distance values on the same PC
I'm wondering if the issue might be that I'm using Windows 10 and the instructions for your plugin say to use the Teensy Serial Driver but Windows 10 wont let me load it... see below
Is it possible that your plugin won't work with the Windows 10 driver?
Regards,
Frank
If you google your hardware and windows 10, maybe you'll find a driver?
I don't know anything about the hardware - so I can't say much else
That is correct. Like DJ said, the issue not inside the plugin but the driver to communicate with the GetSurreal device. Windows10 there has opted to us it's own driver and is telling you basically "Ptttt, I'm using my own drive thank you and good bye."
Getting your driver to load is what we need to help you resolve, if we can.
Thanks for the feedback. I checked with Surreal, the maker of the Teensyduino interface board and they are saying the Windows 10 USB driver should work as it worked with their test program
I tried Device Manager to remove the built in Windows 10 USB driver, but it wont let me do that... only drivers added by the user
Has anyone else been able to get this plugin working with Windows 10?
Thanks,
Frank
I can confirm you don't need the Teensy driver it should work with the original windows 10.
I've used two different setups:
1) Lidar connected to Teensy and Teensy connected to the EZ-B camera Port.
2) Lidar connected to serial/usb and a ROS node.
I never used the David's plugin.
Currently i have setup #2 and i still need to finish some adjustment for the ROS navigation stack, after that i can flash the getsurreal firmware, and try to replicate your setup and test David's plugin.
I don't want to extrapolate more without proper debugging, let's wait for David's feedback and/or other Plugin's users.