Git Product home page Git Product logo

flea3's Introduction

flea3 (not maintained anymore, use https://github.com/ros-drivers/flir_camera_driver instead)

image

Another ROS driver for Point Grey USB3 camera.

Note:

The driver works with the following cameras:

Flea3

Grasshopper3

Chameleon3

Dependency: camera_base

See the dynamic reconfigure file for all reconfigurable parameters.

Supported hardware

These are the point-grey usb3 cameras that I have and tested with.

CM3-U3-13Y3M-CS

GS3-U3-23S6C-C

FL3-U3-13E4C-C

API Stability

The ROS API of this driver should be considered unstable.

ROS API

single_node is a node for a single flea3 camera.

Published topics

~image_raw (sensor_msgs/Image)

The unprocessed image data.

~camera_info (sensor_msgs/CameraInfo)

Contains the camera calibration (if calibrated).

Parameters

See the dynamic reconfigure file for all reconfigurable parameters.

Usage:

  • single camera
roslaunch flea3 single_node.launch device:=13344889
  • stereo camera
roslaunch flea3 stereo_node.launch left:=13344889 right:=14472242

Note that the stereo_node uses software trigger to synchronize two cameras and the delay is not compensated.

  • Check available cameras
rosrun flea3 flea3_list_cameras

FlyCapture2

FlyCapture2 can be downloaded from here

Documentation

Flea3 Technical Manual

Grasshopper3 Technical Manual

Chameleon3 Technical Manual

Register Reference

Known Issues

Flycapture 2.8.3 issue

Flycapture 2.8.3 generally works, so you can upgrade to it if you are using only 1 camera. The ros driver using Flycapture 2.8.3 does not work well with more than 1 cameras as explained below.

The issue is that when launching the second camera, the Camera.StartCapture() method creates a new thread and never exits, thus blocking the following acquisition. PtGrey is working on a new release to fix this issue.

Flycapture 2.7.3 also generally works, but it has issues with USB3 on Intel chips under Ubuntu system. You can get around with just using USB2 cable, but if you require high fps + high resolution, then you should use Flycapture 2.6.4.

What a mess.

Optimizing USB performance under Linux

Here is an article from matrix-vision on how to optimize USB performance.

Another article from point-grey on how to optimize USB performance.

In /etc/default/grub, change

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

to

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1024"

then do

sudo update-grub

then restart and verify that

cat /sys/module/usbcore/parameters/usbfs_memory_mb

is 1024

Also it is recommended to upgrade your kernel to 3.16 by doing

sudo apt-get install linux-signed-generic-lts-utopic

flea3's People

Contributors

berndpfrommer avatar daphnei avatar jhoare avatar kartikmohta avatar tdinesh avatar versatran01 avatar vilelasagna avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flea3's Issues

Issue after running roslaunch

Got an issue after successfully compiling camera_base and flea3 catkin_ws. FlyCap 2.9.3.43 Running Ubuntu 14.04 ROS Indigo. Any idea with what's going on ?

[pg_14354944-2] process has died [pid 6529, exit code -11, cmd /home/dev-box/catkin_ws/devel/lib/flea3/flea3_single_node __name:=pg_14354944 __log:=/home/dev-box/.ros/log/d9e8303c-1e1a-11e7-95ae-ec086b69f415/pg_14354944-2.log].
log file: /home/dev-box/.ros/log/d9e8303c-1e1a-11e7-95ae-ec086b69f415/pg_14354944-2*.log

Error when install this package on Raspberry Pi Jessie

Hello,

May I know this package can be install on raspberry pi Jessie or not? Because when I catkin_make under my catkin_ws, it come out with some errors.


No such file or directory
#include "flycapture/FlyCapture2.h"

How to solve this problem?

Chameleon3 camera is not detected as a color camera

I'm using a new Chameleon3 color camera, but am unable to view color streams because camera_info_.isColorCamera is evaluating false (flea3_camera.cpp, line 221). I was unable to find where this was being set besides in the CameraInfo constructor.

Forcing the evaluation to true makes the color stream appear as expected.

cmake not prioritising user installation of FlyCapture2

Hello Chao,

After our yesterday's chat, I delved a little deeper into FindFlyCapture2.cmake.
I saw that there should be a priority to the user installation of the library, which in fact you include inside the files of this repo.

However, each time I compile, I get the message

-- flycapture include dir found: /usr/include
-- flycapture library dir found: /usr/lib/

probably because I had already an active installation of PtGrey's SDK in my system.

I tried enforcing the local path by using the NO_DEFAULT_PATH option in the find_path and find_library commands, but it didn't seem to do anything.

In the end, I commented out all the conditional code and set the paths manually to local, e.g.

set(FlyCapture2_INCLUDE_DIR ${FlyCapture2_CHECK_INCLUDE_DIRS})

It's not a function-breaking bug, but it doesn't allow you to NOT use the system libraries for this package.

Looking forward to hearing what you think of this.

Unable to find executable

Hi,

I install flea3 via catkin_make with camera_base. I can't run any launch file. It seems the system has trouble to find flea3's executable lib, like flea3_single_node. i try
rosrun flea3 flea3_list_cameras
got
[rosrun] Couldn't find executable named flea3_list_cameras below /home/coman/catkin_ws/src/flea3
i can successfully run the other package under catkin_ws dir.
my ros version is indigo and os is ubuntu 14.04.

many thanks.

EDIT: false alert... it found after rebuild. please close it.

cannot build

i run catkin_make and have this error

Linking CXX executable /home/hgr/catkin_ws/devel/lib/flea3/flea3_async_trigger
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `VTT for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::_Ios_Openmode)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::runtime_error::runtime_error(std::runtime_error const&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `vtable for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::numpunct<char> const& std::use_facet<std::__cxx11::numpunct<char> >(std::locale const&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::out_of_range::out_of_range(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::logic_error::logic_error(std::logic_error const&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::swap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21'
/home/hgr/catkin_ws/src/flea3/flycapture/lib/libflycapture.so: undefined reference to `std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream()@GLIBCXX_3.4.21'
collect2: error: ld returned 1 exit status

LibUSB linking problem

I'm trying to compile the code, but I'm having the following error:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libflycapture.so: undefined reference to libusb_handle_events_timeout_completed' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libflycapture.so: undefined reference tolibusb_has_capability'_
It seems a linking problem with the library. LibUSB library is installed.
Do you know any solutions for this issue?
Thanks in advance.

Changing problem of image status in RViz

Hi,

I am developing an image processing algorithm using the PointGrey Flea3(Gige Ethernet) camera.
Now, I checked the image_raw topic using "rqt_image_view image:=/image_raw" and 'RViz'.
In rqt_image_view, the image_raw was well but the image_raw was changed to mono image on chess transparent background in RViz (image). I select the same image_raw topic but the result is different. How do I check more?

Consistency problem using two GigE Cameras

Hi, now I want to implement the stereo vision system using GigE flea3 (two cameras).

The single camera is well performed using this package, but the stereo is not working.
I found that the error happened at this point. (flea3_camera.cpp)
bool Flea3Camera::GrabImage(sensor_msgs::Image& image_msg) {
if (!(camera_.IsConnected() && capturing_)) return false;
Image image;
const auto error = camera_.RetrieveBuffer(&image);
if (error != PGRERROR_OK) return false; <- here

Error Trace:
Source: CameraInternal.cpp(135) Built: Mar 30 2017 01:40:55 - There is an image consistency issue with this image.
+-> From: Iso.cpp(1049) Built: Mar 30 2017 01:41:27 - There is an image consistency issue with this image.

For example, flycapture sdk provides some example codes as follows.
In here, there is no problem.

// Get Flea3 camera
Camera *pCameras = new Camera[numCameras]; // Initialize an array of cameras
// Retrieve images from all cameras
for (unsigned int i = 0; i < numCameras; i++)
{
// Retrieve an image
error = pCameras[i].RetrieveBuffer(&rawImage);
...
}

How do I resolve this problem?

Process has died

Hi, thanks for the driver! I am using Ubuntu 16.04 with ROS Kinetic, and the single camera case works. However, for stereo case, the error is [stereo-2] process has died [pid 9105, exit code -11. I am using the latest flycapture sdk, FlyCapture 2.13.3.31 SDK - Linux Ubuntu 16.04 (64-bit). Could anyone provide some advice?

Camera not found when launched with robot_upstart

Hi,

I am developing a robotic function using the PointGrey Chameleon camera, and now I want to open the camera automatically when the computer boots using robot_upstart library (http://docs.ros.org/jade/api/robot_upstart/html/index.html).

However, the camera won't boot, and the error type is PGRERROR_NOT_FOUND, catched in flea3_camera.cpp. I checked udev rule to be MODE="0777", and also tried delay the roslaunch for 10 seconds, but neither worked...

Could you help to give some advice?

Thanks,
Jin

driver is really slow

Recently i installed this driver and i actually find it really great, but i was wondering why the frame rate is so slow. By using two flea3 cameras i get an avg frame rate of 3Hz whereas by using the original pointgrey driver i get around 15Hz. Im still preferring your package, because it is really stable and without dropouts for the cost of time lags up to 2 seconds.. is there any good explanation for that behavior?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.