ndcurves
ndcurves copied to clipboard
Troubles with constraints on arm64
Hi, I am having issues creating a bezier curve with constraints.
- the same code works on my amd64 laptop with no issues.
- without the constraints, the curve is also constructed with no issues.
Some info + how to reproduce below:
pr_admin@TX2-0001:~$ apt list --installed | grep eigen
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libeigen3-dev/bionic,now 3.3.4-4 all [installed,automatic]
ros-melodic-eigenpy/bionic,now 2.6.9-1bionic.20211103.062714 arm64 [installed]
pr_admin@TX2-0001:~$ python
Python 2.7.17 (default, Feb 27 2021, 15:10:58)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> from ndcurves import bezier, curve_constraints
>>>
>>> c = curve_constraints()
>>> c.init_vel = np.array([0], dtype=np.float32)
>>> c.end_vel = np.array([0], dtype=np.float32)
>>>
>>> b = bezier(np.array([[-0.00017044230976507124, -0.6842019792059091]], dtype=np.float32), c, 0.0, 1.0)
python: /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h:110: Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::Matrix<double, -1, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> > >, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> > >; RhsType = const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> >, const Eigen::Matrix<double, -1, 1> >; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Lhs = Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::Matrix<double, -1, 1>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> > >, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> > >; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Rhs = Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, -1, 1> >, const Eigen::Matrix<double, -1, 1> >]: Assertion `aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()' failed.
Aborted (core dumped)
pr_admin@TX2-0001:~$ cd repos/ndcurves/
pr_admin@TX2-0001:~/repos/ndcurves$ (master)git log
commit e2b82cab310ac3f629981024c484d6aa349ab112 (HEAD -> master, tag: v1.1.0, origin/release/1.1.0, origin/master, origin/HEAD)
Author: Guilhem Saurel <[email protected]>
Date: Wed Apr 21 14:28:04 2021 +0200
v1.1.0
Thank you for your support!
Hi this is an agressive error message I ll agree but the issue if that the dimension of the constraints do not match on the acceleration and jerks quantities. What I don't understand is that you should get a different error:
"ValueError: All the control points must have the same dimension."
Can you try setting all constraints to the same dimensions
Thanks @stonneau for your reply.
If you mean
c.init_vel = np.array([[0]], dtype=np.float32)
c.end_vel = np.array([[0]], dtype=np.float32)
I tried that already, I get the same result.
Could the ROS eigenpy verison be the culprit? I did not manage to install the robotpkg eigenpy from source.
@Cdfghglz It might, if the fix is newer than tag 2.6.9. You can uninstall or unsource ROS to verify that hypothesis. If there is a newer EigenPy version, happy to make a new release
However, I'd recommend you to run your python interpreter with gdb and then backtrace to the actual failure where the rhs.cols()==lhs.cols() exception is triggered. This should help diagnose.
Thanks @wxmerkt ,
If I do not source the ROS, there is no eigenpy on the arm system at all. On the amd I compare against I have robotpkg's 2.6.9 installed.
Otherwise here the backtrace:
(gdb) backtrace
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x0000007fb7e7e8d4 in __GI_abort () at abort.c:79
#2 0x0000007fb7e76b84 in __assert_fail_base (fmt=0x7fb7f71c10 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fb602f548 "aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()",
file=file@entry=0x7fb602f510 "/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h", line=line@entry=110,
function=function@entry=0x7fb603bab0 <Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&)::__PRETTY_FUNCTION__> "Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::CwiseBinaryOp<E"...) at assert.c:92
#3 0x0000007fb7e76c04 in __GI___assert_fail (assertion=0x7fb602f548 "aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()", file=0x7fb602f510 "/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h",
line=110,
function=0x7fb603bab0 <Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&)::__PRETTY_FUNCTION__> "Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::CwiseBinaryOp<E"...) at assert.c:101
#4 0x0000007fb5c6da98 in Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#5 0x0000007fb5c447ec in Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, Eigen::internal::traits<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> >::Scalar>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const Eigen::MatrixBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> >::operator+<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> >(Eigen::MatrixBase<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> > const&) const ()
from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#6 0x0000007fb5c1a720 in std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >::add_constraints<__gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > > >(__gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > >, __gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > >, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#7 0x0000007fb5becd84 in ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >::bezier_curve<__gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > > >(__gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > >, __gnu_cxx::__normal_iterator<Eigen::Matrix<double, -1, 1, 0, -1, 1>*, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > > >, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double, double) ()
from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#8 0x0000007fb5bc2e48 in ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >* ndcurves::wrapBezierConstructorConstraintsTemplate<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >, Eigen::Matrix<double, -1, -1, 0, -1, -1>, std::vector<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::aligned_allocator<Eigen::Matrix<double, -1, 1, 0, -1, 1> > >, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > >(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double) ()
from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#9 0x0000007fb5ba5974 in ndcurves::wrapBezierConstructorBoundsConstraints(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#10 0x0000007fb5fb947c in _object* boost::python::detail::invoke<boost::python::detail::install_holder<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >*>, ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >* (*)(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double), boost::python::arg_from_python<Eigen::Matrix<double, -1, -1, 0, -1, -1> const&>, boost::python::arg_from_python<ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&>, boost::python::arg_from_python<double>, boost::python::arg_from_python<double> >(boost::python::detail::invoke_tag_<false, false>, boost::python::detail::install_holder<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >*> const&, ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >* (*&)(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double), boost::python::arg_from_python<Eigen::Matrix<double, -1, -1, 0, -1, -1> const&>&, boost::python::arg_from_python<ndcurves::curve_constraints<Eig---Type <return> to continue, or q <return> to quit---
en::Matrix<double, -1, 1, 0, -1, 1> > const&>&, boost::python::arg_from_python<double>&, boost::python::arg_from_python<double>&) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#11 0x0000007fb5f897ec in boost::python::detail::caller_arity<4u>::impl<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >* (*)(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double), boost::python::detail::constructor_policy<boost::python::default_call_policies>, boost::mpl::vector5<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >*, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double> >::operator()(_object*, _object*) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#12 0x0000007fb5f48b3c in boost::python::objects::signature_py_function_impl<boost::python::detail::caller<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >* (*)(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double), boost::python::detail::constructor_policy<boost::python::default_call_policies>, boost::mpl::vector5<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >*, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double> >, boost::mpl::v_item<void, boost::mpl::v_item<boost::python::api::object, boost::mpl::v_mask<boost::mpl::vector5<ndcurves::bezier_curve<double, double, true, Eigen::Matrix<double, -1, 1, 0, -1, 1> >*, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, ndcurves::curve_constraints<Eigen::Matrix<double, -1, 1, 0, -1, 1> > const&, double, double>, 1>, 1>, 1> >::operator()(_object*, _object*) () from /usr/local/lib/python2.7/dist-packages/ndcurves/ndcurves.so
#13 0x0000007fb42be8f0 in boost::python::objects::function::call(_object*, _object*) const () from /usr/lib/aarch64-linux-gnu/libboost_python-py27.so.1.65.1
#14 0x0000007fb42beb04 in ?? () from /usr/lib/aarch64-linux-gnu/libboost_python-py27.so.1.65.1
#15 0x0000007fb42c5524 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const () from /usr/lib/aarch64-linux-gnu/libboost_python-py27.so.1.65.1
#16 0x0000007fb453f4f8 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<eigenpy::Exception, void (*)(eigenpy::Exception const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(eigenpy::Exception const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) () from /opt/ros/melodic/lib/libeigenpy.so
#17 0x0000007fb42c5260 in boost::python::handle_exception_impl(boost::function0<void>) () from /usr/lib/aarch64-linux-gnu/libboost_python-py27.so.1.65.1
#18 0x0000007fb42bb8e4 in ?? () from /usr/lib/aarch64-linux-gnu/libboost_python-py27.so.1.65.1
#19 0x0000005555634488 in ?? ()
#20 0x00000055556342c0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
And some vars:
(gdb) select-frame 0
(gdb) info locals
set = {__val = {0, 549755805696, 549755805696, 549755805648, 18446743528248704976, 549755805184, 549683298304, 366512460096, 366512461597, 549755805376, 548546275376, 548547457024, 548547824592, 548514493712,
110, 0}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
(gdb) select-frame 1
(gdb) info locals
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x6e6f697472657373, sa_sigaction = 0x6e6f697472657373}, sa_mask = {__val = {7018332423111139360, 549755805712, 548546243456, 548547813376, 548547271696,
548514493712, 110, 548514493768, 548483623856, 5, 0, 548547458176, 4616194021471028225, 549755805712, 548546243456, 548547813376}}, sa_flags = -1209570552,
sa_restorer = 0x7fb603bab0 <Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&)::__PRETTY_FUNCTION__>}
sigs = {__val = {32, 0 <repeats 15 times>}}
(gdb) info args
No arguments.
(gdb) select-frame 2
(gdb) info locals
str = 0x5555d85140 "\260\\\225UU"
total = 4096
(gdb) info args
fmt = 0x7fb7f71c10 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"
assertion = 0x7fb602f548 "aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()"
file = 0x7fb602f510 "/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h"
line = 110
function = 0x7fb603bab0 <Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&)::__PRETTY_FUNCTION__> "Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::CwiseBinaryOp<E"...
(gdb) select-frame 3
(gdb) info locals
No locals.
(gdb) info args
assertion = 0x7fb602f548 "aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()"
file = 0x7fb602f510 "/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h"
line = 110
function = 0x7fb603bab0 <Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const>::CwiseBinaryOp(Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const> const&, Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const, Eigen::Matrix<double, -1, 1, 0, -1, 1> const> const&, Eigen::internal::scalar_sum_op<double, double> const&)::__PRETTY_FUNCTION__> "Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::CwiseBinaryOp<E"...
(gdb) select-frame 4
(gdb) info locals
No symbol table info available.
(gdb) info args
No symbol table info available.
Sorry to come back late on this. You need to set the proper value for all parameters unfortunately with the current API, ie acceleration and jerk as well as per my initial message. Have you tried this? It s not clear in your answer sorry (ie all variables for initial and terminal values have been assigned the same dimension)
Ah now I understand your first message @stonneau. After setting the accelerations the code runs properly. Thanks for the help.
To me this is resolved, unless you want to do something about the error message.
Ok, thanks. Unfortunately I don't know how to reproduce the error on my configuration at the moment, I ll just leave this open for now