<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr; font-family: Tahoma; color: rgb(0, 0, 0); font-size: 13px;">
<div style="">This can be fixed by adding  -msoft-float to cmake flags.<br>
<br>
More details here http://comments.gmane.org/gmane.linux.distributions.gumstix.general/54616<br>
<br>
Also added to wiki for future reference.<br>
<br>
<br>
Steve Martinn<br>
<br>
</div>
<div style="font-family: Times New Roman; color: rgb(0, 0, 0); font-size: 16px;">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF99749"><font color="#000000" face="Tahoma" size="2"><b>From:</b> ros-users-bounces@code.ros.org [ros-users-bounces@code.ros.org] on behalf of Steven Martin [s34.martin@connect.qut.edu.au]<br>
<b>Sent:</b> Monday, 22 November 2010 2:32 PM<br>
<b>To:</b> ros-users@code.ros.org<br>
<b>Subject:</b> [ros-users] Microstrain GX2 on arm<br>
</font><br>
</div>
<div></div>
<div>
<div style="direction: ltr; font-family: Tahoma; color: rgb(0, 0, 0); font-size: 13px;">
<div style=""> I have been trying to get the Microstrain Imu driver working on the Gumstix. The driver compiles and appears to connect to the imu successfully however as soon as I try to subscribe or echo the data from the /imu/data topic the driver crashes.<br>
<br>
I have attached the backtrace from gdb. Any ideas?<br>
<br>
[ INFO] [1290400017.209869037]: Connected to IMU [         3DM-GX2] model [            4200] s/n [            4040] options [       5g 300d/s]<br>
[ INFO] [1290400017.214690983]: Calibrating IMU gyros.<br>
[ INFO] [1290400029.371214575]: Imu: calibration check succeeded: angular drift 0.285323 deg/msec < 5.729578 deg/msec<br>
[ INFO] [1290400029.376402745]: IMU gyro calibration completed.<br>
[ INFO] [1290400030.381717452]: Initializing IMU time with offset 0.000000.<br>
[ INFO] [1290400030.398319596]: IMU sensor initialized.<br>
<br>
Program received signal SIGILL, Illegal instruction.<br>
allInOne<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > const&> (message=...)<br>
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:182<br>
182         stream.next(m.y);<br>
(gdb) bt<br>
#0  allInOne<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > const&> (message=...)<br>
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:182<br>
#1  write<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > > (message=...)<br>
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:187<br>
#2  serialize<geometry_msgs::Quaternion_<std::allocator<void> >, ros::serialization::OStream> (message=...)<br>
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149<br>
#3  next<geometry_msgs::Quaternion_<std::allocator<void> > > (message=...)<br>
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:741<br>
#4  allInOne<ros::serialization::OStream, sensor_msgs::Imu_<std::allocator<void> > const&> (message=...)<br>
    at /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:315<br>
#5  write<ros::serialization::OStream, sensor_msgs::Imu_<std::allocator<void> > > (message=...)<br>
    at /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:323<br>
#6  serialize<sensor_msgs::Imu_<std::allocator<void> >, ros::serialization::OStream> (message=...)<br>
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149<br>
#7  ros::serialization::serializeMessage<sensor_msgs::Imu_<std::allocator<void> > > (message=...)<br>
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:809<br>
#8  0x0002157c in operator()<ros::SerializedMessage, ros::SerializedMessage (*)(const sensor_msgs::Imu_<std::allocator<void> >&), boost::_bi::list0> (<br>
    function_obj_ptr=<value optimized out>)<br>
    at /usr/include/boost/bind/bind.hpp:236<br>
#9  boost::_bi::bind_t<ros::SerializedMessage, ros::SerializedMessage (*)(sensor_msgs::Imu_<std::allocator<void> > const&), boost::_bi::list1<boost::reference_wrapper<sensor_msgs::Imu_<std::allocator<void> > const> > >::operator() (<br>
    function_obj_ptr=<value optimized out>)<br>
    at /usr/include/boost/bind/bind_template.hpp:20<br>
#10 boost::detail::function::function_obj_invoker0<boost::_bi::bind_t<ros::SerializedMessage, ros::SerializedMessage (*)(sensor_msgs::Imu_<std::allocator<void> > const&), boost::_bi::list1<boost::reference_wrapper<sensor_msgs::Imu_<std::allocator<void> > const>
 > >, ros::SerializedMessage>::invoke (<br>
    function_obj_ptr=<value optimized out>)<br>
    at /usr/include/boost/function/function_template.hpp:132<br>
#11 0x40366998 in boost::function0<ros::SerializedMessage>::operator() (<br>
    this=0x65930, topic=<value optimized out>, serfunc=..., m=...)<br>
    at /usr/include/boost/function/function_template.hpp:1013<br>
#12 ros::TopicManager::publish(std::string const&, boost::function<ros::SerializedMessage ()()> const&, ros::SerializedMessage&) (this=0x65930,
<br>
    topic=<value optimized out>, serfunc=..., m=...)<br>
    at /opt/ros/cturtle/ros/core/roscpp/src/libros/topic_manager.cpp:726<br>
#13 0x403a7690 in ros::Publisher::publish(boost::function<ros::SerializedMessage ()()> const&, ros::SerializedMessage&) const (this=0xbed52fc8, serfunc=...,
<br>
    m=...) at /opt/ros/cturtle/ros/core/roscpp/src/libros/publisher.cpp:93<br>
#14 0x00028828 in ros::Publisher::publish<sensor_msgs::Imu_<std::allocator<void> > > (this=0xbed52fc8, message=<value optimized out>)<br>
    at /opt/ros/cturtle/ros/core/roscpp/include/ros/publisher.h:108<br>
#15 0x0002aa14 in ImuNode::publish_datum (this=0xbed52b28)<br>
    at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:331<br>
#16 0x00020edc in ImuNode::spin (argc=Cannot access memory at address 0xdddd5<br>
)<br>
    at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:360<br>
#17 main (argc=Cannot access memory at address 0xdddd5<br>
) at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:685<br>
 <br>
<br>
Steve<br>
</div>
</div>
</div>
</div>
</div>
</body>
</html>