code-iai / pico_flexx_driver

ROS driver for the pmd CamBoard pico flexx
GNU General Public License v3.0
50 stars 43 forks source link

"no cameras connected!" issue on the NVIDIA Jetson TX2 (aarch64) #17

Closed TheRobotStudio closed 6 years ago

TheRobotStudio commented 6 years ago

I have a problem on the NVIDIA Jetson TX2, using Ubuntu 16.04 with the Pico Flexx. The udev rule is in place, the symlink file is created after I plug the device: lrwxrwxrwx 1 root root 15 May 8 15:58 camboard_pico_flexx-2-1.3.4 -> bus/usb/002/007

But when I launch the roslaunch command it says that no camera is connected:

$ roslaunch pico_flexx_driver pico_flexx_driver.launch publish_tf:=true
... logging to /home/nvidia/.ros/log/0c95084c-52c8-11e8-982d-00044b8c3cdc/roslaunch-bibot-TX2-4461.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://bibot-TX2:33328/

SUMMARY
========

PARAMETERS
 * /pico_flexx_driver/automatic_exposure: True
 * /pico_flexx_driver/base_name: pico_flexx
 * /pico_flexx_driver/base_name_tf: pico_flexx
 * /pico_flexx_driver/exposure_time: 1000
 * /pico_flexx_driver/max_noise: 0.07
 * /pico_flexx_driver/queue_size: 5
 * /pico_flexx_driver/range_factor: 2.0
 * /pico_flexx_driver/sensor: 
 * /pico_flexx_driver/use_case: 0
 * /rosdistro: kinetic
 * /rosversion: 1.12.7

NODES
  /
    pico_flexx (nodelet/nodelet)
    pico_flexx_driver (nodelet/nodelet)
    pico_flexx_static_tf (tf/static_transform_publisher)

auto-starting new master
process[master]: started with pid [4473]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 0c95084c-52c8-11e8-982d-00044b8c3cdc
process[rosout-1]: started with pid [4486]
started core service [/rosout]
process[pico_flexx_static_tf-2]: started with pid [4503]
process[pico_flexx-3]: started with pid [4504]
process[pico_flexx_driver-4]: started with pid [4515]
[ INFO] [1525787980.810347765]: Loading nodelet /pico_flexx_driver of type pico_flexx_driver/pico_flexx_nodelet to manager pico_flexx with the following remappings:
[ INFO] [1525787980.817312560]: waitForService: Service [/pico_flexx/load_nodelet] has not been advertised, waiting...
[ INFO] [1525787980.859820783]: Initializing nodelet with 6 worker threads.
[ INFO] [1525787980.885964036]: waitForService: Service [/pico_flexx/load_nodelet] is now available.
[ INFO] [1525787981.193314154]: [PicoFlexx::initialize] parameter:
                 base_name: pico_flexx
                    sensor: default
                  use_case: 0
        automatic_exposure: true
automatic_exposure_stream2: true
             exposure_time: 1000
     exposure_time_stream2: 1000
                 max_noise: 0.07 meters
              range_factor: 2
                queue_size: 5
              base_name_tf: pico_flexx
[ INFO] [1525787981.193541993]: [PicoFlexx::initialize] libroyale version: 3.16.0.51
[ERROR] [1525787981.266719973]: [PicoFlexx::selectCamera] no cameras connected!

Anybody has the same issue or got it working on the TX2 (aarch64) ? Thanks!

mintar commented 6 years ago

Hmm, I see that you've already discovered the other people who had problems on a Tegra board in #16 . I don't really have anything to add to that.

There were problems on ARM with older versions of libroyale, but they have been fixed in 3.15, and you're using 3.16, so it should be fine (see . I've tested the same version that you are using (3.16.0.51) myself on 32-bit ARM (armv7l), but not on 64-bit ARM (aarch64).

In libroyale 3.15, the following text was added to the libroyale README:

Royale supports the following operating systems: [...]

  • Linux ARM (32Bit version tested on Raspbian GNU/Linux 8 (jessie) Raspberry Pi reference 2016-03-18; 64Bit version tested on the Odroid C2 with Ubuntu Mate 16.04 ARM 64)

So in theory it should work now. Since I don't have an NVIDIA Jetson TX2 board, I can't really help you other than suggesting the obvious stuff - make sure that your cable is okay, there is no defective contact on the camera (does it work on an x86 PC?), it's plugged into the USB 3 port and not the USB 2 port etc.

mintar commented 6 years ago

Closing due to inactivity. Feel free to reopen if you have anything to add.

lwohlhart commented 5 years ago

Hi, just for sake of completeness. I also ran in to the same issue on the Jetson Xavier. In my case ( and I can imagine also in yours @TheRobotStudio ) the issue was that the user nvidia is not part of the plugdev group, which is used in the udev rules.

Fixed it by adding the user to the plugdev user group. sudo usermod -a -G plugdev nvidia followed by a restart

p.s.: you can check if your user is part of the group with the command: groups

@mintar maybe this hint ( checking if your user is in the group ) could even be a valuable addition to the README

mintar commented 5 years ago

Thanks for the update! I think you've found the cause of the problem the other people were having. I've added the info to the README.

lwohlhart commented 5 years ago

cool, thx for considering it. hope this helps