On 22 November 2010 17:17, Steven Martin wrote: > This can be fixed by adding  -msoft-float to cmake flags. > > More details here > http://comments.gmane.org/gmane.linux.distributions.gumstix.general/54616 > > Also added to wiki for future reference. > > > Steve Martinn Not sure that is exactly going to be without side-effects for you though. Your performance will probably drop significantly if you move away from hardware floating point. I've also had some issues with the alignment stuff. Added my notes to the wiki just as some jots before sitting down and trying to tackle the issue properly when I get some time with some vodka in hand! Regards, Daniel. > ________________________________ > From: ros-users-bounces@code.ros.org [ros-users-bounces@code.ros.org] on > behalf of Steven Martin [s34.martin@connect.qut.edu.au] > Sent: Monday, 22 November 2010 2:32 PM > To: ros-users@code.ros.org > Subject: [ros-users] Microstrain GX2 on arm > >  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 geometry_msgs::Quaternion_ > 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 geometry_msgs::Quaternion_ > const&> (message=...) >     at > /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:182 > #1  write geometry_msgs::Quaternion_ > > (message=...) >     at > /stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/Quaternion.h:187 > #2  serialize >, > ros::serialization::OStream> (message=...) >     at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149 > #3  next > > (message=...) >     at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:741 > #4  allInOne sensor_msgs::Imu_ > const&> (message=...) >     at > /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:315 > #5  write sensor_msgs::Imu_ > > (message=...) >     at > /stacks/common_msgs/sensor_msgs/msg_gen/cpp/include/sensor_msgs/Imu.h:323 > #6  serialize >, > ros::serialization::OStream> (message=...) >     at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:149 > #7 > ros::serialization::serializeMessage >> > (message=...) >     at /opt/ros/cturtle/ros/core/roslib/include/ros/serialization.h:809 > #8  0x0002157c in operator() (*)(const sensor_msgs::Imu_ >&), boost::_bi::list0> ( >     function_obj_ptr=) >     at /usr/include/boost/bind/bind.hpp:236 > #9  boost::_bi::bind_t (*)(sensor_msgs::Imu_ > const&), > boost::_bi::list1 >> const> > >::operator() ( >     function_obj_ptr=) >     at /usr/include/boost/bind/bind_template.hpp:20 > #10 > boost::detail::function::function_obj_invoker0 ros::SerializedMessage (*)(sensor_msgs::Imu_ > const&), > boost::_bi::list1 >> const> > >, ros::SerializedMessage>::invoke ( >     function_obj_ptr=) >     at /usr/include/boost/function/function_template.hpp:132 > #11 0x40366998 in boost::function0::operator() ( >     this=0x65930, topic=, serfunc=..., m=...) >     at /usr/include/boost/function/function_template.hpp:1013 > #12 ros::TopicManager::publish(std::string const&, > boost::function const&, > ros::SerializedMessage&) (this=0x65930, >     topic=, serfunc=..., m=...) >     at /opt/ros/cturtle/ros/core/roscpp/src/libros/topic_manager.cpp:726 > #13 0x403a7690 in > ros::Publisher::publish(boost::function 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 > > > (this=0xbed52fc8, message=) >     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 > > -- Phone : +82-10-5400-3296 (010-5400-3296) Home: http://snorriheim.dnsdojo.com/ Yujin Robot: http://www.yujinrobot.com/ Embedded Ros : http://www.ros.org/wiki/eros Embedded Control Libraries: http://snorriheim.dnsdojo.com/redmine/wiki/ecl