[ros-users] Microstrain GX2 on arm

Steven Martin s34.martin at connect.qut.edu.au
Mon Nov 22 04:32:52 UTC 2010


 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.

I have attached the backtrace from gdb. Any ideas?

[ INFO] [1290400017.209869037]: Connected to IMU [         3DM-GX2] model [            4200] s/n [            4040] options [       5g 300d/s]
[ INFO] [1290400017.214690983]: Calibrating IMU gyros.
[ INFO] [1290400029.371214575]: Imu: calibration check succeeded: angular drift 0.285323 deg/msec < 5.729578 deg/msec
[ INFO] [1290400029.376402745]: IMU gyro calibration completed.
[ INFO] [1290400030.381717452]: Initializing IMU time with offset 0.000000.
[ INFO] [1290400030.398319596]: IMU sensor initialized.

Program received signal SIGILL, Illegal instruction.
allInOne<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > const&> (message=...)
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:182
182         stream.next(m.y);
(gdb) bt
#0  allInOne<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > const&> (message=...)
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:182
#1  write<ros::serialization::OStream, geometry_msgs::Quaternion_<std::allocator<void> > > (message=...)
    at /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:187
#2  serialize<geometry_msgs::Quaternion_<std::allocator<void> >, ros::serialization::OStream> (message=...)
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149
#3  next<geometry_msgs::Quaternion_<std::allocator<void> > > (message=...)
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:741
#4  allInOne<ros::serialization::OStream, sensor_msgs::Imu_<std::allocator<void> > const&> (message=...)
    at /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:315
#5  write<ros::serialization::OStream, sensor_msgs::Imu_<std::allocator<void> > > (message=...)
    at /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:323
#6  serialize<sensor_msgs::Imu_<std::allocator<void> >, ros::serialization::OStream> (message=...)
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149
#7  ros::serialization::serializeMessage<sensor_msgs::Imu_<std::allocator<void> > > (message=...)
    at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:809
#8  0x0002157c in operator()<ros::SerializedMessage, ros::SerializedMessage (*)(const sensor_msgs::Imu_<std::allocator<void> >&), boost::_bi::list0> (
    function_obj_ptr=<value optimized out>)
    at /usr/include/boost/bind/bind.hpp:236
#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() (
    function_obj_ptr=<value optimized out>)
    at /usr/include/boost/bind/bind_template.hpp:20
#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 (
    function_obj_ptr=<value optimized out>)
    at /usr/include/boost/function/function_template.hpp:132
#11 0x40366998 in boost::function0<ros::SerializedMessage>::operator() (
    this=0x65930, topic=<value optimized out>, serfunc=..., m=...)
    at /usr/include/boost/function/function_template.hpp:1013
#12 ros::TopicManager::publish(std::string const&, boost::function<ros::SerializedMessage ()()> const&, ros::SerializedMessage&) (this=0x65930,
    topic=<value optimized out>, serfunc=..., m=...)
    at /opt/ros/cturtle/ros/core/roscpp/src/libros/topic_manager.cpp:726
#13 0x403a7690 in ros::Publisher::publish(boost::function<ros::SerializedMessage ()()> const&, ros::SerializedMessage&) const (this=0xbed52fc8, serfunc=...,
    m=...) at /opt/ros/cturtle/ros/core/roscpp/src/libros/publisher.cpp:93
#14 0x00028828 in ros::Publisher::publish<sensor_msgs::Imu_<std::allocator<void> > > (this=0xbed52fc8, message=<value optimized out>)
    at /opt/ros/cturtle/ros/core/roscpp/include/ros/publisher.h:108
#15 0x0002aa14 in ImuNode::publish_datum (this=0xbed52b28)
    at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:331
#16 0x00020edc in ImuNode::spin (argc=Cannot access memory at address 0xdddd5
)
    at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:360
#17 main (argc=Cannot access memory at address 0xdddd5
) at /stacks/imu_drivers/microstrain_3dmgx2_imu/imu_node.cc:685


Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20101122/c2cfeda8/attachment-0002.html>


More information about the ros-users mailing list