Jump to content

andycruce

Members
  • Gesamte Inhalte

    25
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von andycruce

  1. As I understand it, if I set up a coordinates call back method with a call back time less than 100ms it will be automatically called whenever there are new gps data available. Does this mean that all the other gps data other than coordinates is also updated? In the coordinate call back method could I then use the get methods to retrieve things like motion, status, fix, etc and would these have the same time stamp as the coordinate call back results? The alternate would be to have multiple call back methods which would be messy. Andy Cruce
  2. I believe I got the firmware with the SBAS disabled and ran some of my test software again. I used the call back method with the rate set to 100ms and some of the call backs were at the 100 ms rate. A lot weren't. I assume this is because the GPS is stationary and sometimes there isn't a noise error in the gps position from one call back to the next to trigger the call back. Hope to get the gps in the plane sometime this week to check how it operates in the air. In my actual data collection system I am using direct calls to the device to collect the data. Shouldn't be a problem since there isn't much else going on so there isn't an issue with through put. However, it does allow me to synchronize the gps data collection with the IMU and Baro collection. One question I have is when I query the gps how old is the position information that is returned? A 140 mph translates into 205 ft/sec or about 20 ft/100ms. Is the the uncertainty or when I query the gps will I get a position close to the time I actually query the device? Also, how much does the SBAS improve the position accuracy? Andy
  3. Thanks for looking into this. I'll await your reply. Andy Cruce
  4. andycruce

    GPS2 Operation

    I am using a GPS2 in conjunction with an IMU brick and a Baro bricklet to record aerobatic aircraft performance. GPU2 has a specified mimnium update period of 100ms. When I record data it appears that the GPS doesn't update at that rate. When flying at 150 kts there are periods of up to 1 sec where the GPS output doesn't change. I created a test case for only the GPS using both the callback method and the direct access method (getcoordinates). The direct access method is driven by a high accuracy timing system with resolution in the microsecod range. Testing the device in a car moving at about 40 mph I found that if I set the update period to 1,000 ms the system mostly recorded a new position every update. However at a 500ms update there were many updates where the sensed lat long were the same even though the car was traveling at 40 mph. As the update rate was increased the problem got worse. Is there something I should be doing differently? If you want to look into the problem I can share the test software via dropbox. You will have to have access to VS 2015 to run the software. Andy Cruce
  5. The IMU2 Brick is connected to my computer via a usb cable. I have the brick viewer active and am in the Updates/Flashing screen. I selected the Brick tab and in the Serial Port text box the only option is COM1- Communications Port (COM1). In the firmware text box is IMU2.0 (2.0.. Selecting the Refresh button does not add any other selections to the Serial Port text box drop down menu. Selecting the Save button results in the error Could not connect to Brick: No Brick in Bootloader found. In the documentation it looks like for Windows 10 there should be a Serial Port selection of either Bossa Program Port or GPS Camera Detect. Neither of these show up. I still have the IMU2 Brick connected to the Baro bricklet and the GPS2 bricklet. Is this the problem? Andy
  6. I have the wrong firmware version. However when I go into updates/flashing and select brick I only have a COM1-Communications Port(COM!) in the serial port drop down. When I try to save the firmware, version 2.0.8, I get the message "Could not connect to Brick: No Brick in Bootloader Found. I am not using a master brick. Could this be the problem? Andy Cruce
  7. I got the versions incorrect. The Daemon version is 2.3.0.0 and the viewer version is 2.3.9.0. I believe these are the latest versions. Andy Cruce
  8. I have a GPS2 bricklet connected to a master brick. I have downloaded new daemon and viewer software. The daemon software is brickd.exe, version 2.3.9.0.0. The viewer software is brickv.exe, version 2.3.0.0. I start brickd by double clicking on the .exe file. I then start brickv by double clicking on the brickv icon. The view comes up and recognizes the IMU2 and Baro brick and bricklets installed in the system. However, it doesn't recognize the new GPS2 bricklet. What am I missing? Andy Cruce
  9. When do you expect the new GPS bricklet to be available. I would like to order 4 of them as soon as they area available as well as some other hardware as soon as they are available.
  10. I tested the IMU data collection in my airplane today and have a question. I show the calibration level for the Accelerometer, Gyroscope, Magnetometer and System continuously. Prior to flying I did the calibration procedure, moving the device to various positions until I had a lever 3 calibration on all the internal devices. However, once I started flying the Accelerometer and Gyroscope showed a continuous level 3 calibration but the Magnetometer calibration dropped to 1 or 2 and the System calibration dropped to 0. I believe that part of this showed up by the heading euler angle being off by about 30 degrees by the rest of the flight. Am I missing something on how to calibrate the system? Also I notice there is a new firmware version for the IMU. I can't find the documentation on how to load the updated firmware into the device. Would you please point me to the documentation. Finally, what is the status of the new GPS bricklet? Thanks, Andy Cruce
  11. I must be missing something. I checked the URL you listed and the only description of code I found was to subtract gravity from an accelerometer output. The IMU 2 brick does this automatically when it provides linear accelerations. Where did you find any discussion of the complementary filter code?
  12. I have been looking at the code from the github reference that combines the imu and baro data to provide a more accurate and stable altitude estimate. The comments say it is a complementary filter. However, I can't reconcile the code with a complementary filter that consists of a high and low pass filter in parallel. I'd like to be able to contact the person who generated the code to try to understand what he did. Is that possible? Also, I'm still looking for someone who has fused the GPS and IMU sensors to provide more accurate and stable horizontal position information. Thanks, Andy Cruce Andy Cruce
  13. Based on your question about getting covariance values for the GPS errors, it sounds like you are working on a Kalman filter to fuse GPS and IMU data. Is this the case? I am interested in the same thing but need someone to talk to about the actual kalman filter implementation. If you are working on the kalman filter I'd like to converse with you. My email is andycruce@comcast.net.
  14. I am impressed with the video showing the result of fusing the IMU/Baro sensor data to get an accurate/smooth altitude estimate. Is it possible to get the algorithm used in this fusion process? I don't need the code just the filter algorithm. Andy Cruce
  15. Since you changed the connector on the bricklet does that mean that it will no longer be cable compatible with the old master brick? I'm hoping that I can use the existing hardware and cables to interface the GPS bricklet.
  16. What is the status and expected availability of the updated GPS bricklet.
  17. I am trying to develop an aerobatic airplane 6DOF recording system using GPS, IMU and Baro data. I have a basic idea of how Kalman filters work but am having trouble figuring out how to apply the technique to my particular application. I know someone has developed an Baro/IMU sensor fusion algorithm to provide accurate altitude estimations. Is it possible to get a description of how this was done. Also, has anyone developed a Kalman filter to integrate altitude data with IMU and GPS information to provide accurate 3DOF position information. Seems like this is something someone has already done and I'd appreciate any help someone would give.
  18. Does anyone have any experience converting the GPS Lat, Long, Alt to local Tangent plane positions. I want to collect GPS data during aerobatic maneuvers and combine it with IMU data to get an accurate picture of the plane's 6dof positon during the maneuver. Will eventually display the results to the pilot for self training purposes. I am using the following equations: a = equatorial radius = 6378137, e = eccentricity = .08181818 Re = a/squrt(1-e^2sin(lat)^2) Where e^2 = e*e Using these values I calculate the ECEF coordinates: Xe = (Re+h)*cos(lat)*cos(long) Ye = (Re+h)*cos(lat)*cos(long) Ze = (Re*(1-e^2)+h)sin(lat) I use these to calculate a base point for the tangent plane at my current location. Xe0, Ye0, Ze0. Then as I move I calculate the current Xe, Ye and Ze and subtract the two values to get the distance of the current point to the base point, Xedelta. Yedelta, Zedelta. These are in still ECEF coordinates. Once I have done that I transform the "delta" point using an ECEF to Tangent Plane transformation matrix -sin(lat)cos(long) -sin(lat)sin(long) cos(lat) Transform Matrix = -sin(long) cos(long) 0 -cos(lat)cos(long) -cos(lat)sin(long) -sin(lat) The results don't make a lot of sense. After making drive around a circle in out community back to the starting point the x position is -19, the y position is 145 and the z position is -16 in meters. These are all outside the GPS estimated EPE of bout 5m. Does anyone have come code that performs these calculations or has any idea of what I am doing wrong. Thanks for any help, Andy Cruce
  19. Please put me on your email list to notify as soon as the new device becomes available. If there is preorder opportunity to get in line for the device let me know. I assume it is the same form factor as the current GPS so it can be plug and play electrically and mechanically. Thanks, Andy Cruce
  20. Can you tell me when the new GPS bricklet will be available and how it compares with the existing unit. Thanks, Andy Cruce
  21. That did it. Sorry for the confusion. One other question. Do you know of anyone who has implemented a Kalman filter to combine IMU and GPS data? Andy Cruce
  22. You were right. I was using the wrong UID. Was using the one for the master brick as opposed to the IMU. However, when I corrected this I received a timeout. Attached are two screen shots. One is the result of running the program with the correct UID - showing the timeout exception - and the other is a screen shot of the BrickView program. Does the program require a pause after the ipcon.Connect statement to allow the system to connect. I assumed the program wouldn't continue until the ipcom.Connect finished.
  23. Here is the code for the GetQuaternion function which returns the error: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tinkerforge; namespace TinkerForge_Test { class Program { private static string HOST = "localhost"; private static int PORT = 4223; private static string UID = "XXYYZZ"; // Change XXYYZZ to the UID of your IMU Brick 2.0 static void Main(string[] args) { IPConnection ipcon = new IPConnection(); // Create IP connection BrickIMUV2 imu = new BrickIMUV2("62feo2", ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Get current quaternion short w, x, y, z; // z = (short) 5.0; imu.GetQuaternion(out w, out x, out y, out z); string s = "w: {0:F02}, x: {1:F02}, y: {2:F02}, z: {3:F02}"; string f = String.Format(s, w / 16383.0, x / 16383.0, y / 16383.0, z / 16383.0); Console.WriteLine(f); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); } } } Here is the code for the Quaternion Call Back example which doesn't generate an error doesn't seem to access the Call Back functions since nothing is printed on the console. The console stays up until I enter a carriage return and the program seems to exit normally. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tinkerforge; namespace ConsoleApplication1 { class Example { private static string HOST = "localhost"; private static int PORT = 4223; private static string UID = "62feo2"; // Change XXYYZZ to the UID of your IMU Brick 2.0 // Callback function for quaternion callback static void QuaternionCB(BrickIMUV2 sender, short w, short x, short y, short z) { string s = "w: {0:F02}, x: {1:F02}, y: {2:F02}, z: {3:F02}"; string f = String.Format(s, w / 16383.0, x / 16383.0, y / 16383.0, z / 16383.0); Console.WriteLine(f); } static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickIMUV2 imu = new BrickIMUV2(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Register quaternion callback to function QuaternionCB imu.Quaternion += QuaternionCB; // Set period for quaternion callback to 0.1s (100ms) // Note: The quaternion callback is only called every 0.1 seconds // if the quaternion has changed since the last call! imu.SetQuaternionPeriod(100); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); } } } Hope this helps Andy Cruce
  24. I am using an IMU2. The error message in the output window is: System.Notsupportedexception in Tinkerforge.dll The error message in the system routine that catches the exception is: Got Invalid Parameter for function ID8 Thanks for the quick reply - hope this helps.
  25. I am new to C# and can't get any of the examples to work. I have copied both the simple access example and the Quaternion Call Back example. Neither of these work for what appears to be different issues. The simple Quaternion access example generates a NotSupportedException when I execute imu.GetQuaternion(out w, out x, out y, out z) All the code is copied from the TinkerForge example, there are no compile errors. The ipcon is properly initialized and the imu object is properly initialized with the proper UID. I've check the IMU UID on using the BrickView app. I also tried the Quaternion Call Back example. This program also complies and shows no errors during execution. However, it appears the QuaternionCB function is never executed. A breakpoint there is never reached and there nothing is printed. The program gets to the Console.ReadLine statement and will exit if a return is entered. In both cases I am using System and Using Tinkerforge. I got the Tinkerforge dll from NuGet. Programs are being run under VS2015 as a console application. Any Suggestions?
×
×
  • Neu erstellen...