raspberry pi (3)

With the introduction of motorized zoom lenses, the next logical step was matching the sensor board. Sure there are countless suitable sensors from various manufacturers like Sony semiconductors, Onsemi, Aptina, and many more. But lack of good support from the SOC side suggested starting from IMX477. It is a reasonably modern 12M image sensor used by many single-board computers like Raspberry Pi, NVIDIA Jetson, and others.

Raspberry Pi locks cameras with a security chip and prohibits non-authorized cameras with standard boards. Luckily this security feature is not used by compute modules. Motorized lenses have dedicated, and in most cases, unique direct mount features. So a custom camera module is a must, thus introducing the IMX477 MIPI CSI2 camera board.

This is the first of a few upcoming camera modules. Note multiple mounting features – this allows single-board use with many lenses.

Features of the lens kit:

  • Lens optical train – 3 stepper motors for Zoom, Focus and compensate lens groups
  • Iris
  • Two optical filters: IR CUT and NIR
  • Reference optical train elements
  • Runs on GRBL firmware ported on STM32 CPU with four axis motion planner

Using the camera with Raspberry Pi compute module

There is a great resource about the IMX477 camera on Raspberry Pi pages, feel free to learn how to control and use it from Raspberry Pi. Below is a simple recipe for streaming real-time video from RPI to a computer.

Run on computer first

gst-launch-1.0 udpsrc port=5004 ! "application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)JPEG,a-framerate=(string)40.000000,a-framesize=(string)1280-720,payload=(int)26" ! rtpjpegdepay ! decodebin ! autovideosink

Run on RPI as a second step

# Install librariessudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev# Start streamerraspivid -t 0 -cd MJPEG -awb greyworld -mm average -w 2028 -h 1520 -fps 30 -b 132000000 -o - | gst-launch-1.0 fdsrc ! "image/jpeg,framerate=30/1" ! jpegparse ! rtpjpegpay ! udpsink host=<COMPUTER_IP> port=5004

Control the lens

The SCE2-SDK control software can be forked from GitHub. Python code allows code reuse on many operating systems and keeps it human-readable, thus open for customizations.

pip install -r requirements.txt
  • Run demo with command
python main.py

Results

And finally, demonstration video cycling through a few presets and changing filters.

Links

Read more…

DIY - Open Board Architecture for Linux - OBAL

Obal3D.png

 

 

This board is one of many Linux-Based boards that run Ardupilot. What is spepcial about this board is that has very simple architecture. Only necessary components has been added. No extra or redundant components. However it is still expandable and more sensors can be added if you want to.

The PCB shield is designed to use simple breakouts available in the market. No special soldering skills or components are required. You can build from scratch your own board using this PCB and learn the basic architrecture of Ardupilot boards and move to next step where you add extra sensors and ending by building your own board.

Yes this board acts more like a developing kit rather than a ready-to-fly board. Again if you want to fly with it you can but then do not use pin headers and solder the breakouts directly on the board.

On the software side. OBAL board does not have special drivers. All you need to do is to clone ardupilot repository and compile the code. Nothing special, nohting hidden , completely open source.

 

 

 

For more information please check Ardupilot Documentation. Also there are some videos that describe in details how to build it, compile and deploy the software. Have fun :)

 

 

 

 

Read more…

Stereoscopic systems widely used in drone navigation, but this project is using a new approach - variable baseline.

In the related Arxiv.org (PDF) the team showcases three different applications of this system for quadrotor navigation:

  • flying through a forest
  • flying through an unknown shaped/location static/dynamic gap
  • accurate 3D pose detection of an independently moving object

They show that their variable baseline system is accurate and robust in all three scenarios.

For the video capture, the Raspberry Pi-based StereoPi board was used. Additional AI-acceleration hardware (Intel Movidus) is considered as a next step, as well as using a more powerful CM4-based version of the StereoPi (v2).

Here is the brief video of the project:

 

Read more…