First Flight: Intel RealSense D435 Depth Camera on Jetson TX2

 

This is part of a series of posts outlining the evolution of my GroundHog hexacopter into a multi-role UAV.  It is based on a Pixhawk flight controller with a Jetson TX2 companion computer.  It has now been fitted with an Intel RealSense D435 depthcam.

Continue reading “First Flight: Intel RealSense D435 Depth Camera on Jetson TX2”

Advertisements

Intel Realsense D435 on Jetson TX2

JetsonTX2withD435

Here’s a quick technical post for anyone attempting to harness the capabilities of a Realsense D435 camera on a Jetson TX2.  For me, this is about getting usable depth perception on a UAV, but it has proved more problematic than I originally anticipated.

This post aims to provide some simple instructions that now work for me, but took a long time to find out!

The Problem

The Intel librealsense2 library does not support ARM architectures as I write.  This causes a fatal compile error when the file librealsense/src/image.cpp is accessed, as it queries the system architecture.

Solution

Modify image.cpp as in my Github gist here.  This bypasses the architecture check.

Installation Sequence

  • Flash the TX2 with JetPack 3.2
  • git clone https://github.com/IntelRealSense/librealsense.git
  • cd librealsense
  • sudo apt-get update
  • modify librealsense/src/image.cpp as per gist above
  • sudo apt-get install git cmake
  • sudo apt-get install libssl-dev
  • sudo apt-get install libusb-1.0-0-dev pkg-config libgtk-3-dev
  • sudo apt-get install libglfw3-dev
  • sudo apt-get install libudev-dev
  • sudo apt-get install cmake-curses-gui
  • sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
  • sudo udevadm control –reload-rules && udevadm trigger
  • reboot
  • mkdir build && mkdir install
  • cd build
  • cmake ../ -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DBUILD_UNIT_TESTS=false
  • make -j4
  • sudo make install
  • Connect D435 to the USB3 port
  • Navigate to the tools at usr/local/bin, such as:
    • ./realsense-viewer

Issues

I am getting some warnings of incomplete frames, but it’s not clear if this is due to a power issue on the powered hub or a software configuration.  Despite this, the provided tools seem to work well and demonstrates some of the best depth camera capabilities I have seen (and this is my third depth camera to date).

MAAXX Europe 2018 DroneJam Coding MasterClass

DSC_0118

(Nb. All resources for this post can be found on GitHub at https://github.com/mikeisted/maaxxeurope2018)

It’s been a while since my last post.  My research has since moved towards the use of machine learning in UAVs and so my trusty Groundhog now sports a Jetson TX2 instead of a Raspberry Pi and an Intel Realsense depthcam for ‘deep vision’ to match it’s deep learning capabilities.  But I digress… so I’ll blog more on this another time…

This post is about the DroneJam coding masterclass for autonomous UAV ‘newbies’ I ran for this year’s MAAXX Europe autonomous drone competition, held in March at the University of the West of England.

Continue reading “MAAXX Europe 2018 DroneJam Coding MasterClass”

Groundhog Autonomous UAV – Going faster with sunglasses

The Groundhog is being developed to line-follow at low altitude and higher speeds.  This video is of the field testing taking the speed up to 1.75 m/s.  It also explains why the Groundhog now sports sunglasses.

The Track

An oval of 50mm red webbing, bends of radius approx 3m and straights of approx 15m. Testing took place in early morning with glancing sunlight on dew-soaked webbing – great for walking the dog but not so good for computer-vision.

Continue reading “Groundhog Autonomous UAV – Going faster with sunglasses”

Groundhog UAV curved line following

groundhogcurve
Part of a series of videos and blogs tracking the development of The Groundhog, which was entered into the MAAXX Europe 2017 competition earlier this year.
Having successfully tested the re-written code to follow straight lines using velocity vectors for control and NED space mapping for line detection, we test it around a 50m track comprising 50mm wide red webbing – and we speed it up a bit as well.

The test turned out to be quite successful, with following speeds of 1.5m/s achieved under autonomous control provided by an on-board Raspberry Pi 3.  This is significantly faster than the winning UAV in MAAXX Europe this year, which is quite pleasing!

The YouTube video shows both on-board and off-board camera footage, the former demonstrating the roaming regions of interest used by OpenCV to maintain a lock under varying lighting conditions.

Continue reading “Groundhog UAV curved line following”

Post 5. MAAXX Europe. Quaternions, control code and PIDs.

In this last post of the series I shall overview the main program including the control algorithms for the Groundhog.  Code is written in Python, using Dronekit and OpenCV all running on a Raspberry Pi 3.

As we are flying indoors without GPS and also without optical flow, we are using quaternions to control the vehicle in the GUIDED_NOGPS flight mode of ArduCopter.  To be honest, I’ve not come across anyone else doing this before, so it must be a good idea…

Continue reading “Post 5. MAAXX Europe. Quaternions, control code and PIDs.”

Post 4. MAAXX Europe. Connecting the Pi 3 to the Pixhawk

In this short blog series I’m outlining the hardware and software of The Groundhog, my entry into the recent MAAXX-Europe autonomous drone competition held at the University of the West of England, Bristol.

Connecting the Raspberry Pi 3 to the Pixhawk took quite some working out, so I am hoping that by publishing my own step by step checklist, it may help others save a little time. Continue reading “Post 4. MAAXX Europe. Connecting the Pi 3 to the Pixhawk”