Hi Soo-Hyun,


On Mon, Aug 16, 2010 at 4:32 PM, Soo-Hyun Yoo <yoos117@gmail.com> wrote:
Hi John,

We used ODE in our non-ROS code by having the following in our Makefile: "-I ${ODE_PATH}include/ -l ode -L ${ODE_PATH}drawstuff/src/.libs/ -l drawstuff".

It may or may not be helpful for you to know that robot_sim.h has "#include <drawstuff/drawstuff.h>" explicitly stated. Is this correct usage? To remove Make's complaint that it could not find the header file, I copied drawstuff.h and version.h to /path/to/opende/opende/include/drawstuff. Is this what you meant by "installing them into the ros install directories (opende/opende/*)" ?

yes, installing includes under opende/opende/include/drawstuff and libdrawstuff.* under opende/opende/lib
 

Sorry, I missed one more flag,  --disable-demos should be replaced by --enable-demos in order for drawstuff library to be built.  It seems the two error logs you've sent are both failing at finding the drawstuff library, the above change should fix it (but again, you'll have to trigger a re-configure in opende by make clean or equivalent).

I flipped that flag to --enable-demos as you described and saw that libdrawstuff.la was built in build/opende_1730_patched_with_damping/drawstuff/src/. However, even after a full recompilation of opende, Make complains: "/usr/bin/ld: cannot find -ldrawstuff". I have attached the output log.

Also, the output of /path/to/opende/opende/bin/ode-config is the following:

-I/home/yoos/devel/ros/stacks/physics_ode/opende/opende/include -DdDOUBLE
-Wl,-rpath,/home/yoos/devel/ros/stacks/physics_ode/opende/opende/lib -L/home/yoos/devel/ros/stacks/physics_ode/opende/opende/lib -lode

Shouldn't -ldrawstuff be in there somewhere?

you're right, ode-config needs additional modifications for this to work without the above exporting step.  Alternatively, you could use the flags exported by rospack (e.g. rospack cflags-only-I opende, etc.) if you've made the modifications to the opende manifest.xml as I suggested in the earlier email.
 

Also I would like to note that drawstuff is considered to be part of ODE demo and not part of the dynamics engine library, so it's not officially exported into the ODE installation directories.  If it's extremely useful, we can consider exporting the c++ flags or simply installing them into the ros install directories (opende/opende/*) by default as well.  Please ticket me on it.

I apologize for my lack of insight into our code, but I do not know what drawstuff is actually used for in robot_sim, as I did not write it. I will, however, look into it, and if it seems useful enough, submit a ticket.

great!  I'll wait to add these changes.
 

As Brian mentioned, there's no plans to customize builds for  3rd party packages under ROS for now.   Would it be sufficient to make ODE compile with double precision by default?  I've been meaning to switch it over as the gains at keeping things float on most modern computers are less significant.  As for drawstuff, if its a dependency of atrias_sim, I can enable the demos build by default as well.  Please see changes in r31755.  If there are no objections, the changes should be included in the next physics_ode release.

It would indeed be nice if double precision and the demos were enabled by default---thank you!

changes in trunk awaiting release.

thanks.
John
 

Soo-Hyun Yoo

_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users