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