[Bug 841] New: assigning values of complex types in state machines and scripts fails

http://bugs.orocos.org/show_bug.cgi?id=841

Summary: assigning values of complex types in state machines
and scripts fails
Product: Toolchain
Version: 2.3.0
Platform: All
OS/Version: All
Status: NEW
Severity: blocker
Priority: P3
Component: RTT
AssignedTo: orocos-dev [..] ...
ReportedBy: tinne [dot] delaet [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

Assign a value to a complex type (geometry_msgs.PoseStamped) fails in both
scripting and a state machine.
When I try the same in the taskbrowser however, there is no problem.

Sample code:
var geometry_msgs.PoseStamped pose_stamped

initial state StartRobotState {
entry {
print.ln("entry ended")
pose_stamped.pose.position.x = float64(0.1)
pose_stamped.pose.position.y = float64(0.2)
pose_stamped.pose.position.z = float64(0.3)
pose_stamped.pose.orientation.x = 0.0
pose_stamped.pose.orientation.y = 0.1
pose_stamped.pose.orientation.z = 0.2
pose_stamped.pose.orientation.w = 0.1
}
exit {
print.ln("exit")
}
}

when checking in the taskbrowser the values of pose_stamped are still all zero.
Executing the same code in the taskbrowser works just fine.

Tinne en Ruben

[Bug 841] assigning values of complex types in state machines an

http://bugs.orocos.org/show_bug.cgi?id=841

Tinne De Laet <tinne [dot] delaet [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |INVALID

--- Comment #3 from Tinne De Laet <tinne [dot] delaet [..] ...> 2011-03-14 15:03:24 CET ---
I don't know exactly what went wrong before, but now everything is working just
fine after a clean install.
Sorry for the invalid bug and thanks for testing Peter.

Tinne

[Bug 841] assigning values of complex types in state machines an

http://bugs.orocos.org/show_bug.cgi?id=841

Peter Soetens <peter [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |peter [..] ...

--- Comment #2 from Peter Soetens <peter [..] ...> 2011-03-11 18:07:31 CET ---
(In reply to comment #0)
> Assign a value to a complex type (geometry_msgs.PoseStamped) fails in both
> scripting and a state machine.
> When I try the same in the taskbrowser however, there is no problem.
>
> Sample code:
> var geometry_msgs.PoseStamped pose_stamped
>
> initial state StartRobotState {
> entry {
> print.ln("entry ended")
> pose_stamped.pose.position.x = float64(0.1)
> pose_stamped.pose.position.y = float64(0.2)
> pose_stamped.pose.position.z = float64(0.3)
> pose_stamped.pose.orientation.x = 0.0
> pose_stamped.pose.orientation.y = 0.1
> pose_stamped.pose.orientation.z = 0.2
> pose_stamped.pose.orientation.w = 0.1
> }
> exit {
> print.ln("exit")
> }
> }
>
> when checking in the taskbrowser the values of pose_stamped are still all zero.
> Executing the same code in the taskbrowser works just fine.
>
> Tinne en Ruben

I tested this with diamondback + orocos_toolchain_ros stack in that package
with this test program:

import("/opt/ros/diamondback/stacks/orocos_toolchain_ros/rtt/install/lib/orocos/")
import("ocl")
import("rtt_ros_integration_geometry_msgs")
require("print");

var PoseStamped psg
psg.pose.position.x = 3
print.ln( "Pose x is: " + psg.pose.position.x )

program pp {
var PoseStamped psp
psp.pose.position.x = 3
print.ln( "Pose x is: " + psp.pose.position.x )
}

pp.start()

StateMachine SM {
var PoseStamped psp
initial state IN {
entry {
psp.pose.position.x = 3
print.ln( "Pose x is: " + psp.pose.position.x )
}
}

final state FI {}
}

RootMachine SM sm

sm.activate()
sm.start()

and all cases work. I'll try to retest with 2.3 now.

PS: the orocos_toolchain_ros segfaults when using debian packages because it
fails to import the rtt and ocl typekits, while the
rtt_ros_integration_primitives package depends on that. You should/must set the
packages paths to /opt/ros/diamondback/.../rtt/install/lib/orocos in your CMake
configuration when building debian packages for that stack.

[Bug 841] assigning values of complex types in state machines an

http://bugs.orocos.org/show_bug.cgi?id=841

Peter Soetens <peter [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED

--- Comment #1 from Peter Soetens <peter [..] ...> 2011-03-11 16:41:00 CET ---
(In reply to comment #0)
> Assign a value to a complex type (geometry_msgs.PoseStamped) fails in both
> scripting and a state machine.
> When I try the same in the taskbrowser however, there is no problem.
>
> Sample code:
> var geometry_msgs.PoseStamped pose_stamped
>
> initial state StartRobotState {
> entry {
> print.ln("entry ended")
> pose_stamped.pose.position.x = float64(0.1)
> pose_stamped.pose.position.y = float64(0.2)
> pose_stamped.pose.position.z = float64(0.3)
> pose_stamped.pose.orientation.x = 0.0
> pose_stamped.pose.orientation.y = 0.1
> pose_stamped.pose.orientation.z = 0.2
> pose_stamped.pose.orientation.w = 0.1
> }
> exit {
> print.ln("exit")
> }
> }
>
> when checking in the taskbrowser the values of pose_stamped are still all zero.
> Executing the same code in the taskbrowser works just fine.
>
> Tinne en Ruben

Which ROS version and toolchain_ros version/branch are you using ?

Is this a regression or is it the first time you try it ?

Peter