Try the patch from:
https://code.ros.org/trac/ros/ticket/2883
<
https://code.ros.org/trac/ros/ticket/2883>Josh
On Sun, Nov 21, 2010 at 8:32 PM, Steven Martin <
s34.martin@connect.qut.edu.au> wrote:
> 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
>
> _______________________________________________
> ros-users mailing list
> ros-users@code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>