Skip to content

New Robot: Stereo IMU

Fernando Cladera edited this page Feb 16, 2022 · 3 revisions

Access Cameras

Install Spinnaker SDK: https://www.flir.com/products/spinnaker-sdk/

Detailed installation instructiosn are provided in the README file provided in the directory spinnaker was extracted into. The following provides the necessary commands to install and configure the cameras.

Install dependencies:

sudo apt-get install libavcodec57 libavformat57 \
libswscale4 libswresample2 libavutil55 libusb-1.0-0 libgtkmm-2.4-dev

Install the Spinnaker deb files using the install script install_spinnaker.sh provided in the directory spinnaker was extracted into. This script will install the libraries, example code, example apps, and documentation. It will also add the udev rules, as well as set the USB-FS memory to 1GB (as opposed to the default 16MB on Linux systems):

sudo sh install_spinnaker.sh

In the installation, make sure you select the options to:

  1. Add the udev rules
  2. Add your username to the flirimaging group, otherwise you will not be able to access to cameras.
  3. Allow the installer to automatically set the appropriate USB-FS memory settings.

If you mess up, you can manually fix them, or you can remove spinnaker

sudo sh remove_spinnnaker.sh

And re-install.

After the installation, confirm that the udev rule has been set:

cat /etc/udev/rules.d/40-flir-spinnaker.rules 

Confirm that the memory limit has been updated:

cat /sys/module/usbcore/parameters/usbfs_memory_mb

Confirm that you can access the cameras using spinview:

spinview

Adjust cameras

Adjust the focus of each camera. Place a checkerboard (or any object with corners at the desired distance from the cameras that you would like to focus. Open spinview, and looking at each camera, adjust each lens until the corners of the checkerboard are in focus.

Before Focus:

After Focus:

After you have adjusted the lense to get the desired focus level, lock them down using hot-glue.

TODO: Camera Settings Adjust the white balance by adjusting the Balance Ratio of "Red" and "Blue" channels. The goal is to get white paper to look exactly white in cameras.

  • Test in Docker and ROS

Change the corresponding environmental variables in the emu*.sh file

SYNC_CAM0_SERIAL= [serial of the first camera]
SYNC_CAM1_SERIAL= [serial of the second camera]
SYNC_FRAME_RATE= [desired frame rate]
SYNC_SHUTTER_MS= [desired shutter ms]
SYNC_IMU_PORT= [/dev/serial/by-id/... of the VN-100 IMU]

Assuming [/dev/serial/by-id/...] is the VN-100 device, you need to run the following command to achieve fast Hz on the VN-100:

sudo setserial [/dev/serial/by-id/...] low_latency 

TroubleShooting

If you are not seeing images being published using:

roslaunch drivers_launch cam_imu.launch

But you are seeing images being published using (making sure you specify the correct args):

roslaunch flea3 stereo_node.launch

Open spinview, double click on the offending cameras, and search for the parameter to set the tigger_mode to off. Open up the docker container and try to re-run. The above indicates that there is a problem with the triggering.