Giter VIP home page Giter VIP logo

orogen's Introduction

oroGen: easy component building for Orocos/RTT

What is oroGen ?

oroGen is a specification language and code generator for the Orocos Realtime Toolkit (RTT). The Orocos/Real Time Toolkit is a C++ library allowing to build component-based systems (http://www.orocos.org/rtt). The orogen tool allows to create new components easily.

In oroGen, one write a specification that describes the components you want to develop. Then, orogen generates the corresponding C++ code and CMake build system so that you -- the component developer -- has only to care about implementing the actual functionality.

The remaining of this readme is about oroGen installation. See the user's guide for more in-depth usage information:

Installation

oroGen is part of the Robot Construction Kit. Check out rock-robotics.org for installation instructions.

orogen's People

Contributors

2maz avatar ajishbabu avatar bellenss avatar doudou avatar g-arjones avatar goldhoorn avatar jakobs avatar jbohren avatar jmachowinski avatar malter avatar maltewi avatar marvin2k avatar meyerj avatar mintar avatar nikolausdemmel avatar saarnold avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

orogen's Issues

Orogen Internal error

Hey,
my students managed to create an internal error with the attached
files. I can not see anything wrong with it.
As a side node, this was actually a minimal test case to debug
a typelib issue. We have problems with typelib creating the
MemoryLayout for RegisterBit.

Orogen and Typelib are on master.
Bootstrapped using Ruby2.0 on Ubuntu 14.04.4

Any Ideas ?
Greetings
Janosch

Internal Error instead of normal error message on wrong type

Hey,
if you give a wrong type on an Operation you will get :
scotch@Machowinski-Desktop:~/coyote/coyote/orogen/faster_scout_tcp_client/build$ make regen
Scanning dependencies of target regen
===== Internal error =======
Please report the following error to the orogen developers
/home/scotch/coyote/tools/orogen/lib/orogen/gen/typekit.rb:882:in build': cannot find /base/Vector3 in registry (Typelib::NotFound) from /home/scotch/coyote/tools/orogen/lib/orogen/gen/typekit.rb:882:inbuild'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/typekit.rb:882:in rescue in find_type' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/typekit.rb:864:infind_type'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:571:in rescue in find_type' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:566:infind_type'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:529:in find_interface_type' from /home/scotch/coyote/tools/orogen/lib/orogen/spec/operation.rb:97:infind_interface_type'
from /home/scotch/coyote/tools/orogen/lib/orogen/spec/operation.rb:117:in argument' from faster_scout_tcp_client.orogen:117 from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1002:ininstance_eval'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1002:in block in task_context' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1033:ininstance_eval'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1033:in external_task_context' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1000:intask_context'
from faster_scout_tcp_client.orogen:78
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1348:in load' from /home/scotch/coyote/tools/orogen/bin/orogen:164:inblock in

'
from /home/scotch/coyote/tools/orogen/lib/orogen/base.rb:472:in beautify_loading_errors' from /home/scotch/coyote/tools/orogen/bin/orogen:154:in'
make[3]: *** [CMakeFiles/regen] Error 1
make[2]: *** [CMakeFiles/regen.dir/all] Error 2
make[1]: *** [CMakeFiles/regen.dir/rule] Error 2
make: *** [regen] Error 2

This should be a error message only pointing to the wrong line
in the orogen file.

generated main does not compile on OSX

I got the following compile error for an orogen generated project:

big_mockup/.orogen/main-orogen_default_big_mockup__Workaround.cpp:286:20: error:
no member named 'sa_restorer' in 'sigaction'
sigint_handler.sa_restorer = 0;
~~~~~~~~~~~~~~ ^
1 warning and 1 error generated.

The Linux manpage (http://man7.org/linux/man-pages/man2/sigaction.2.html) mentions the following:

The sa_restorer field is not intended for application use. (POSIX
does not specify a sa_restorer field.) Some further details of
purpose of this field can be found in sigreturn(2).

It's probable safe to remove this line?

kernel_require.rb:55:in `require': cannot load such file -- orogen (LoadError)

Hi,
i run "orocreate-pkg mycomponent", then make it. The terminal display like this:

/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- orogen (LoadError)
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /home/wangzheng/orocos_toolchain/install/bin/typegen:2:in

'
CMake Error at /home/wangzheng/orocos_toolchain/install/lib/cmake/orocos-rtt/UseOROCOS-RTT.cmake:611 (add_subdirectory):
add_subdirectory given source "/home/wangzheng/Robot/build/typekit" which
is not an existing directory.
Call Stack (most recent call first):
CMakeLists.txt:34 (orocos_typegen_headers)
`
What‘s the problem? Is there something wrong with ruby on my computer. And the system is Ubuntu16.04.

orogen should not create types that are ambigious to typelib

I had a header which contains this structures:

struct battery_data{
...
};
struct BatteryData{
...
};

In geeneral this works fine but later by using them in the typelib binding i hade no way to handle them anymore caused by this error:

10:10:58.644 (Roby) there is a type registered at Types::BatteryData that differs from the one we are trying to register
10:10:58.644 (Roby) registered type is
10:10:58.644 (Roby)   /BatteryData {
10:10:58.644 (Roby)     state </uint32_t>,
10:10:58.644 (Roby)     cell_voltage </uint32_t[8]>,
10:10:58.644 (Roby)     temperature </uint32_t>,
10:10:58.644 (Roby)     error_state </uint32_t>}
10:10:58.644 (Roby) new type is
10:10:58.644 (Roby)   /battery_data {
10:10:58.644 (Roby)     state </uint32_t>,
10:10:58.644 (Roby)     cell_voltage0 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage1 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage2 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage3 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage4 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage5 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage6 </uint32_t>,
10:10:58.644 (Roby)     cell_voltage7 </uint32_t>,
10:10:58.644 (Roby)     temperature </uint32_t>,
10:10:58.644 (Roby)     error_state </uint32_t>}

I put this issue to orogen because i see no way to handle this problem in the typelib binding, therefore i recomment that orogen should refuse the creation of such types then.

orogen_include for `/std/vector</base/JointLimitRange>` and friends

This time asking about orogen_include... Running make -C build regen in base/orogen/types generates a .orogen/typekit/base.tlb. Inside this file there is an entry

<container name="/std/vector&lt;/base/JointLimitRange&gt;" of="/base/JointLimitRange" size="24" kind="/std/vector">
    <metadata key="orogen_defining_typekits"><![CDATA[base]]></metadata>
    <metadata key="orogen_exporting_typekits"><![CDATA[base]]></metadata>
    <metadata key="orogen_include"><![CDATA[base:base/Temperature.hpp]]></metadata>
    <metadata key="source_file_line"><![CDATA[/usr/include/c++/4.9/bits/stl_vector.h:214]]></metadata>
</container>

So, it contains an orogen_include for Temperature.hpp despite transporting a JointLimitRange -- not as expected. This is the same for all the "vector" related types. Tried to track it down, currently I would opt for something in to go wrong during parsing of the preprocessed gccxml output?

This is no issue for me, just stumpled upon it trying to integrate the clang-thingy. And now I use this to introduce my actual problem: Why is this arcane orogen_include needed at all? Every well-behaved type has a source_file_line which is exactly what is to be included (raise an error if is not a header). For containers recurse for the type in of, for opaques the one in marshal_as?

Overwritten TypeInfo for standard types?

Some standard types from the RTT typekit (bool, int, float, double etc.) do not print anymore in the TaskBrowser after a typekit generated by typegen has been imported.

Example:

Deployer [S]> var bool b1
 = false               

Deployer [S]> var int i1
 = 0                   

Deployer [S]> import("foo")
4.473 [ Info   ][Thread] Creating Thread for scheduler=ORO_SCHED_OTHER, priority=1, CPU affinity=0, with name='GlobalEngine'
4.473 [ Debug  ][Thread] Setting CPU affinity to 0
4.473 [ Info   ][GlobalEngine] Thread created with scheduler type 'ORO_SCHED_OTHER', priority 0, cpu affinity 15 and period 0 (PID= 29398 ).
4.474 [ Info   ][ComponentLoader::import(path_list)] Importing directory foo ...
4.474 [ Debug  ][ComponentLoader::import(path_list)] Scanning file foo/include ...not a regular file: ignored.
4.474 [ Debug  ][ComponentLoader::import(path_list)] Scanning file foo/src ...not a regular file: ignored.
4.474 [ Debug  ][ComponentLoader::import(path_list)] Scanning file foo/package.xml ...not a .so library: ignored.
4.474 [ Debug  ][ComponentLoader::import(path_list)] Scanning file foo/CMakeLists.txt ...not a .so library: ignored.
4.474 [ Debug  ][ComponentLoader::import(path_list)] Looking for plugins or typekits in directory foo ...
4.474 [ Debug  ][ComponentLoader::import(path_list)] No such directory: "foo/types"
4.474 [ Debug  ][ComponentLoader::import(path_list)] No such directory: "foo/plugins"
4.474 [ Debug  ][ComponentLoader::import(path_list)] No such directory: "foo/gnulinux"
4.474 [ Info   ][ComponentLoader::import(path_list)] Importing directory /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo ...
4.474 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/plugins ...not a regular file: ignored.
4.475 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/libfoo-gnulinux.so ...Succesfully loaded foo
4.475 [ Info   ][ComponentLoader::import(path_list)] Loaded component type 'Foo'
4.475 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types ...not a regular file: ignored.
4.475 [ Debug  ][ComponentLoader::import(path_list)] Looking for plugins or typekits in directory /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo ...
4.475 [ Info   ][ComponentLoader::import(path_list)] Loading typekit libraries from directory /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types ...
4.483 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types/libfoo-transport-mqueue-gnulinux.so ...Found library libfoo-transport-mqueue-gnulinux.so
4.486 [ Info   ][TypekitRepository::Import] Loading Transport MQueue:///orogen/foo.
4.486 [ Debug  ][TypekitRepository::Import] Transport MQueue did not install a fallback handler for 'unknown_t'.
4.486 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT TypeKit/Transport '/orogen/foo/MQueue' from 'foo-transport-mqueue'
4.486 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types/libfoo-transport-typelib-gnulinux.so ...Found library libfoo-transport-typelib-gnulinux.so
4.486 [ Info   ][TypekitRepository::Import] Loading Transport Typelib:///orogen/foo.
4.487 [ Debug  ][TypekitRepository::Import] Transport Typelib did not install a fallback handler for 'unknown_t'.
4.488 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT TypeKit/Transport '/orogen/foo/TYPELIB' from 'foo-transport-typelib'
4.490 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types/libfoo-transport-corba-gnulinux.so ...Found library libfoo-transport-corba-gnulinux.so
4.490 [ Info   ][TypekitRepository::Import] Loading Transport CORBA:///orogen/foo.
4.490 [ Debug  ][TypekitRepository::Import] Transport CORBA did not install a fallback handler for 'unknown_t'.
4.490 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT TypeKit/Transport '/orogen/foo/CORBA' from 'foo-transport-corba'
4.517 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/types/libfoo-typekit-gnulinux.so ...Found library libfoo-typekit-gnulinux.so
4.517 [ Info   ][TypekitRepository::Import] Loading Typekit /orogen/foo.
4.517 [ Debug  ][TypekitRepository::Import] Registered Type '/FooData' to the Orocos Type System.
4.517 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /FooData
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /FooData
4.518 [ Info   ][TypekitRepository::Import] Registered new 'CORBA' transport for /FooData
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/bool' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type bool
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /bool
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /bool
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/double' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type double
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /double
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /double
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/float' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type float
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /float
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /float
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/int16_t' to the Orocos Type System.
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /int16_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /int16_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'CORBA' transport for /int16_t
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/int32_t' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type int
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /int32_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /int32_t
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/std/string' to the Orocos Type System.
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /std/string
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /std/string
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/std/vector</double>' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type array
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /std/vector</double>
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /std/vector</double>
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/uint16_t' to the Orocos Type System.
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /uint16_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /uint16_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'CORBA' transport for /uint16_t
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/uint32_t' to the Orocos Type System.
4.518 [ Debug  ][TypekitRepository::Import] A protocol with id 2 was already added for type uint
4.518 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /uint32_t
4.518 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /uint32_t
4.518 [ Debug  ][TypekitRepository::Import] Registered Type '/uint8_t' to the Orocos Type System.
4.519 [ Info   ][TypekitRepository::Import] Registered new 'MQueue' transport for /uint8_t
4.519 [ Info   ][TypekitRepository::Import] Registered new 'Typelib' transport for /uint8_t
4.519 [ Info   ][TypekitRepository::Import] Registered new 'CORBA' transport for /uint8_t
4.519 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT TypeKit/Transport '/orogen/foo' from 'foo-typekit'
4.519 [ Info   ][ComponentLoader::import(path_list)] Loading plugin libraries from directory /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/plugins ...
4.519 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/plugins/libfoo-plugin-gnulinux.so ...Found library libfoo-plugin-gnulinux.so
Plugin of foo loaded in process.
4.519 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT Plugin 'foo-example-plugin' from 'foo-plugin'
4.520 [ Debug  ][ComponentLoader::import(path_list)] Scanning file /opt/orocos/indigo/tmp/install/lib/orocos/gnulinux/foo/plugins/libfoo-service-gnulinux.so ...Found library libfoo-service-gnulinux.so
4.520 [ Info   ][ComponentLoader::import(path_list)] Loaded RTT Service 'myservice' from 'foo-service'
4.520 [ Info   ][ComponentLoader::import(path_list)] Importing directory ./foo ...
4.520 [ Debug  ][ComponentLoader::import(path_list)] Scanning file ./foo/include ...not a regular file: ignored.
4.520 [ Debug  ][ComponentLoader::import(path_list)] Scanning file ./foo/src ...not a regular file: ignored.
4.520 [ Debug  ][ComponentLoader::import(path_list)] Scanning file ./foo/package.xml ...not a .so library: ignored.
4.520 [ Debug  ][ComponentLoader::import(path_list)] Scanning file ./foo/CMakeLists.txt ...not a .so library: ignored.
4.520 [ Debug  ][ComponentLoader::import(path_list)] Looking for plugins or typekits in directory ./foo ...
4.520 [ Debug  ][ComponentLoader::import(path_list)] No such directory: "./foo/types"
4.520 [ Debug  ][ComponentLoader::import(path_list)] No such directory: "./foo/plugins"
 = (bool)              

Deployer [S]> .types
Available data types:  FooData bool double float int16_t int32_t std.string std.vector<double> uint16_t uint32_t uint8_t ConnPolicy FlowStatus PropertyBag SendHandle SendStatus TaskContext array bool char double float int ints rt_string string strings uint void
Deployer [S]> var bool b2
 = (bool)              

Deployer [S]> var int i2
 = (int)               

Deployer [S]> var string s2
 =                     

Deployer [S]> var std.string s3
 =                     

Deployer [S]>

The typekit is the default typekit generated with orocreate-pkg, where the struct FooData only contains a vector of doubles. I am testing with the current toolchain-2.8 branches of all toolchain repositories.

Get task names from an orogen project

I am trying to get the task names defined in an orogen file and this is as far as could get:

class OrogenProject
    attr_reader :loader, :target
    def initialize(file)
        @loader = OroGen::Loaders::RTT.new
        @target = OroGen::Spec::Project.new(loader)
        target.define_default_deployments = false
        load file
    end

    def load(file)
        OroGen::Loaders::Project.new(target).__load__(file)
    end

    def tasks
        target.self_tasks.keys
    end
end

This only works if the tasks defined in the file do not have any external dependencies. How do I make it find whatever it needs or, even better, is there an easy way to ignore missing typekits/base tasks/deployments? I only want the task names, I don't care if there are stuff missing. Thanks!

oroconf extract error

After this commit when I try to use

oroconf extract auv_control::AccelerationController --save=.

I get the following error message:

/home/rafaelsaback/flatfish/bir_rock/tools/orogen/lib/orogen/loaders/aggregate.rb:76:in `find_task_library_from_task_model_name': NotImplementedError (NotImplementedError)
    from /home/rafaelsaback/flatfish/bir_rock/tools/orocos.rb/bin/oroconf:101:in `<main>'

orogen cannot handle "C style" typedef'ed structs correctly

I'm almost sure this is a regression because I (we? :P) used this before and I don't remember having to work around it...

Given the definition:

typedef struct _Foobar {
    int dummy_field;
} Foobar;

It seems Typelib does not generate definitions for _Foobar but still creates convertion methods for it:

.orogen/typekit/transports/corba/Convertions.cpp:17:34: error: ‘_Foobar’ is not a member of ‘orogen::Corba’
bool toCORBA( orogen::Corba::_Foobar& corba, _Foobar const& value );
^~~~~~~
.orogen/typekit/transports/corba/Convertions.cpp:17:34: note: suggested alternative: ‘Foobar’
bool toCORBA( orogen::Corba::_Foobar& corba, _Foobar const& value );
^~~~~~~
Foobar
.orogen/typekit/transports/corba/Convertions.cpp:17:43: error: ‘corba’ was not declared in this scope
bool toCORBA( orogen::Corba::_Foobar& corba, _Foobar const& value );
^~~~~

Possible regression? I think I have used this before..

Problem with base/samples/frame/Frame in orogen

Hi,

on master, whenever I add the above mentioned data type as an output port in an orogen component, I get the following build error:

/home/dfki.uni-bremen.de/dmronga/rock_hybrit/drivers/orogen/test/.orogen/tasks/TaskBase.cpp: In member function 'void test::TaskBase::setupComponentInterface()':
/home/dfki.uni-bremen.de/dmronga/rock_hybrit/drivers/orogen/test/.orogen/tasks/TaskBase.cpp:51:27: error: 'ReadOnlyPointer' is not a member of 'RTT::extras'
/home/dfki.uni-bremen.de/dmronga/rock_hybrit/drivers/orogen/test/.orogen/tasks/TaskBase.cpp:51:89: error: expected primary-expression before '>' token

The problem seems to be related to c37f00c, because with the preceding commit the orogen component compiles.

Best,
Dennis

Orogen does not include inherited ports when port_driven

Given Task A and Task B as follows:

task_context "TaskA" do
    input_port "portA"
end

task_context "TaskB", subclasses: "TaskA" do
    input_port "portB"
    port_driven
end 

then the updateHook of TaskB will only be triggered for portB, NOT for interited port portA!
In TaskBase::setupComponentInterface(), orogen did not add portA.

orogen generate invalid typlib files (includes are resolved wrongly)

On rc-build the base/orogen/types cannot be compiled if ocl build is active.

Orogen tries to export all types because it get called with:

orogen --corba --import=std --parallel-build=4 --transports=corba,mqueue,typelib --type-export-policy=all base.orogen

unfourtnalty this causes wrong include for some new files, instead of JointLimitRange the Joint Header get catched which is not related to the JointLimitRange

It seems a problem with these function https://github.com/orocos-toolchain/orogen/blob/master/lib/orogen/gen/typekit.rb#L1321

Error:

/home/goldhoorn/bootstraps/release-nativ/base/orogen/types/.orogen/typekit/transports/corba/__base__NamedVector____base__JointLimitRange__.cpp:59:76: error: 'JointLimitRange' is not a member of 'base'

Header snip:

  1 /* Generated from orogen/lib/orogen/templates/typekit/typelib/Type.cpp */
  2 
  3 #include <base/samples/Joints.hpp>
  4 #include <rtt/typelib/TypelibMarshaller.hpp>
  5 #include "transports/typelib/Registration.hpp"
  6 
  7 orogen_transports::TypelibMarshallerBase* orogen_typekits::base_NamedVector__base_JointLimitRange__TypelibMarshaller(Typelib::Registry const& registry)
  8 {
  9     return new orogen_transports::TypelibMarshaller< ::base::NamedVector< ::base::JointLimitRange > >("/base/NamedVector</base/JointLimitRange>", registry);
 10 }

orogen fails to build with Ruby 1.9.1 or 1.9.3 on Ubuntu 12.04

==> Processing plain cmake package: 'orogen'
==> Building with env: '/home/jbohren/ws/groovy/underlay_isolated/install_isolated/env.sh'
==> cmake /home/jbohren/ws/groovy/underlay_isolated/src/orocos/orocos_toolchain/orogen -DCMAKE_INSTALL_PREFIX=/home/jbohren/ws/groovy/underlay_isolated/install_isolated in '/home/jbohren/ws/groovy/underlay_isolated/build_isolated/orogen'
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
  Could NOT find Ruby (missing: RUBY_LIBRARY) (found version "1.9.1")
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-2.8/Modules/FindRuby.cmake:230 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:4 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!
<== Failed to process package 'orogen': 
  Command '/home/jbohren/ws/groovy/underlay_isolated/install_isolated/env.sh cmake /home/jbohren/ws/groovy/underlay_isolated/src/orocos/orocos_toolchain/orogen -DCMAKE_INSTALL_PREFIX=/home/jbohren/ws/groovy/underlay_isolated/install_isolated' returned non-zero exit status 1

Reproduce this error by running:
==> cd /home/jbohren/ws/groovy/underlay_isolated/build_isolated && /home/jbohren/ws/groovy/underlay_isolated/install_isolated/env.sh cmake /home/jbohren/ws/groovy/underlay_isolated/src/orocos/orocos_toolchain/orogen -DCMAKE_INSTALL_PREFIX=/home/jbohren/ws/groovy/underlay_isolated/install_isolated

Command failed, exiting.

clang: missing header in second pass of orogen typelib call for base/orogen/types

Hey,
not sure if this is really an orogen bug, or more one for base/orogen/types.
This is related to the clang integration work.
If using clang to generate the tlb files, the first pass runs through.
Meaning, that the tlbs for all headers from base/types get generated.
Then a second pass happens, were tlbs for the just generated wrappers
are generated.
During this call a opaque RTT/extra/ReadOnlyPointer<base/samples/Frame> is
given. But there is no header given, that contains a defintion of either
RTT/extra/ReadOnlyPointer nor base/samples/Frame.

Apart from this problem, what is the expected result ? My guess would
be, that in orogen_includes the header to the definition of
RTT/extra/ReadOnlyPointer and base/samples/Frame should be
registered, seperated by a collonn.

Error if ro_ptr is passed as argument of operation

Hi,
if one passes a ro_ptr e.g (ro_ptr('std/vector</envire/BinaryEvent>')) as argument of
an operation, this results in the following error :
===== Internal error =======
Please report the following error to the orogen developers
/home/scotch/coyote/tools/orogen/lib/orogen/base.rb:294:in unqualified_cxx_type': undefined methodgsub' for #Class:0x00000003e88020 (NoMethodError)
from /home/scotch/coyote/tools/orogen/lib/orogen/base.rb:294:in unqualified_cxx_type' from /home/scotch/coyote/tools/orogen/lib/orogen/spec/operation.rb:96:infind_interface_type'
from /home/scotch/coyote/tools/orogen/lib/orogen/spec/operation.rb:117:in argument' from local_mapper.orogen:36 from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1002:ininstance_eval'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1002:in block in task_context' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1033:ininstance_eval'
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1033:in external_task_context' from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1000:intask_context'
from local_mapper.orogen:10
from /home/scotch/coyote/tools/orogen/lib/orogen/gen/project.rb:1348:in load' from /home/scotch/coyote/tools/orogen/bin/orogen:164:inblock in

'
from /home/scotch/coyote/tools/orogen/lib/orogen/base.rb:472:in beautify_loading_errors' from /home/scotch/coyote/tools/orogen/bin/orogen:154:in'
make[3]: *** [CMakeFiles/regen] Error 1

Multiple metadata entries in properties

Hey,
there seems to be a bug in the latest orogen. If I run
task.each_property I get the entry for metadata of
type metadata::TaskContext 2 times. Any ideas
what might be the source ?
Janosch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.