Error creating object Voxelgrid [on Turtlebot]

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Error creating object Voxelgrid [on Turtlebot]

shiweist
Good day pcl-users,

I am writing a program using PCL for Turtlebot. It all went well when I tested the program on my computer. However, when I move it to the turtlebot, the program compiled but get an "Program received signal SIGILL, Illegal instruction" when it executes the line:
pcl::VoxelGrid<PointType> sor;

I can't tell what happened. The software versions on two computers are almost identical: ubuntu 12.04, ROS Hydro, PCL 1.7 (comes with ROS) and gcc 4.1.6. Did I miss anything? This kind of error is beyond my skill to fix. I have been stick here for 2 days.

Here is the backtrace given by gdb:
#0  0x08112f62 in _mm_set_epi32 (__q0=0, __q1=0, __q2=0, __q3=0) at /usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:586
#1  _mm_set1_epi32 (__A=0) at /usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:626
#2  Eigen::internal::pset1<long long __vector>(Eigen::internal::unpacket_traits<long long __vector>::type const&) (from=@0xbfffd660: 0)
    at /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h:115
#3  0x081586a9 in Eigen::internal::scalar_constant_op<int>::packetOp<int> (this=0xbfffd660) at /usr/include/eigen3/Eigen/src/Core/Functors.h:505
#4  0x08156388 in Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >::packet<0> (this=0xbfffd65c, row=0, col=0)
    at /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h:90
#5  0x08154261 in Eigen::DenseCoeffsBase<Eigen::Matrix<int, 4, 1, 0, 4, 1>, 1>::copyPacket<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >, 1, 0> (this=0xbfffd770, row=0, col=0, other=...) at /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:534
#6  0x0815128c in Eigen::DenseCoeffsBase<Eigen::Matrix<int, 4, 1, 0, 4, 1>, 1>::copyPacketByOuterInner<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >, 1, 0> (this=0xbfffd770, outer=0, inner=0, other=...) at /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:561
#7  0x0814d0a1 in Eigen::internal::assign_innervec_CompleteUnrolling<Eigen::Matrix<int, 4, 1, 0, 4, 1>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >, 0, 4>::run (dst=..., src=...) at /usr/include/eigen3/Eigen/src/Core/Assign.h:219
#8  0x08148946 in Eigen::internal::assign_impl<Eigen::Matrix<int, 4, 1, 0, 4, 1>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >, 3, 2>::run (dst=..., src=...) at /usr/include/eigen3/Eigen/src/Core/Assign.h:439
#9  0x081420e9 in Eigen::DenseBase<Eigen::Matrix<int, 4, 1, 0, 4, 1> >::lazyAssign<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> > >
    (this=0xbfffd770, other=...) at /usr/include/eigen3/Eigen/src/Core/Assign.h:511
#10 0x08139142 in Eigen::PlainObjectBase<Eigen::Matrix<int, 4, 1, 0, 4, 1> >::lazyAssign<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> > > (this=0xbfffd770, other=...) at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:385
#11 0x0812d43d in Eigen::internal::assign_selector<Eigen::Matrix<int, 4, 1, 0, 4, 1>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> >, false, false>::run (dst=..., other=...) at /usr/include/eigen3/Eigen/src/Core/Assign.h:534
#12 0x08124337 in Eigen::PlainObjectBase<Eigen::Matrix<int, 4, 1, 0, 4, 1> >::_set_noalias<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1, 0, 4, 1> > > (this=0xbfffd770, other=...) at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:591
#13 0x0811b488 in Eigen::Matrix<int, 4, 1, 0, 4, 1>::Matrix<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<int>, Eigen::Matrix<int, 4, 1> > > (this=0xbfffd770, other=...)
    at /usr/include/eigen3/Eigen/src/Core/Matrix.h:294
#14 0x0811fc12 in pcl::VoxelGrid<pcl::PointXYZRGB>::VoxelGrid (this=0xbfffd710) at /usr/include/pcl-1.7/pcl/filters/voxel_grid.h:208

Any help is appreciated.

Thank you,
Vy

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: Error creating object Voxelgrid [on Turtlebot]

Jochen Sprickerhof
Administrator
Hi Vy,

* Thế Vỹ Hồng <[hidden email]> [2014-01-30 10:52]:
> I am writing a program using PCL for Turtlebot. It all went well when I
> tested the program on my computer. However, when I move it to the
> turtlebot, the program compiled but get an "Program received signal SIGILL,
> Illegal instruction" when it executes the line:

This usually means that you are using compiler flags not supported by
the Turtlebot CPU. Try recompiling your project on the Turtlebot.

Cheers Jochen

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Error creating object Voxelgrid [on Turtlebot]

shiweist
Hi Jochen,
On Thu, Jan 30, 2014 at 5:18 PM, Jochen Sprickerhof <[hidden email]> wrote:
This usually means that you are using compiler flags not supported by
the Turtlebot CPU. Try recompiling your project on the Turtlebot.
 
Thanks for your recommendation but I did not add any compiler flag saves the ones used by catkin. And I did recompile the file on turtlebot, everything went well with compiling, no error or warning. When I tried to substitute VoxelGrid with UniformSampling, I still get the same kind of error, they both lead to "/usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:586" and get Illegal Instruction.

Cheers

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: Error creating object Voxelgrid [on Turtlebot]

shiweist
An update for my problem in case anyone bumps into the same problem later. Jochen was right. I set wrong flags in CMakeLists.txt that makes the program goes ill.
These are the lines that caused problem:
link_directories (${PCL_LIBRARIES_DIRS})
link_directories (${PCL_DEFINITIONS})



On Fri, Jan 31, 2014 at 1:17 PM, Thế Vỹ Hồng <[hidden email]> wrote:
Hi Jochen,
On Thu, Jan 30, 2014 at 5:18 PM, Jochen Sprickerhof <[hidden email]> wrote:
This usually means that you are using compiler flags not supported by
the Turtlebot CPU. Try recompiling your project on the Turtlebot.
 
Thanks for your recommendation but I did not add any compiler flag saves the ones used by catkin. And I did recompile the file on turtlebot, everything went well with compiling, no error or warning. When I tried to substitute VoxelGrid with UniformSampling, I still get the same kind of error, they both lead to "/usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:586" and get Illegal Instruction.

Cheers


_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users