Try the patch from: <a href="https://code.ros.org/trac/ros/ticket/2883" target="_blank">https://code.ros.org/trac/ros/ticket/2883</a><div><br></div><div><a href="https://code.ros.org/trac/ros/ticket/2883" target="_blank"></a>Josh<br>

<br><div class="gmail_quote">On Sun, Nov 21, 2010 at 8:32 PM, Steven Martin <span dir="ltr"><<a href="mailto:s34.martin@connect.qut.edu.au" target="_blank">s34.martin@connect.qut.edu.au</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<div style="direction:ltr;font-family:Tahoma;color:rgb(0, 0, 0);font-size:13px">
<div> 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>

<br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br>
</div>