orocos_toolchain_ros(diamondback): typegen issue

Hi,

I switched to diamondback from the cturtle branch today.
Everything went well up to now except for the typegen.

---------------
demo@totoro:~/ros/stacks/demoLocal$ typegen -o kuka_typekit
kuka_typekit lwr_fri/include/friComm.h -t mqueue
WARN: /FRI_CTRL cannot be marshalled in the MQueue transport
WARN: /FRI_QUALITY cannot be marshalled in the MQueue transport
WARN: /FRI_STATE cannot be marshalled in the MQueue transport
WARN: /std/string cannot be marshalled in the MQueue transport
demo@totoro:~/ros/stacks/demoLocal$ cd kuka_typekit/
demo@totoro:~/ros/stacks/demoLocal/kuka_typekit$ rosmake
[ rosmake ] No package specified. Building ['kuka_typekit']
[ rosmake ] Packages requested are: ['kuka_typekit']
[ rosmake ] Logging to
directory/home/demo/.ros/rosmake/rosmake_output-20110407-100932
[ rosmake ] Expanded args ['kuka_typekit'] to:
['kuka_typekit']
[ rosmake ] Checking rosdeps compliance for packages kuka_typekit.
This may take a few seconds.
[ rosmake ] rosdep check passed all system dependencies in packages
[rosmake-0] Starting >>> rtt [ make ]
[rosmake-0] Finished <<< rtt [PASS] [ 1.02 seconds ]
[rosmake-0] Starting >>> kuka_typekit [ make ]
[ rosmake ] All 32 linesuka_typekit: 0.9 sec ]

[ 1 Active 1/2 Complete ]
{-------------------------------------------------------------------------------
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find
rosbuild`/rostoolchain.cmake -DCMAKE_PREFIX_PATH=`rospack find
rtt`/install/lib/cmake/orocos-rtt ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test ,
-- Performing Test , - Failed
-- checking for module 'orocos-rtt-gnulinux>=1.99.4'
-- package 'orocos-rtt-gnulinux>=1.99.4' not found
CMake Error at /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:259 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:311
(_pkg_check_modules_internal)
CMakeLists.txt:41 (pkg_check_modules)

[rosbuild] Building package kuka_typekit
[rosbuild] Cached build flags older than manifests; calling rospack
to get flags
[rosbuild] Including
/opt/ros/diamondback/stacks/ros_comm/clients/rospy/cmake/rospy.cmake
[rosbuild] Including
/opt/ros/diamondback/stacks/ros_comm/clients/roslisp/cmake/roslisp.cmake
[rosbuild] Including
/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake
Orocos-RTT found in
/home/demo/ros/stacks/orocos_toolchain_ros/rtt/install/lib/cmake/orocos-rtt/orocos-rtt-gnulinux-libraries.cmake
-- Found orocos-rtt for the gnulinux target. Available transports: mqueue
-- Configuring incomplete, errors occurred!
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package kuka_typekit written to:
[ rosmake ] /home/demo/.ros/rosmake/rosmake_output-20110407-100932/kuka_typekit/build_output.log
[rosmake-0] Finished <<< kuka_typekit [FAIL] [ 0.91 seconds ]
[ rosmake ] Halting due to failure in package kuka_typekit.
[ rosmake ] Waiting for other threads to complete.
[ rosmake ] Results:
[ rosmake ] Built 2 packages with 1 failures.
[ rosmake ] Summary output to directory
[ rosmake ] /home/demo/.ros/rosmake/rosmake_output-20110407-100932
demo@totoro:~/ros/stacks/demoLocal/kuka_typekit$

------------------
FYI:
demo@totoro:~/ros/stacks/orocos_toolchain_ros$ git branch -v
* diamondback 6593faf Merge branch 'master' into diamondback
master e48cca8 Merge branch 'master' of
ssh://git.mech.kuleuven.be/robotics/orocos_toolchain_ros

Best,
Gajan

orocos_toolchain_ros(diamondback): typegen issue

On Thursday 07 April 2011 10:18:02 Gajamohan Mohanarajah wrote:
> Hi,
>
> I switched to diamondback from the cturtle branch today.
> Everything went well up to now except for the typegen.

I *would have said*: In case you use an Ubuntu system, use:
apt-get install ros-diamondback-orocos-toolchain-ros

and source /opt/ros/diamondback/stacks/orocos_toolchain_ros/env.sh as ususual

However, that typegen instance does not work as it gives you:

typegen -o kuka_typekit kuka_typekit RobotMeasurements.hpp -t mqueue
/opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/lib/orogen/gen/imports.rb:19:in `merge_xml': cannot load xml: plugin not found
(ArgumentError)
from /opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/lib/orogen/gen/imports.rb:19:in `from_raw_data'
from /opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/lib/orogen/gen/project.rb:231:in `using_rtt_typekit'
from /opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/lib/orogen/gen/typekit.rb:759:in `initialize'
from /opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/bin/typegen:11:in `new'
from /opt/ros/diamondback/stacks/orocos_toolchain_ros/orogen/bin/typegen:11

Orogen gives the exact same bug. So until someone figured out what went wrong there,
lets dig into your problem...

>
> ---------------
> demo@totoro:~/ros/stacks/demoLocal$ typegen -o kuka_typekit
> kuka_typekit lwr_fri/include/friComm.h -t mqueue
> WARN: /FRI_CTRL cannot be marshalled in the MQueue transport
> WARN: /FRI_QUALITY cannot be marshalled in the MQueue transport
> WARN: /FRI_STATE cannot be marshalled in the MQueue transport
> WARN: /std/string cannot be marshalled in the MQueue transport
> demo@totoro:~/ros/stacks/demoLocal$ cd kuka_typekit/
> demo@totoro:~/ros/stacks/demoLocal/kuka_typekit$ rosmake
> [ rosmake ] No package specified. Building ['kuka_typekit']
> [ rosmake ] Packages requested are: ['kuka_typekit']
> [ rosmake ] Logging to
> directory/home/demo/.ros/rosmake/rosmake_output-20110407-100932
> [ rosmake ] Expanded args ['kuka_typekit'] to:
> ['kuka_typekit']
> [ rosmake ] Checking rosdeps compliance for packages kuka_typekit.
> This may take a few seconds.
> [ rosmake ] rosdep check passed all system dependencies in packages
> [rosmake-0] Starting >>> rtt [ make ]
> [rosmake-0] Finished <<< rtt [PASS] [ 1.02 seconds ]
> [rosmake-0] Starting >>> kuka_typekit [ make ]
> [ rosmake ] All 32 linesuka_typekit: 0.9 sec ]
>
> [ 1 Active 1/2 Complete ]
> {--------------------------------------------------------------------------
> ----- mkdir -p bin
> cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find
> rosbuild`/rostoolchain.cmake -DCMAKE_PREFIX_PATH=`rospack find
> rtt`/install/lib/cmake/orocos-rtt ..
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Performing Test ,
> -- Performing Test , - Failed
> -- checking for module 'orocos-rtt-gnulinux>=1.99.4'
> -- package 'orocos-rtt-gnulinux>=1.99.4' not found
> CMake Error at /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:259
> (message): A required package was not found
> Call Stack (most recent call first):
> /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:311
> (_pkg_check_modules_internal)
> CMakeLists.txt:41 (pkg_check_modules)

Typegen generates cmake files that are not tested on ROS systems. We are trying
to keep up with changes from upstream (rock), but we really need some stability
here if we want to keep some FRI users on this list in the end.... nothing you can
do about right now, but it needs to be said. I think we need to get typegen working
asap in the debian packages, such that we can point ROS users to that version...

I think we can only solve your current situation by extending the PKG_CONFIG_PATH
environment variable for including this path: $(rospack find rtt)/install/lib/pkgconfig
Since this is how typegen works, your 'env.sh' file should contain that.

PKG_CONFIG_PATH=/opt/orocos/lib/pkgconfig:$(rospack find rtt)/install/lib/pkgconfig:$PKG_CONFIG_PATH

>
>
> [rosbuild] Building package kuka_typekit
> [rosbuild] Cached build flags older than manifests; calling rospack
> to get flags
> [rosbuild] Including
> /opt/ros/diamondback/stacks/ros_comm/clients/rospy/cmake/rospy.cmake
> [rosbuild] Including
> /opt/ros/diamondback/stacks/ros_comm/clients/roslisp/cmake/roslisp.cmake
> [rosbuild] Including
> /opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake
> Orocos-RTT found in
> /home/demo/ros/stacks/orocos_toolchain_ros/rtt/install/lib/cmake/orocos-rtt
> /orocos-rtt-gnulinux-libraries.cmake -- Found orocos-rtt for the gnulinux
> target. Available transports: mqueue -- Configuring incomplete, errors
> occurred!
> ---------------------------------------------------------------------------
> ----} [ rosmake ] Output from build of package kuka_typekit written to:
> [ rosmake ]
> /home/demo/.ros/rosmake/rosmake_output-20110407-100932/kuka_typekit/build_
> output.log [rosmake-0] Finished <<< kuka_typekit [FAIL] [ 0.91 seconds ]
> [ rosmake ] Halting due to failure in package kuka_typekit.
> [ rosmake ] Waiting for other threads to complete.
> [ rosmake ] Results:
> [ rosmake ] Built 2 packages with 1 failures.
> [ rosmake ] Summary output to directory
> [ rosmake ] /home/demo/.ros/rosmake/rosmake_output-20110407-100932
> demo@totoro:~/ros/stacks/demoLocal/kuka_typekit$
>
> ------------------
> FYI:
> demo@totoro:~/ros/stacks/orocos_toolchain_ros$ git branch -v
> * diamondback 6593faf Merge branch 'master' into diamondback
> master e48cca8 Merge branch 'master' of
> ssh://git.mech.kuleuven.be/robotics/orocos_toolchain_ros
>
> Best,
> Gajan

Peter