[ros-users] failure building camera_drivers/trunk/camera1394 with latest release (updated today)

Jack O'Quin jack.oquin at gmail.com
Fri May 14 04:05:46 UTC 2010

On Thu, May 13, 2010 at 10:15 PM, Blaise Gassend
<blaise at willowgarage.com> wrote:
> In theory there were no API changes, but it looks like something broke
> in the new .cfg dependency generation.
> {{{
> blaise at bnl: ~/ros.karmic/mypkgs/camera_drivers/camera1394 $ rosrun
> dynamic_reconfigure gendeps cfg/Camera1394.cfg
> Finding dependencies for cfg/Camera1394.cfg
> ***********************************************************************************
> load_module did not return. Unable to determine dependencies for file
> listed above.
> ***********************************************************************************
> Traceback (most recent call last):
>  File
> "/u/blaise/ros.karmic/mypkgs/driver_common/dynamic_reconfigure/cmake/gendeps", line 61, in <module>
>    imp.load_module("__main__", f, srcfile, ('.cfg', 'U', 1))
>  File "cfg/Camera1394.cfg", line 40, in <module>
>    from dynamic_reconfigure.msg import SensorLevels
> ImportError: No module named msg
> }}}
> That error message seems to be sucked in by cmake as a list of
> dependencies, and I have created #4092 to track the problem.
> In terms of fixing your problem, I would suggest using the SensorLevels
> from driver_base. I intend to deprecate the ones in dynamic_reconfigure.
> I'm not sure why this is breaking and have created #4093 to remind
> myself to figure it out.

Thanks, Blaise, that does seem to work around the build problem.

I had previously used the SensorLevels in driver_base, before I
discovered the one in dynamic_reconfigure and realized I could
eliminate the driver_base dependency. Obviously, it should only be in
one place. But, I am not sure why you want to deprecate the
SensorLevels in dynamic_reconfigure, since driver_base depends on it,
not the other way around.

The extra dependency does not matter much for camera1394. We may want
to actually use driver_base in a future version, anyway.

But, I like to avoid unnecessary dependencies, and this change seems
to force all dynamic reconfigure users to either depend on driver_base
or just make up their own level bits.

Is that the idea? Levels are arbitrary and only meaningful to the
using package? I didn't understand that when I was figuring out
dynamic_reconfigure to begin with.

More information about the ros-users mailing list