[ros-users] [freebsd] "rostopic echo /tf" does not work?

Rene Ladan rene at freebsd.org
Thu Dec 2 15:04:49 UTC 2010


Op 02-12-2010 04:26, Ken Conley schreef:
> Hi Rene,
> 
> On Wed, Dec 1, 2010 at 3:29 PM, Rene Ladan <rene at freebsd.org> wrote:
>> Note that I install everything except the "build" directories, but for
>> tf there are only files under CMakeFiles. Is there some convention in
>> Python for importing C/C++ modules?
> 
> Your setup is different enough that I don't know what's at issue. To
> answer your question, Python will search the sys.path for the .so
> files.  Our 'load_manifest' logic adds package/src and package/lib to
> this path.  It does not modify the underlying path.
> 
I might have figured out the problem, it is probably in the underlying
lapack library:

% python
Python 2.6.6 (r266:84292, Sep 13 2010, 13:38:55)
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd9
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['',
'/usr/local/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg',
'/usr/local/lib/python2.6/site-packages/logilab_astng-0.20.1-py2.6.egg',
'/usr/local/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg',
'/usr/local/lib/python2.6/site-packages/python_dateutil-1.5-py2.6.egg',
'/usr/local/lib/python2.6/site-packages/pytz-2010o-py2.6.egg',
'/usr/local/ros/ros/core/roslib/src', '/usr/local
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <- ok
...
>>> import roslib
>>> roslib.load_manifest('tf')
>>> print sys.path
['/usr/local/ros/stacks/geometry/tf/src',
'/usr/local/ros/stacks/geometry/tf/lib',  <-- so _tf.so can be found in
tf/lib, ok

...
>>> import _tf
(ok, no error message from Python)
>>> import tf
added tf to path (from a local print added to
geometry/tf/src/tf/listener.py)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/ros/stacks/geometry/tf/src/tf/__init__.py", line 29,
in <module>
    from listener import TransformListener, TransformerROS
  File "/usr/local/ros/stacks/geometry/tf/src/tf/listener.py", line 35,
in <module>
    from tf import transformations
  File "/usr/local/ros/stacks/geometry/tf/src/tf/transformations.py",
line 174, in <module>
    import numpy
  File "/usr/local/lib/python2.6/site-packages/numpy/__init__.py", line
136, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.6/site-packages/numpy/add_newdocs.py",
line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.6/site-packages/numpy/lib/__init__.py",
line 13, in <module>
    from polynomial import *
  File "/usr/local/lib/python2.6/site-packages/numpy/lib/polynomial.py",
line 17, in <module>
    from numpy.linalg import eigvals, lstsq
  File
"/usr/local/lib/python2.6/site-packages/numpy/linalg/__init__.py", line
48, in <module>
    from linalg import *
  File "/usr/local/lib/python2.6/site-packages/numpy/linalg/linalg.py",
line 23, in <module>
    from numpy.linalg import lapack_lite
ImportError: /usr/local/lib/liblapack.so.4: Undefined symbol "spotrs_"
(broken package)
>>>

This works fine in a Python session (load _rxtoolscpp.so):
acer % python
Python 2.6.6 (r266:84292, Sep 13 2010, 13:38:55)
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd9
Type "help", "copyright", "credits" or "license" for more information.
>>> import roslib
>>> roslib.load_manifest('rxtools')
>>> import _rxtoolscpp
>>>

So all I can do is wait for the lapack library to be fixed again, the
problem is not related to my ROS port.

Regards,
Rene
-- 
http://www.rene-ladan.nl/

GPG fingerprint = ADBC ECCD EB5F A6B4 549F  600D 8C9E 647A E564 2BFC
(subkeys.pgp.net)



More information about the ros-users mailing list