disconnected from robot when using KDL::Vector double initialization
Submitted by maximvochten on Thu, 2013-05-02 10:36 |
Hi all,
In my application I am using the ROS driver package 'ardrone_autonomy'
together with Orocos/iTaSC for controlling the AR.Drone quadrotor robot
wireless.
I would like to report a disconnection issue that occurs during the
execution of my program. This disconnection between the off board
computer and the quadrotor lasts for about 1 second and only happens
once during the entire lifetime of the program. There is no indication
of any error.
The problem was traced down to the following initialization of a
KDL::Frame:
KDL::Frame frame.p = KDL::Vector(0,0, (double) 1.2);
causes the disconnection, but:
KDL::Frame frame.p = KDL::Vector(0,0, (float) 1.2);
solved the issue completely for me.
The initialized frame undergoes a whole series of calculations, until
ultimately it is transformed in a ROS message type
'geometry_msgs::Twist' which is sent to the quadrotor. The disconnection
only occurs the first time this message is sent.
This issue could possibly indicate an error in the KDL typekit.
kind regards,
Maxim
disconnected from robot when using KDL::Vector double initializa
Hi Maxim,
On Thu, May 2, 2013 at 12:36 PM, Maxim Vochten <vochtenmaxim [..] ...>wrote:
> Hi all,
>
>
> In my application I am using the ROS driver package 'ardrone_autonomy'
> together with Orocos/iTaSC for controlling the AR.Drone quadrotor robot
> wireless.
>
> I would like to report a disconnection issue that occurs during the
> execution of my program. This disconnection between the off board
> computer and the quadrotor lasts for about 1 second and only happens
> once during the entire lifetime of the program. There is no indication
> of any error.
>
> The problem was traced down to the following initialization of a
> KDL::Frame:
>
> KDL::Frame frame.p = KDL::Vector(0,0, (double) 1.2);
>
> causes the disconnection, but:
>
> KDL::Frame frame.p = KDL::Vector(0,0, (float) 1.2);
>
> solved the issue completely for me.
>
> The initialized frame undergoes a whole series of calculations, until
> ultimately it is transformed in a ROS message type
> 'geometry_msgs::Twist' which is sent to the quadrotor. The disconnection
> only occurs the first time this message is sent.
>
> This issue could possibly indicate an error in the KDL typekit.
>
Unlikely. The C++ part of KDL is independent of the typekit.
It probably indicates a bug in your setup, for example using old/outdated
binaries or a division by zero/use of nan somewhere.
You should try to run your deployer with valgrind to see if it reports any
'uninitialized values' or other invalid reads.
Peter