voxl_cam_ros cannot read image from tracking camera



  • Hi,

    I was trying to use the voxl_cam_ros to read the image out of the tracking camera but we can't get any image data being published on the ros image topic. This situation happens to the other cameras onboard as well. Here is voxl_cam_ros node output looks like when I was trying to run $ roslaunch voxl_cam_ros tracking.launch:
    673d1047-5c56-4be9-bb5c-02cf82411f97-image.png

    I set up the voxl camera with

    $ adb shell voxl-configure-cameras 3
    

    I also tried

    $ voxl-inspect-cam --test tracking
    

    and here is the output:
    0cb2d1ec-215a-476a-a18f-58a0ccfa3592-image.png

    I connected the tracking camera to the other board and the image of streaming correctly. So I think the camera itself should be good. Is it possible the camera connection port on the board broke or something didn't set up correctly at the software side?

    Any tips are appreciated.

    Thanks
    Rui


  • Dev Team

    Hi Rui,

    voxl-cam-ros is a completely separate pipeline from voxl-camera-server. If you want to use voxl-cam-ros, you need to disable the volx-camera-server (you can use voxl-inspect-services to check).

    voxl-cam-ros reads the camera ID from the launch file, so voxl-configure-cameras does not work for it.

    In order to test images coming out of voxl-cam-ros, you should use ROS tools like.. rostopic, etc.

    A quick test on VOXL would be:

    rostopic hz <image-topic-name>
    

    If you wanted to view the image from voxl on another machine, you could try running something like this:

    export ROS_MASTER_URI=https://<voxl-ip-address>:11311
    export ROS_IP=<desktop-pc-ip-address>
    source /opt/ros/<ros-version>/setup.bash
    rosrun image_view image_view image:=/tracking/image_raw _image_transport:=compressed
    

    (double check topic name)



  • Hi Alex,

    Thanks for your kind reply!
    After disabling the voxl-camera-server, the voxl_cam_ros can access the tracking camera and the hires camera now. I can check the image on my station.

    However for the stereo cameras, there is an error in the output:
    297a9f54-c9f7-4e6f-ba05-be829577c47b-image.png

    Any advices are appreciated! Thank you!

    Best,
    Rui


  • Dev Team

    I think you need to set the param is_cam_master to true, meaning that this instance of the camera driver is the is going to access the camera directly. If cam master is set to false, it allows a second client to connect to the camera that is already open (in a slave mode). You don't need the master/slave if you are using ROS, since ROS can already do the "fanout" of the images using ROS pub/sub.



  • Hi Alex,

    Sorry for the late reply! I was busy this two days. Unfortunately it still doesn't work if I set the is_cam_master to true. Here is the error output:
    078dd881-8c48-415e-ab98-9b50c9549f86-image.png

    Here is my launch file:
    c1d37d9d-6ada-4da7-a65b-2625a3ce224a-image.png

    Here is my camera environment setup:
    88da8494-e292-41ce-a8b1-87d4777f9931-image.png

    I also disable other services that might use the cameras:
    c2a917d1-a8dc-43fd-93e8-8a0db25b5014-image.png

    Thanks for your help!!

    Best,
    Rui


  • Dev Team

    I think it should work. Please make sure that stereo works either using voxl-camera-server or voxl-rtsp (https://gitlab.com/voxl-public/utilities/voxl-rtsp or install via opkg install voxl-rtsp) (voxl-rtsp needs to have voxl-camera-server disabled). Maybe there is some issue with stereo hardware. Nodelets are sometimes a pain to debug..

    Another quick way to check if all ov7251 cameras have been detected.. dmesg | grep ov7251 should show three ov7251 probe succeeded messages (one tracking, two in stereo module).



  • It seems that the sterero cameras cannot be detected by the board based on the given messages. I double check the connection and they all look correct.

    Here is the output of dmesg | grep ov7251:
    0fc807c7-6d1c-458b-a698-d72d09bdd99a-image.png

    Here is the output of the voxl-rtsp:
    4e054263-f18e-4185-b101-df236e028b37-image.png


  • Dev Team

    You are correct, neither of the two cameras in the stereo pair is detected. Can you please double check that you have the cameras plugged in correctly? See https://www.modalai.com/collections/accessories/products/stereo-camera-pair-and-flex-cable-kit-mkit-00009 and Stereo is only supported in J3 camera connector (next to J2, where your hi-res camera is probably connected). https://docs.modalai.com/voxl-flight-datasheet-connectors/#voxl-flight-board-top , the stereo flex needs to plug into J3 so that the cameras are going out forward from VOXL, not towards the board.



  • Yes the stereo camera goes into the J3 port with the stereo flex goes out from the voxl board


  • Dev Team

    Can you try to plug in hires camera into J3 instead of J2 (disconnect stereo completely). Hires camera should work either in J2 or J3. You can check if hires camera has been detected using ‘dmesg | grep imx214’. This would confirm at least the J3 port is functional. Then plug hires camera back into J2, which is default configuration.



  • I connect the hires to the J3 and here is the output message, it seems fine:
    e5bce98d-0ef0-4846-8c19-55786f43c5ef-image.png

    I also tried connect the hires camera back to the J2 and run the same command "dmesg | grep imx214" and it has the same message output. Then I checked the hires camera on voxl_cam_ros and it output the image fine.

    So I guess the J3 port works fine?

    Best
    Rui


  • Dev Team

    Yes, it seems J3 is fine. First the board tried to find imx214 on J2 (which fails in this case), then successfully on J3.

    Has this stereo module worked before? Please inspect the stereo flex cable and connector on it for any damage. If you dont mind please post a good close-up picture of the flex cable with two cameras plugged in, with connector (which goes into voxl) facing up, so that contacts can be seen.



  • This post is deleted!


  • HI Alex,

    Sorry for the late reply again. I was busy yesterday. Here are the pins' photos:
    J3 Port
    Stereo Flex J1
    Stereo Flex J2
    Stereo Flex J3
    Stereo Left Camera
    Stereo Right Camera

    It seems to me that the pins are fine.
    One interesting thing to report is that one camera in the stereo actually can be detected by the command "dmesg | grep ov 7251" after we reconnect all the cables again. However, the other one still cannot be detectd. The message is shown as following:
    4ac83272-6b06-435d-a9ea-0513a425186c-image.png


  • Dev Team

    Interesting. The flex cables look good. I wonder if the multiple creases in the camera cables caused a break in the camera cable (not the Y splitter flex). If you switch left and right cameras, does the undetected camera switch places? From earlier post, it seems that previously neither of the two stereo cameras were detected.. inconsistent behavior may be a sign of a mechanical issue, like a cable break which changes with flexing of the cable itself.



  • I think I found the issue. If I connect the cameras to the left of flex, they can be detected by the board. However, it doesn't work for the right side of flex. I notice a small circle on the flex cable which probably damage the connection inside as shown in the following image. Is it possible to get a new flex cable from your team?

    Best,
    Rui
    IMG-2571.jpg


  • Dev Team

    Oh yes, this would absolutely cause a problem. Glad you found it.

    You can find just the stereo flex cables here : https://www.modalai.com/collections/accessories/products/voxl-replacement-stereo-flex-cable


Log in to reply