trajectory_filter_server crash using <robotname>_arm_navigation autogenerated by wizard
Hi all,
Using the Planning Description Configuration Wizard, I autogenerated a robotname_arm_navigation package for my robot. However, when I go to test it in the visualizer, the "Filter Trajectory" command always causes the trajectory_filter_server to crash:
[ERROR] [1322552297.034016315]: Service call to filter trajectory failed.`
Alternately,
[ INFO] [1322549920.624581727, 1322549920.620624065]: Problem with trajectory filter
[trajectory_filter_server-7] process has died [pid 26444, exit code -11].
Digging deeper in gdb,
trajectory_filter_server: /usr/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr<T>::operator->() const [with T = urdf::JointLimits]: Assertion `px != 0' failed.
A backtrace yields:
#0 0x00007ffff5f0d3a5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff5f10b0b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff5f05d4d in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x000000000041c924 in boost::shared_ptr<urdf::JointLimits>::operator-> (this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:418
#4 0x000000000041f35d in operator-> (this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:418
#5 trajectory_filter_server::TrajectoryFilterServer::getLimits (this=0x7fffffffd100, trajectory=..., limits_out=...)
at /tmp/buildd/ros-electric-arm-navigation-1.0.7/debian/ros-electric-arm-navigation/opt/ros/electric/stacks/arm_navigation/trajectory_filter_server/src/trajectory_filter_server.cpp:151
#6 0x0000000000420f9e in trajectory_filter_server::TrajectoryFilterServer::filterConstraints (this=0x7fffffffd100, req=..., resp=...)
at /tmp/buildd/ros-electric-arm-navigation-1.0.7/debian/ros-electric-arm-navigation/opt/ros/electric/stacks/arm_navigation/trajectory_filter_server/src/trajectory_filter_server.cpp:109
Going to line 151 of arm_navigation/trajectory_filter_server/src/trajectory_filter_server.cpp
,
limits.max_velocity = urdf_joint->limits->velocity;
limits.has_velocity_limits = true;
It seems like urdf_joint->limits
is a boost::shared_ptr
that has not been initialized. Does anyone know why this is happening even for the autogenerated arm_navigation package?
For more background, I've also tested it in my system with the robotname_arm_navigation.launch launchfile. Passing in a desired pose, it once again crashes at line 151. Furthermore, I autogenerated an arm_navigation package for the PR2 using the wizard as well, and it has the exact same problem. That should rule out my URDF file as a potential cause.
Thanks in advance!