Aupicam

From Rsewiki

Raspberry PI camera

This plugin uses the android driver for Raspberry Pi camera.

To compile the 'userland-master' driver must be installed - as described on the installation page (Install on raspberry)

Use

The plugin has possibility to set camera parameters (shutter, white ballance, exposure metering and gain) along with image size (up to 2048 x 2048) at framerates up to 30.

CPU load is 10% at 30 fps and image size of 1024 x 512.

The driver can generate a pyramid of images with halved resolution - using the graphics processor.

camera plugin configuration

  silent=1                   (rw) show less messages to console
  updCnt=0                   (r) Number of updates
  framerate=2 0              (rw) [desired, measured] (frames/sec)
  resolution=512 1024        (rw) resolution (height x width) max 2048x2048
  pyramidLevels=4            (rw) number of halfed image size levels
  shutter=0 0                (rw) 0 is auto, else in usec
  gain=0 0                   (rw) ISO (analog) 0:auto, gain from ~50 to ~2000
  exposeMode=1 1             (rw) exposure mode 0:off, 1:auto, 2:night, 4:backlight,
                             5:spotlight, 6:sport, 7:snow,
                             8:beach,10:noshake,11:fireworks
  meter=1 1                  (rw) exposure meter 0:avg, 1: spot, 2: backlit. 3: matrix
  white=1 1                  (rw) White ballance 0:off, 1:auto, 2:sun, 3:cloud,
                             4:shade, 5: tungsten, 6:flurorescent, 7:incandecent,
                             8:flash, 9:horizon
  camDeviceNum=13            (r/w) index to camera info (and image number)
  open=1 1                   (rw) [0]: set to 0 to close set to 1 to open, [1]:
                             0:isclosed 1:isopen
  time=1431868466.6728       (r) Time at last update
  imageLogN=0                (rw) log images (color and depth) every Nth imageset (0 =
                             close log)

All configuration settings has two values, first is desired, second is reported by camera.

Recording

Images can be recorded at about 5 images per second size (1024 x 512) - format is YUV420 (raw camera format). The saved images is in BMP-format, but the image itself is still YUV420, so it looks werd in a BMP viewer.

The recorded images can be replayed using the camera pool utility.

ucamserver.ini file

Possible camera configuration. Focal length is not measured.

# camera server scriptfile
server imagepath="."
server datapath="."
server replayPath="log"
module load=var
module load=odopose
module load=mappose
module load=utmpose
module load=augps.so.0
module load=mapbase.so.0
module load=aupoly.so.0
# camera parameters
camset device=13 focallength=715
camset device=13 posX=0.04 posy=0.0 posZ=0.3 rotPhi=0.1
#
module load=aupicam.so.0
var picam.resolution="1024 512"
var picam.framerate=3
var picam.pyramidLevels=4
picam open
var picam.white=7
var picam.imagelogn=1

Replay

In a replay directory make a subdirectory called log/rawimg. Copy all images to this directory.

Move the picamImage.log to the log/ directory and rename it to image.log

ucamserver.ini for replay

Set the replay path to log, as shown here

server imagepath="."
server datapath="."
server replayPath="log"
module load=var
module load=odopose
module load=aupoly.so.0
# camera parameters
camset device=13 focallength=715
camset device=13 posX=0.04 posy=0.0 posZ=0.3 rotPhi=0.1
camset replay
camset step

You may add the pyramide image creation as on the Raspberry:

poolpush img=13 cmd="poolget img=13 toimg=14 scale=0.5"
poolpush img=14 cmd="poolget img=14 toimg=15 scale=0.5"