FLIR ADK Getting Started
Hide thumbs Also See for ADK:

Advertisement

Quick Links

FLI R
AD K
G e t t i n g S t a r t e d
Getting Started guide for the FLIR ADK with USB, GMSL, and Ethernet Connector Options
FLIR Systems OEM & Emerging
6769 Hollister Avenue
Goleta, CA 93117
Phone: +1.805.964.9797
www.flir.com
Document Number: 102-2013-105
Version: 140
Issue Date: June 2020
The information contained herein does not contain technology as
defined by EAR,15 CFR772, is publicly available, and therefore
not subject to EAR.
1

Advertisement

Table of Contents
loading

Summary of Contents for FLIR ADK

  • Page 1 FLI R AD K G e t t i n g S t a r t e d Getting Started guide for the FLIR ADK with USB, GMSL, and Ethernet Connector Options FLIR Systems OEM & Emerging 6769 Hollister Avenue Goleta, CA 93117 Phone: +1.805.964.9797...
  • Page 2: Table Of Contents

    Connect and power the USB ADK ......................4 FLIR Boson GUI ..............................5 External Sync ................................. 7 Ethernet – Getting Started............................7 Connecting the Boson ethernet ADK to the computer..............7 Ubuntu Installation............................8 3.2.1 Robot Operating System ........................9 Windows Installation ............................
  • Page 3: Introduction

    FLI R AD K G e t t i n g S t a r t e d ADK Video Processing Pipeline ....................... 22 USB latency ................................24 GMSL latency ..............................24 Ethernet latency ............................... 24 Intrinsic Camera Calibration..........................25 Building a Calibration Target ........................
  • Page 4: Scope

    (shown below) to power the heater. The heater is protected against reverse polarity so it’s technically ok to hook it up in reverse, it will just pull a little more power. The USB ADK ships with a MUZU-P25 pigtail. Connect the green lead of the provided cable to positive and...
  • Page 5: Flir Boson Gui

    Port selection dropdown in the lower right corner of the BosonGUI software. To start video streaming select “FLIR Video” from the “Device Select” drop down menu on the left of the screen.
  • Page 6 FLI R AD K G e t t i n g S t a r t e d Once connected, click the “Do FFC” button on the right of the screen. The camera should click and the image should blink. This will confirm you have control of the camera and are streaming video.
  • Page 7: External Sync

    Figure 1: The FLIR ADK GMSL option is shown on the left with the GMSL 1 to Ethernet bridge shown on the right. The Ethernet Bridge (also known and the Break Out Box o r BoB) is a GeniCam GigE Vision device.
  • Page 8: Ubuntu Installation

    An optional AC power supply that will run the camera and shutter but not the heater is available at: https://www.flir.com/products/12v-power-supply-with-6-pin-hr10-connector/ Table 1: Pin out of the GPIO pins on the Ethernet breakout box. The Colors correspond to the GPIO cable that came with the ADK. Color Function Description...
  • Page 9: Robot Operating System

    3.2.1 Robot Operating System We have an example project that uses the Ethernet ADK in the ROS framework present here. https://github.com/flir/flir_adk_ethernet Once the Boson is setup to run with Linux then follow the instructions in the Readme.md to get the Boson to work with ROS.
  • Page 10: Windows Installation

    G e t t i n g S t a r t e d 3.3 Windows Installation Download and install the Windows version of the Spinnaker SDK here. https://www.flir.com/products/spinnaker-sdk/ The Spinnaker SDK also comes with a software application called SpinView which will display real time images from the Boson Camera.
  • Page 11: Finding Node Names, Types And Enumeration Values

    FLI R AD K G e t t i n g S t a r t e d 3.4.2 Finding Node Names, Types and Enumeration Values The above example is good, but how do you know there is a node named “BosonRunFfc”. There are two ways to look these up.
  • Page 12: Gmsl - Getting Started

    GMSL 1 can be field upgraded to GMSL 2. In this document we provide examples of how to collect data from the GMSL ADK as well as read and write I2C commands to the ADK. We have a driver for the Nvidia Drive system and we show an example of using the Maxim MAX9296A_CSI_EVKIT to control the ADK.
  • Page 13 G e t t i n g S t a r t e d add an external power supply. Please contact your platform manufacturer for those instructions. FLIR has a recommended power injection circuit you can use to power the ADK without modifying your compute platform using the following components from CoilCraft. Inductors...
  • Page 14: Nvidia Drive Systems

    If the NVIDIA system is setup for GMSL 2 the ADK will have to be field upgraded to GMSL 2 for our driver to work. To field upgrade the ADK to GMSL 2 see section 4.3. If you know before hand that your system will require GMSL 2 cameras it is possible to order the ADK configured for GMSL 2.
  • Page 15: Upgrading The Gmsl Serializer To Gmsl 2

    4.3 Upgrading the GMSL Serializer to GMSL 2 The FLIR ADKs are by shipped in either GMSL1 or GMSL 2 mode. The GMSL 1 cameras have the trailing part number AA1 or AAX and GMSL 2 cameras have the trailing part number AA2.
  • Page 16: Sending Commands To The Adk Over I2C

    Currently the Boson camera core of the ADK will only communicate via UART. The GMSL adapter board in the ADK has an i2C to UART FIFO transceiver that will allow you to send byte array commands to the Boson. In practice, the I2C to UART buffer limits the amount of data you can send to the Boson at any one time to 128 bytes.
  • Page 17: Sample I2C Functions For Teensy Soc

    Turn Heater OFF – the heater is off by default Set GPIO state register on ADK side to configure heater off write val 0x01 to reg 0x19 to device reg 0xD8 Configure heater GPIO as an OUTPUT (step can be skipped if already done this power cycle)
  • Page 18 FLI R AD K G e t t i n g S t a r t e d byte i2cread(byte addy, byte reg) byte err; byte = 0; Wire.beginTransmission(addy); Wire.write(reg); = Wire.endTransmission(); (err != 0) { I2Cerror = 1; Wire.requestFrom((int) addy, (int) 1, false); while (Wire.available()) { // slave may send less than requested...
  • Page 19 FLI R AD K G e t t i n g S t a r t e d i2cwrite(transAdd, 0x00, commandBytes[i]); // write byte to fifo buffer register on transceiver (debug_messages) { DEBUG.print("Message queued: 0x"); DEBUG.print(checkTXbuffer(), HEX); DEBUG.print("\n"); DEBUG.print("\nCommand Sent\n\n"); i2cwrite(transAdd, 0x09, 0x00);...
  • Page 20: Data Format And Boson Settings For Gmsl 1

    The Boson can be synchronized using the GPIO pins on the serializer and deserializer. For the MAX9295A serializer used on the ADK, one must correctly set MFP7 pin for D12 disabled. This includes doing a register write of 0x07 to register 0x0007 (It is originally set to 0xF7).
  • Page 21: Adk Latency

    In the case of the ADK, the nominal Thermal time constant is 8msec. This means that if the incoming radiation changed by a certain amount, it would take 8msec for the pixel to change (1-e-1) or 63.2% of the difference between its value prior to the change and its...
  • Page 22: Progressive Video Output

    Figure 5. ADK Rolling Shutter 5.3 ADK Video Processing Pipeline There is some latency in the FLIR ADK video pipeline. The camera reads the focal plane array (FPA), processes the image, and sends it to a parallel CMOS output. The personality board, providing either GMSL or USB output, is connected to the CMOS output.
  • Page 23 FLI R AD K G e t t i n g S t a r t e d Table 4: Timing of a frame from the ADK with average ON. Time (ms) Event Notes Sync Pulse frame 2 Internal or External...
  • Page 24: Usb Latency

    Figure 4Output 30Hz – averager ON 5.4 USB latency The delay added by USB is not deterministic. The delays can change based on the topology and utilization of the USB network. These parameters are outside the FLIR’s control and are not modeled. 5.5 GMSL latency GMSL transmission time is negligible compared to the internal imaging pipeline.
  • Page 25: Intrinsic Camera Calibration

    When planning the size of your target there are a few things to keep in mind: 1) ADK cameras have their focus set at infinity. This means the target needs to be several feet from the camera to be in focus.
  • Page 26: Running Opencv Algorithm

    This function expects a white boarder around the chessboard. However, when imaged with the ADK, hotter is brighter and colder in darker. When illuminated with the light, the black squares absorb more radiation and heat up. So the dark squares in the visible image end up being the white squares in the thermal image and visa versa.
  • Page 27 FLI R AD K G e t t i n g S t a r t e d mono_img = img.astype(numpy.uint8) return mono_img else: return self.br.imgmsg_to_cv2(msg, "mono8") mono8a = self.br.imgmsg_to_cv2(msg, “mono8) mono8b = numpy.array(255 - mono8a, dtype=numpy.uint8) return mono8b 2) When calling findChessboardCorners, only use the adaptive threshold flag. def _get_corners(img, board, refine = True, checkerboard_flags=0): """...

Table of Contents