Caleb

Forum Replies Created

Viewing 15 posts - 46 through 60 (of 63 total)
  • Author
    Posts
  • in reply to: Quaternion Output Drift #689

    Caleb
    Moderator

    Check out the “Videos” tab on the UM7 product page: http://www.chrobotics.com/shop/um7-orientation-sensor

  • in reply to: TTL to RS232 Converter #680

    Caleb
    Moderator

    Not a problem. 🙂 You can power the Sparkfun board with the 3.3V output from the UM7 to set the logic level. (That was actually the original motive for including a 3.3V output, actually).

    • This reply was modified 2 years, 8 months ago by  Caleb.
    • This reply was modified 2 years, 8 months ago by  Caleb.
  • in reply to: TTL to RS232 Converter #676

    Caleb
    Moderator

    That should probably work. We’ve used this device from Sparkfun with great success:

    https://www.sparkfun.com/products/449

  • in reply to: Latency #672

    Caleb
    Moderator

    Sounds like a fun project! My MS thesis was on quadrotor system ID, state estimation, and control. In fact, the UM7’s predecessor (the UM6) was built specifically for operation on quadcopters.

    We actually haven’t characterized the latency on the UM7, but the sensor itself will introduce very little delay between measurements and the angle estimates – probably something on the order of 3 to 5 milliseconds. You’ll get a little more latency from the serial port. At 115200 baud, for example, it takes ~ 1.8 milliseconds to transmit a 23-byte packet (that’s the size of the Euler Angle state packet). So altogether, it’s safe to assume that there is less than 10 milliseconds of delay between motion and a completed serial transmission.

    If you are receiving the serial data on an OS like Windows or non-real-time Linux, then the OS can add very large and unpredictable delays even after the hardware receives and buffers the serial data. If you are running on a standard OS, try to minimize the number of processes running other than the control loop.

    To improve the performance of your control loop, I’d also turn off transmission of all data that you don’t need – so, maybe leave the health packet turned on at 1 Hz or so, turn everything else off, and crank the Euler Angle transmission rate up to 255 Hz. That’s the fastest automatic broadcast rate supported. The default state broadcast rate is only 20 Hz, and you’ll definitely want something faster than that to control a quadcopter.

  • in reply to: Quaternion Output Drift #660

    Caleb
    Moderator

    If the yaw angle isn’t remaining accurate, it would be caused by one of the following:

    1) The magnetic field is distorted badly enough that the sensor detects it and stops using it,
    2) Mag calibration is bad, or
    3) The magnetic field is distorted, but not in a detectable way and the magnetic field measurements are pulling the yaw estimate off.

  • in reply to: algorithm for "Processed" data #658

    Caleb
    Moderator

    That could be tricky. The process of converting the raw data to processed data involves a floating point matrix multiply and an addition. To do that on a microcontroller, you’d need to pull the floating point calibration terms off the device beforehand, convert them to fixed-point, and implement a fixed-point matrix multiply algorithm on the micro.

  • in reply to: algorithm for "Processed" data #656

    Caleb
    Moderator

    After the magnetometer is calibrated, the processed data should be normalized so that the 3-element mag vector is unit-norm regardless of the orientation. If the processed data is not unit-norm, then it reflects poor calibration or the possible presence of nearby objects distorting the magnetic field.

    Also note that the processed mag data registers (addresses 0x69, 0x6A, and 0x6B) are 32-bit floating-point values, while the raw data is stored as 16-bit integers.

  • in reply to: Negative Heading Values #644

    Caleb
    Moderator

    No, but you can change them by adding 360 degrees to any negative value.

    • This reply was modified 2 years, 9 months ago by  Caleb.
  • in reply to: UM7 Binary Parser Arduino Library #636

    Caleb
    Moderator

    Thanks for sharing! I’m sure that others will appreciate the availability of Arduino support for the UM7.

  • in reply to: Quaternion Output #622

    Caleb
    Moderator

    The Serial Interface data graphs update at 20 Hz even when data is not arriving. If the data it is trying to plot isn’t coming in over the serial port, it will plot whatever it last received. In this case (likely) zeroes, since it didn’t receive anything.

    Make sure that quaternion data is being transmitted in the configuration settings.

  • in reply to: CHR Serial Interface - Configuration broken #621

    Caleb
    Moderator

    Hi Velcrome,

    This is a known issue when lowering the baud rate. If the UM7 is trying to put more data on the bus than can fit given the current baud rate, then it ends up dropping packets. If you are doing a configuration register read, then it can time-out because the response packets are being dropped.

    The workaround is to turn off most or all data transmission before lowering the baud rate, and then gradually increasing what is transmitted to ensure that the bus doesn’t get overwhelmed.

    It is also good to avoid issuing a WRITE_TO_FLASH command until it is verified that the new rate is working properly, so that you can cycle the power to revert the settings if there is a problem.

    If you do get stuck with a swamped bus, you can either issue a RESET_TO_FACTORY command to load the original baud rate, or if that doesn’t work, you can reflash the firmware to restore all default settings.

    To reflash the firmware:

    1) download the most recent version of the firmware from here: http://www.chrobotics.com/shop/um7-orientation-sensor (it’s under the “resources” tab).
    2) With the UM7 powered off, short the BOOT pin to any 3.3V output pin on the UM7
    3) Power the device. The status LED should remain off if the bootloader starts properly.
    4) In the Serial Interface, select the downloaded firmware. Make sure that the serial port baud rate is 115200. Click “program” WITHOUT clicking “connect” first.
    5) Once programming is complete, remove the BOOT to 3.3V short and cycle the power.

  • in reply to: I cannot conect to CHR Serial Interface #620

    Caleb
    Moderator

    A reset to factory should work, although if you don’t ever receive a response, it could be that the baud rate is being changed (the serial interface doesn’t know when the baud rate is being changed, so you’d have to reconect).

  • in reply to: I cannot conect to CHR Serial Interface #614

    Caleb
    Moderator

    The Serial Interface will attempt to send the command 3 times before giving up. If the UM7 is receiving the packet (as evidenced by a behavior change), then somehow the acknowledgement packets are not making it to the serial port. The only condition in which I’ve seen this happen is if the bus is swamped with too much data (because the baud rate was dropped or lots of data transmission is turned on) or if the serial conversion hardware can’t keep up.

    An FTDI board should be able to keep up if it is functioning properly and designed correctly. We can’t vouch for other hardware, but we do know that our serial expansion works well: http://www.chrobotics.com/shop/usb-expansion-board

    • This reply was modified 2 years, 10 months ago by  Caleb.
  • in reply to: I cannot conect to CHR Serial Interface #610

    Caleb
    Moderator

    If you can receive correct data through another terminal program, then the Serial Interface should work without any problems. Have you modified the baud rate or any of the data transmission rates on the sensor?

  • in reply to: I cannot conect to CHR Serial Interface #604

    Caleb
    Moderator

    1) Make sure that the serial settings are correct (port, baud rate, etc.)
    2) Make sure that the UM7 is connected to your computer properly (through a USB to logic-level UART converter, or an RS-232 to logic-level converter). Make sure that whatever level translation device you are using shares a ground with the UM7, and that the UM7’s RX goes to the converter TX pin, and TX to RX.

Viewing 15 posts - 46 through 60 (of 63 total)