[ros-users] Microstrain GX2 on arm

Daniel Stonier d.stonier at gmail.com
Mon Nov 22 09:10:18 UTC 2010


On 22 November 2010 17:17, Steven Martin <s34.martin at connect.qut.edu.au> 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 at code.ros.org [ros-users-bounces at code.ros.org] on
> behalf of Steven Martin [s34.martin at connect.qut.edu.au]
> Sent: Monday, 22 November 2010 2:32 PM
> To: ros-users at 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<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 at 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



More information about the ros-users mailing list