Overriding TypeInfo when importing rtt_ros_integration_geometry_msgs

Hi,

I'm adding my property as follows,

std::vector<double> v_max, a_max;

this->addProperty("max_vel",v_max).doc("Maximum Velocity in Trajectory");
this->addProperty("max_acc",a_max).doc("Maximum Acceleration in Trajectory");

Everything works fine, until I import "rtt_ros_integration_geometry_msgs".
[I need to do this since an InputPort with a type geometry_msgs::Pose]

After importing I get:
----------------
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'int' with 'int32'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'ints' with 'int32[]'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'uint' with 'uint32'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'float' with 'float32'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'double' with 'float64'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'array' with 'float64[]'.
0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
'string' with 'string'.
0.300 [ Warning][TypekitRepository::Import] Registering Type name
'string' twice to the Orocos Type System: replacing.
0.491 [ Warning][DeploymentComponent::loadComponents] Lowering
scheduler type to SCHED_OTHER for non-privileged users..
0.492 [ ERROR ][refreshProperties] Could not update, nor compose
Property float64[] max_vel: type mismatch, can not refresh with type
PropertyBag
0.492 [ ERROR ][refreshProperties] Could not update, nor compose
Property float64[] max_acc: type mismatch, can not refresh with type
PropertyBag
0.492 [ ERROR ][DeploymentComponent::configureComponents] Failed to
configure properties for component trajectoryGeneratorJntPos
0.492 [ ERROR ][Logger] Failed to configure a component: aborting kick-start.
Switched to : Deployer
----------------

Please let me know how to solve this.

Gajan

FYI:
Deployer XML
--------------------
<?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;
<properties>
<simple name="Import"
type="string"><value>trajectory_generators<value><simple>
<simple name="Import"
type="string"><value>rtt_ros_integration_geometry_msgs<value><simple>

<struct name="trajectoryGeneratorJntPos"
type="trajectory_generators::CartesianGeneratorPos">
<struct name="Activity" type="PeriodicActivity">
<simple name="Period" type="double"><value>0.01<value><simple>
<simple name="Priority" type="short"><value>1<value><simple>
<simple name="Scheduler" type="string"><value>ORO_SCHED_RT<value><simple>
<struct>
<simple name="AutoConf" type="boolean"><value>1<value><simple>
<simple name="AutoStart" type="boolean"><value>1<value><simple>
<simple name="PropertyFile"
type="string"><value>cpf/trajectoryGeneratorPos.cpf<value><simple>
<struct>
<properties>

trajectoryGeneratorPos.cpf
---------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;

<properties>
<simple name="num_axes" type="ulong">
<description><description><value>7<value><simple>
<struct name="max_vel" type="array"> <description>The maximum
velocity in trajectory<description>
<simple name="0" type="double"><description>Axis
1<description><value>0.1<value><simple>
<simple name="1" type="double"><description>Axis
2<description><value>0.1<value><simple>
<simple name="2" type="double"><description>Axis
3<description><value>0.1<value><simple>
<simple name="3" type="double"><description>Axis
4<description><value>0.1<value><simple>
<simple name="4" type="double"><description>Axis
5<description><value>0.1<value><simple>
<simple name="5" type="double"><description>Axis
6<description><value>0.1<value><simple>
<simple name="6" type="double"><description>Axis
7<description><value>0.1<value><simple>
<struct>
<struct name="max_acc" type="array"> <description>The maximum
acceleration in trajectory<description>
<simple name="0" type="double"><description>Axis
1<description><value>1.0<value><simple>
<simple name="1" type="double"><description>Axis
2<description><value>1.0<value><simple>
<simple name="2" type="double"><description>Axis
3<description><value>1.0<value><simple>
<simple name="3" type="double"><description>Axis
4<description><value>1.0<value><simple>
<simple name="4" type="double"><description>Axis
5<description><value>1.0<value><simple>
<simple name="5" type="double"><description>Axis
6<description><value>1.0<value><simple>
<simple name="6" type="double"><description>Axis
7<description><value>1.0<value><simple>
<struct>
<properties>

furthermore,

Changing
std::vector<double> v_max, a_max;
to
std::vector<std_msgs::Float64> v_max, a_max;

or

changing
double/array in properties
to
float64/float64[]
also did not help.

Ruben Smits's picture

Overriding TypeInfo when importing rtt_ros_integration_geometry_

On 06 Apr 2011, at 19:16, Gajamohan Mohanarajah wrote:

> Hi,
>
> I'm adding my property as follows,
>
> std::vector<double> v_max, a_max;
>
> this->addProperty("max_vel",v_max).doc("Maximum Velocity in Trajectory");
> this->addProperty("max_acc",a_max).doc("Maximum Acceleration in Trajectory");
>
> Everything works fine, until I import "rtt_ros_integration_geometry_msgs".
> [I need to do this since an InputPort with a type geometry_msgs::Pose]
>

Which version of the toolchain/toolchain_ros are you using? Newer versions (2.3.x,0.3.x) do not override TypeInfos anymore but create aliases, which should prevent this from happening.

-- Ruben

> After importing I get:
> ----------------
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'int' with 'int32'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'ints' with 'int32[]'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'uint' with 'uint32'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'float' with 'float32'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'double' with 'float64'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'array' with 'float64[]'.
> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
> 'string' with 'string'.
> 0.300 [ Warning][TypekitRepository::Import] Registering Type name
> 'string' twice to the Orocos Type System: replacing.
> 0.491 [ Warning][DeploymentComponent::loadComponents] Lowering
> scheduler type to SCHED_OTHER for non-privileged users..
> 0.492 [ ERROR ][refreshProperties] Could not update, nor compose
> Property float64[] max_vel: type mismatch, can not refresh with type
> PropertyBag
> 0.492 [ ERROR ][refreshProperties] Could not update, nor compose
> Property float64[] max_acc: type mismatch, can not refresh with type
> PropertyBag
> 0.492 [ ERROR ][DeploymentComponent::configureComponents] Failed to
> configure properties for component trajectoryGeneratorJntPos
> 0.492 [ ERROR ][Logger] Failed to configure a component: aborting kick-start.
> Switched to : Deployer
> ----------------
>
> Please let me know how to solve this.
>
> Gajan
>
> FYI:
> Deployer XML
> --------------------
> <?xml version="1.0" encoding="UTF-8"?>
> &lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;
> <properties>
> <simple name="Import"
> type="string"><value>trajectory_generators<value><simple>
> <simple name="Import"
> type="string"><value>rtt_ros_integration_geometry_msgs<value><simple>
>
> <struct name="trajectoryGeneratorJntPos"
> type="trajectory_generators::CartesianGeneratorPos">
> <struct name="Activity" type="PeriodicActivity">
> <simple name="Period" type="double"><value>0.01<value><simple>
> <simple name="Priority" type="short"><value>1<value><simple>
> <simple name="Scheduler" type="string"><value>ORO_SCHED_RT<value><simple>
> <struct>
> <simple name="AutoConf" type="boolean"><value>1<value><simple>
> <simple name="AutoStart" type="boolean"><value>1<value><simple>
> <simple name="PropertyFile"
> type="string"><value>cpf/trajectoryGeneratorPos.cpf<value><simple>
> <struct>
> <properties>
>
> trajectoryGeneratorPos.cpf
> ---------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> &lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;
>

> <properties>
> <simple name="num_axes" type="ulong">
> <description><description><value>7<value><simple>
> <struct name="max_vel" type="array"> <description>The maximum
> velocity in trajectory<description>
> <simple name="0" type="double"><description>Axis
> 1<description><value>0.1<value><simple>
> <simple name="1" type="double"><description>Axis
> 2<description><value>0.1<value><simple>
> <simple name="2" type="double"><description>Axis
> 3<description><value>0.1<value><simple>
> <simple name="3" type="double"><description>Axis
> 4<description><value>0.1<value><simple>
> <simple name="4" type="double"><description>Axis
> 5<description><value>0.1<value><simple>
> <simple name="5" type="double"><description>Axis
> 6<description><value>0.1<value><simple>
> <simple name="6" type="double"><description>Axis
> 7<description><value>0.1<value><simple>
> <struct>
> <struct name="max_acc" type="array"> <description>The maximum
> acceleration in trajectory<description>
> <simple name="0" type="double"><description>Axis
> 1<description><value>1.0<value><simple>
> <simple name="1" type="double"><description>Axis
> 2<description><value>1.0<value><simple>
> <simple name="2" type="double"><description>Axis
> 3<description><value>1.0<value><simple>
> <simple name="3" type="double"><description>Axis
> 4<description><value>1.0<value><simple>
> <simple name="4" type="double"><description>Axis
> 5<description><value>1.0<value><simple>
> <simple name="5" type="double"><description>Axis
> 6<description><value>1.0<value><simple>
> <simple name="6" type="double"><description>Axis
> 7<description><value>1.0<value><simple>
> <struct>
> <properties>
>
>
> furthermore,
>
> Changing
> std::vector<double> v_max, a_max;
> to
> std::vector<std_msgs::Float64> v_max, a_max;
>
> or
>
> changing
> double/array in properties
> to
> float64/float64[]
> also did not help.

gajan's picture

Overriding TypeInfo when importing rtt_ros_integration_geometry_

Hi Ruben,

I was using the cturtle branch of the orocos_toolchain_ros.
Now I switched to the diamondback branch.

[Overriding TypeInfo] goes way but I still get
.380 [ ERROR ][PropertyLoader:configure] The type 'array' did not
provide a type composition function, but I need one to compose it from
a PropertyBag.
0.380 [ ERROR ][PropertyLoader:configure] The type 'array' did not
provide a type composition function, but I need one to compose it from
a PropertyBag.
0.380 [ ERROR ][DeploymentComponent::configureComponents] Failed to
configure properties for component trajectoryGeneratorJntPos
0.380 [ ERROR ][Logger] Failed to configure a component: aborting kick-start.
Switched to : Deployer

Please note that I can see [array] when I do .types in the deployer
---------------------
Deployer [S]> .types
Available data types: geometry_msgs.Point geometry_msgs.Point32
geometry_msgs.Point32[] geometry_msgs.PointStamped
geometry_msgs.PointStamped[] geometry_msgs.Point[]
geometry_msgs.Polygon geometry_msgs.PolygonStamped
geometry_msgs.PolygonStamped[] geometry_msgs.Polygon[]
geometry_msgs.Pose geometry_msgs.Pose2D geometry_msgs.Pose2D[]
geometry_msgs.PoseArray geometry_msgs.PoseArray[]
geometry_msgs.PoseStamped geometry_msgs.PoseStamped[]
geometry_msgs.PoseWithCovariance
geometry_msgs.PoseWithCovarianceStamped
geometry_msgs.PoseWithCovarianceStamped[]
geometry_msgs.PoseWithCovariance[] geometry_msgs.Pose[]
geometry_msgs.Quaternion geometry_msgs.QuaternionStamped
geometry_msgs.QuaternionStamped[] geometry_msgs.Quaternion[]
geometry_msgs.Transform geometry_msgs.TransformStamped
geometry_msgs.TransformStamped[] geometry_msgs.Transform[]
geometry_msgs.Twist geometry_msgs.TwistStamped
geometry_msgs.TwistStamped[] geometry_msgs.TwistWithCovariance
geometry_msgs.TwistWithCovarianceStamped
geometry_msgs.TwistWithCovarianceStamped[]
geometry_msgs.TwistWithCovariance[] geometry_msgs.Twist[]
geometry_msgs.Vector3 geometry_msgs.Vector3Stamped
geometry_msgs.Vector3Stamped[] geometry_msgs.Vector3[]
geometry_msgs.Wrench geometry_msgs.WrenchStamped
geometry_msgs.WrenchStamped[] geometry_msgs.Wrench[] std_msgs.Bool
std_msgs.Bool[] std_msgs.Byte std_msgs.ByteMultiArray
std_msgs.ByteMultiArray[] std_msgs.Byte[] std_msgs.Char
std_msgs.Char[] std_msgs.ColorRGBA std_msgs.ColorRGBA[]
std_msgs.Duration std_msgs.Duration[] std_msgs.Empty std_msgs.Empty[]
std_msgs.Float32 std_msgs.Float32MultiArray
std_msgs.Float32MultiArray[] std_msgs.Float32[] std_msgs.Float64
std_msgs.Float64MultiArray std_msgs.Float64MultiArray[]
std_msgs.Float64[] std_msgs.Header std_msgs.Header[] std_msgs.Int16
std_msgs.Int16MultiArray std_msgs.Int16MultiArray[] std_msgs.Int16[]
std_msgs.Int32 std_msgs.Int32MultiArray std_msgs.Int32MultiArray[]
std_msgs.Int32[] std_msgs.Int64 std_msgs.Int64MultiArray
std_msgs.Int64MultiArray[] std_msgs.Int64[] std_msgs.Int8
std_msgs.Int8MultiArray std_msgs.Int8MultiArray[] std_msgs.Int8[]
std_msgs.MultiArrayDimension std_msgs.MultiArrayDimension[]
std_msgs.MultiArrayLayout std_msgs.MultiArrayLayout[] std_msgs.String
std_msgs.String[] std_msgs.Time std_msgs.Time[] std_msgs.UInt16
std_msgs.UInt16MultiArray std_msgs.UInt16MultiArray[]
std_msgs.UInt16[] std_msgs.UInt32 std_msgs.UInt32MultiArray
std_msgs.UInt32MultiArray[] std_msgs.UInt32[] std_msgs.UInt64
std_msgs.UInt64MultiArray std_msgs.UInt64MultiArray[]
std_msgs.UInt64[] std_msgs.UInt8 std_msgs.UInt8MultiArray
std_msgs.UInt8MultiArray[] std_msgs.UInt8[] ConnPolicy FlowStatus
PropertyBag SendHandle SendStatus TaskContext array bool bools char
double float float32 float32[] float64 float64[] int int16 int16[]
int32 int32[] int64 int64[] int8 int8[] ints rt_string string strings
time uint uint16 uint16[] uint32 uint32[] uint64 uint64[] uint8
uint8[] void

Deployer [S]> .typekits
Available Typekits: rtt-mqueue-transport rtt-types OCLTypekit
ros-primitives rtt-ros-std_msgs-transport ros-std_msgs
ros-geometry_msgs rtt-ros-geometry_msgs-transport
----------------------

changing
double/array in properties
to
float64/float64[]

took away the error but the properties were not read out.
Configuration Properties:
float64[] max_vel = { [ ], size = 0, capacity = 0 } (Maximum
Velocity in Trajectory)
float64[] max_acc = { [ ], size = 0, capacity = 0 } (Maximum
Acceleration in Trajectory)
uint32 num_axes = 7 (Number of Axes)

I have one more issue with the diamondback branch. I will post it in
another thread.

Gajan

On Wed, Apr 6, 2011 at 10:25 PM, Ruben Smits
<Ruben [dot] Smits [..] ...> wrote:
>
> On 06 Apr 2011, at 19:16, Gajamohan Mohanarajah wrote:
>
>> Hi,
>>
>> I'm adding my property as follows,
>>
>> std::vector<double> v_max, a_max;
>>
>> this->addProperty("max_vel",v_max).doc("Maximum Velocity in Trajectory");
>> this->addProperty("max_acc",a_max).doc("Maximum Acceleration in Trajectory");
>>
>> Everything works fine, until I import "rtt_ros_integration_geometry_msgs".
>> [I need to do this since an InputPort with a type geometry_msgs::Pose]
>>
>
> Which version of the toolchain/toolchain_ros are you using? Newer versions (2.3.x,0.3.x) do not override TypeInfos anymore but create aliases, which should prevent this from happening.
>
> -- Ruben
>
>
>
>> After importing I get:
>> ----------------
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'int' with 'int32'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'ints' with 'int32[]'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'uint' with 'uint32'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'float' with 'float32'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'double' with 'float64'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'array' with 'float64[]'.
>> 0.300 [ Warning][TypekitRepository::Import] Overriding TypeInfo for
>> 'string' with 'string'.
>> 0.300 [ Warning][TypekitRepository::Import] Registering Type name
>> 'string' twice to the Orocos Type System: replacing.
>> 0.491 [ Warning][DeploymentComponent::loadComponents] Lowering
>> scheduler type to SCHED_OTHER for non-privileged users..
>> 0.492 [ ERROR  ][refreshProperties] Could not update, nor compose
>> Property float64[] max_vel: type mismatch, can not refresh with type
>> PropertyBag
>> 0.492 [ ERROR  ][refreshProperties] Could not update, nor compose
>> Property float64[] max_acc: type mismatch, can not refresh with type
>> PropertyBag
>> 0.492 [ ERROR  ][DeploymentComponent::configureComponents] Failed to
>> configure properties for component trajectoryGeneratorJntPos
>> 0.492 [ ERROR  ][Logger] Failed to configure a component: aborting kick-start.
>>   Switched to : Deployer
>> ----------------
>>
>> Please let me know how to solve this.
>>
>> Gajan
>>
>> FYI:
>> Deployer XML
>> --------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> &lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;
>> <properties>
>>       <simple name="Import"
>> type="string"><value>trajectory_generators<value><simple>
>>       <simple name="Import"
>> type="string"><value>rtt_ros_integration_geometry_msgs<value><simple>
>>
>>       <struct name="trajectoryGeneratorJntPos"
>> type="trajectory_generators::CartesianGeneratorPos">
>>               <struct name="Activity" type="PeriodicActivity">
>>                       <simple name="Period" type="double"><value>0.01<value><simple>
>>                       <simple name="Priority" type="short"><value>1<value><simple>
>>       <simple name="Scheduler" type="string"><value>ORO_SCHED_RT<value><simple>
>>               <struct>
>>               <simple name="AutoConf" type="boolean"><value>1<value><simple>
>>               <simple name="AutoStart" type="boolean"><value>1<value><simple>
>>               <simple name="PropertyFile"
>> type="string"><value>cpf/trajectoryGeneratorPos.cpf<value><simple>
>>       <struct>
>> <properties>
>>
>> trajectoryGeneratorPos.cpf
>> ---------------------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> &lt;!DOCTYPE properties SYSTEM "cpf.dtd"&gt;
>>

>> <properties>
>> <simple name="num_axes" type="ulong">
>> <description><description><value>7<value><simple>
>> <struct name="max_vel" type="array">  <description>The maximum
>> velocity in trajectory<description>
>>   <simple name="0" type="double"><description>Axis
>> 1<description><value>0.1<value><simple>
>>   <simple name="1" type="double"><description>Axis
>> 2<description><value>0.1<value><simple>
>>   <simple name="2" type="double"><description>Axis
>> 3<description><value>0.1<value><simple>
>>   <simple name="3" type="double"><description>Axis
>> 4<description><value>0.1<value><simple>
>>   <simple name="4" type="double"><description>Axis
>> 5<description><value>0.1<value><simple>
>>   <simple name="5" type="double"><description>Axis
>> 6<description><value>0.1<value><simple>
>>   <simple name="6" type="double"><description>Axis
>> 7<description><value>0.1<value><simple>
>> <struct>
>> <struct name="max_acc" type="array">  <description>The maximum
>> acceleration in trajectory<description>
>>   <simple name="0" type="double"><description>Axis
>> 1<description><value>1.0<value><simple>
>>   <simple name="1" type="double"><description>Axis
>> 2<description><value>1.0<value><simple>
>>   <simple name="2" type="double"><description>Axis
>> 3<description><value>1.0<value><simple>
>>   <simple name="3" type="double"><description>Axis
>> 4<description><value>1.0<value><simple>
>>   <simple name="4" type="double"><description>Axis
>> 5<description><value>1.0<value><simple>
>>   <simple name="5" type="double"><description>Axis
>> 6<description><value>1.0<value><simple>
>>   <simple name="6" type="double"><description>Axis
>> 7<description><value>1.0<value><simple>
>> <struct>
>> <properties>
>>
>>
>> furthermore,
>>
>> Changing
>> std::vector<double> v_max, a_max;
>> to
>> std::vector<std_msgs::Float64> v_max, a_max;
>>
>> or
>>
>> changing
>> double/array in properties
>> to
>> float64/float64[]
>> also did not help.
>> --
>> Orocos-Users mailing list
>> Orocos-Users [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>