[ros-users] camera1394 and swissranger

Patrick Beeson beeson.p at gmail.com
Tue Apr 6 14:06:55 UTC 2010


Dejan,

Now that you have the new libmesa drivers installed, try running 
/usr/bin/libMesaSRTester.  Choose Basic test, then 'scan', and it should 
find your device and let you press '2' to choose it and test it.  If it 
doesn't work due to permissions not being set right, you can try running 
it using 'sudo'

If it doesn't find your camera, then I'd suggest manually downloading 
the Beta libmesa .deb from the web and installing that instead of the 
.deb that gets manually installed by my program.  Running 
libMesaSRTester successfully is a prerequisite to having my driver work, 
and will often flash the firmware to get the device in a state to talk 
to the new API.

Also , the install of the libmesa drivers added a udev rule in 
/etc/udev/rules.d/46-mesa.rules.  Unfortunately, Mesa decided to make 
the device have group usb.  You can edit that file to change it to group 
plugdev (then sudo /etc/init.d/udev restart).  Unplug and plug the usb, 
and it should work without having to fiddle with permissions every time.

If all that works, try again.  If you get the same problems with my 
software, read below...........

It looks like for some reason, the sr4k is ignoring the CONF_MAP flag to 
return confidences.  A quick solution you can try is to simply go into 
the header and change SR_IMAGES to 2.  I was going to make this stuff 
into runtime configuration in the future, but of course when I don't 
have an sr3k to work with it makes large development changes problematic.

Perhaps the first change above along with getting a license file (I 
didn't have to do this with the sr4k, but I'm assuming this might be a 
common practice with the sr3k users) might allow this to work?  Please 
try it and let me know if it still is receiving 4 1x1 images.

If so, it might be worth downloading the older 'swissranger' ros node, 
which uses the old libusb driver Mesa which can be found on their 
download site in the drivers archive.  If that works, then I'll have to 
compare the source code between the two nodes -- they are already VERY 
similar.






Dejan Pangercic wrote:
> Hi Patrick,
> I finally got to test the driver with a SR3K device on a 64bit machine
> running Ubuntu 9.10.
> I could not get it pass following structure in dev_sr4k.cpp file:
> "
>  if ( (cols_ != SR_COLS) || (rows_ != SR_ROWS) ||
>        (inr_ < SR_IMAGES) || (imgEntryArray_ == 0) )
>     {
>       SafeCleanup();
>       SR_EXCEPT_ARGS(sr4k::Exception,
>                      "Invalid data images: %d %dx%d images received
> from camera!\n Expected %d %dx%d images.",
>                      inr_, cols_, rows_, SR_IMAGES, SR_COLS, SR_ROWS);
>       return (-1);
>     }
> "
> 
> After running the "roslaunch launch/sr4k.launch" command it outputs
> the following exception:
> "
> [ INFO] [1270556935.964286581]: [SwissRanger device::open] Number of
> images available: 2
> [ERROR] [1270556935.964498968]: Exception thrown while connecting to the camera:
> [SR4K::open]: Invalid data images: 2 176x144 images received from camera!
>  Expected 3 176x144 image
> "
> And after running the command again then this one (funnily this
> behavior then keeps going on this alternative way):
> "
> libMesaSR:libMesaSR:camera config file has no licence Information!
> 
> libMesaSR:libMesaSR:CMesaDevice::Read:usb_bulk_read failed!
> Request:0xb0 RequestType:0x40 Requested Size: 64 Received
> Size(Result): -110
> 
> libMesaSR:libMesaSR:CMesaDevice::Read: did not get requested bytes: 64<->0
> 
> libMesaSR:libMesaSR:CMesaDevice::Read:usb_bulk_read failed!
> Request:0xb0 RequestType:0x40 Requested Size: 64 Received
> Size(Result): -110
> 
> libMesaSR:libMesaSR:CMesaDevice::Read: did not get requested bytes: 64<->0
> 
> libMesaSR:libMesaSR:CMesaDevice::Read:usb_bulk_read failed!
> Request:0xb0 RequestType:0x40 Requested Size: 64 Received
> Size(Result): -110
> 
> libMesaSR:libMesaSR:CMesaDevice::Read: did not get requested bytes: 64<->0
> 
> [ INFO] [1270556651.295522746]: [SwissRanger device::open] Number of
> images available: 4
> [ERROR] [1270556651.295721863]: Exception thrown while connecting to the camera:
> [SR4K::open]: Invalid data images: 4 1x1 images received from camera!
>  Expected 3 176x144 images.
> "
> It looks like "SR_GetImageList" function is not doing what it is supposed to...
> 
> 
> Furthermore I had some problems opening the device node at the
> beginning since on my machine (default ubuntu setting) all the nodes
> in /dev/bus/usb/ are owned by root user and root group. The remedy for
> that was to first find the bus and the device number and second to put
> the node in the plugdev group:   "sudo chown root:plugdev
> /dev/bus/usb/bus_nr/device_nr".
> 
> Lastly, at the first run I got the following warning:
> "
> Please download manually the file
> www.mesa-imaging.ch/customer/calibData/camData00019e13.xml and save it
> to /usr/share/libmesasr/camData00019e13.xml
> libMesaSR:libMesaSR:can not parse camera config file
> '/usr/share/libmesasr/camData00019e13.xml'!
> "
> Following the hint got me rid of the warning.
> 
> Hope this report helps a bit,
> cheers, D.
> 
> On Wed, Mar 31, 2010 at 5:57 PM, Patrick Beeson <beeson.p at gmail.com> wrote:
>> I have added a new sr4k package to the camera_drivers_experimental
>> stack.  This extends the swissranger package in the tum repository to
>> handle the newer Mesa Imaging libraries, and supports both SR3000 and
>> SR4000 devices.
>>
>> I do not have an SR3K device, so I could only test with an SR4K, but the
>> API is the same for both (an early calls tells the Mesa libraries which
>> device you want to talk to and differences are handles at the Mesa
>> library level).
>>
>> I have not yet included a standalone viewer, but users can view the
>> output in rviz.  The current frame id is the node name (defaults to
>> /sr4k).  The user can view Image and PointCloud types.  There are 3 2D
>> images, distance, intensity, and confidence.
>>
>> Patrick Beeson
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
> 
> 
> 



More information about the ros-users mailing list