[ros-users] Enabling double precision and finding libraries in ODE

John Hsu johnhsu at willowgarage.com
Mon Aug 16 21:56:55 UTC 2010


Hi Soo-Hyun,

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).

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.

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.

John


On Mon, Aug 16, 2010 at 11:59 AM, Soo-Hyun Yoo <yoos117 at gmail.com> wrote:

> Brian,
>
> I have installed C Turtle and included the lines John gave in the
> manifest.xml of package "opende," though they did not seem to have any
> effect.
>
> Attached are the build_output.log files for atrias_sim on the first and
> second Make invocations.
>
> Do you think using third-party dependencies will be a dead end in the long
> run? I will soon try using the system installation of ODE instead of the one
> provided by ROS since the system-wide ODE installation currently compiles
> with our non-ROS code.
>
> Soo-Hyun Yoo
>
> On Mon, Aug 16, 2010 at 11:29 AM, Brian Gerkey <gerkey at willowgarage.com>wrote:
>
>> On Sun, Aug 15, 2010 at 5:44 PM, Daniel Stonier <d.stonier at gmail.com>
>> wrote:
>> > On 16 August 2010 09:19, Soo-Hyun Yoo <yoos117 at gmail.com> wrote:
>> >> First, how do I customize how ROS packages are built? ODE builds
>> >> successfully in single precision, but this will be problematic later
>> on. I
>> >> tried uncommenting "--enable-double-precision" in the
>> "Makefile.ode.tarball"
>> >> file in the opende package directory to no effect.
>> >
>> > I'd love a way to customise them too - bit like gentoo with its USE
>> flags.
>> > Not really possible at the moment though. Not sure if they have plans in
>> > that direction either. Anyway, its not a really big problem. I usually
>> > simply fork a package, sometimes even share resources (cmake files)
>> betwen
>> > the packages so I'm not creating redundancies. We did this with opencv
>> at
>> > our company to create an embedded version of opencv without all the gui
>> > components.
>>
>> This is not an area where we've focused much effort, because we'd
>> prefer to get out of the business of downloading, unpacking, and
>> building other people's code.  Standard package managers (apt-get,
>> yum, port, emerge, etc.) do that much better than we ever will.  We
>> strongly prefer to rely on software that can be installed by an OS
>> package manager.  We pull 3rdparty code into the build only as a last
>> resort, often because the version available from the package manager
>> is too old (but "too old" is always up for debate, and I always argue
>> the side of using the older version, even if it's worse, because we
>> don't take on a maintenance burden).
>>
>> >> Third, I should mention that I am new to CMake and suspect that my
>> >> CMakeLists.txt is incorrect. I get make errors the first time I build
>> >> atrias_sim but they disappear on the second build. This makes me
>> suspect
>> >> that I am incorrectly specifying the libraries for the atrias_sim
>> >> executable. Could someone more experienced with CMake please verify
>> this?
>> >
>> > You are building a library and an executable. CMake and RoS are probably
>> > using parallel jobs in which case it tries to build the library and the
>> > exeuctable at the same time. However on the first run, the library will
>> take
>> > longer and so when the executable tries to link, it can't find the
>> library.
>> > Note that you won't be seeing this problem if your ROS_PARALLEL_JOBS is
>> set
>> > to 1.
>> > To fix it, simply add the following line to your cmake and it will make
>> sure
>> > it will delay building the executable until after the library has been
>> > built.
>> > add_dependencies(robot_sim ${PROJECT_NAME})
>>
>> Hmm, that shouldn't fix anything.  In the following lines from the
>> CMakeLists.txt, the call to target_link_libraries() causes the
>> executable to depend on the library:
>>
>>  rosbuild_add_library(${PROJECT_NAME} ${SIM_LIB})
>>  rosbuild_add_executable(robot_sim src/robot_sim.cpp)
>>  target_link_libraries(robot_sim ${PROJECT_NAME})
>>
>> There shouldn't be any missing dependencies. Can you post the build
>> errors that you see on the first 'make' invocation?
>>
>>        brian.
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100816/680ab032/attachment-0003.html>


More information about the ros-users mailing list