GIGE camera on Jetson TX1

I have a BFLY-PGE-12A2M-CS camera. I have connected it via ethernet to the TX1 dev board.
I have am trying to run the ROS node for the pointgrey_camera_driver. I have set the resolution to 640*400 and maxed out the packet delay (by setting the values on the ros node cfg file) and still get a “image consistency error”.

Even when I run the default flycapture examples. I get the image consistency error.

I have followed the https://www.ptgrey.com/tan/10699 as well. I have also enabled jumbo packets by using the

sudo ifconfig eth0 mtu 9000

Any ideas on how to fix it?

One thing to always test first is to be sure none of the power saving type features are on. You can run:

sudo ~ubuntu/jetson_clocks.sh

Plus you can disable autosuspend on the USB. In “/boot/extlinux/extlinux.conf” the kernel parameters are passed on the APPEND key/value pair. At the end of the current line you may want to add this (use a space as the delimiter):

usbcore.autosuspend=-1

Once that is done you can probably get more reliable test results.

I can’t find the jetson_clocks.sh

I am running GIGE cameras, how will setting the usbcore affect tha?

Thanks!

The ethernet controller connects through a USB controller (internally…there could be an indirect effect). It might be that jetson_clocks.sh is only in a newer release. The newest at this time for a TX1 is R24.2.1. What is the output from:

head -n 1 /etc/nv_tegra_release

jetson_clocks.sh.gz (2.77 KB)

R24 (release), REVISION: 2.1, GCID: 8028265, BOARD: t210ref, EABI: aarch64, DATE: Thu Nov 10 03:51:59 UTC 2016

THis is the output

I am able to run the cameras on my PC, in stereo. I have the same ethernet speed of 1gigabit. I increased the UDP and TCP packet size as well. It hasn’t improved anything on the tx1.

I’m trying to attach a gzip compressed jetson_clocks.sh to my previous reply…if this fails I’ll just paste the code in (looks like it worked…look for attachment jetson_clocks.sh.gz in my previous post). But basically it is curious why you would be missing that file…the apply_binaries.sh step should install that. Alternatively, the driver package (produces directory “Linux_for_Tegra/”) has subdirectory “nv_tegra/”, and within that is nv_tools.tbz2. This is a tar.bz2 file containing two files, tegrastats and jetson_clocks.sh (you can extract from that on the driver package as well).

Does this show ok?

sha1sum -c /etc/nv_tegra_release

I could get it running now. I ran the performance.sh script which gets the TX1 at max performance.
But even at this state, I get 7FPS. I have already set the rmem to 33554432 but doesn’t improve it any further.

Any insight would be helpful!

Unfortunately I don’t kow much about camera performance…but with clocks maxed out someone can now answer knowing DVFS is max performance.

In conclusion

To run GIGE cameras

sudo sysctl -w net.core.rmem_max=33554432
sudo sysctl -w net.core.wmem_max=33554432
sudo sysctl -w net.core.rmem_default=33554432
sudo sysctl -w net.core.wmem_default=33554432

Also, set the TX1 to run at max performance.
Thanks @linuxdev !

ashwath: what was the max frame rate you achieved? Still just 7 fps ?

I achieved 40+ FPS finally. I used the ROI settings to narrow the image I wanted from the camera and also reduced the resolution of the image.
This affects the algorithms you use as the image quality is poor but this is one workaround.