Code Monkey home page Code Monkey logo

strands_perception_people's Introduction

strands_perception_people

Please see perception_people_launch/README.md for start-up information.

When using the default STRANDS perception pipeline, please cite:

@inproceedings{dondrup2015tracking,
  title={Real-time multisensor people tracking for human-robot spatial interaction},
  author={Dondrup, Christian and Bellotto, Nicola and Jovan, Ferdian and Hanheide, Marc},
  publisher={ICRA/IEEE},
  booktitle={Workshop on Machine Learning for Social Robotics at International Conference on Robotics and Automation (ICRA)},
  year={2015}
}

This package contains the people perception pipeline. It is comprised of two detectors:

Depricated and moved to attic branch:

  • Ground HOG feature detector

Two trackers:

  • Bayesian People Tracker
  • Pedestrian Tracker (currently depricated)

And a lot of utility and helper nodes. See https://www.youtube.com/watch?v=zdnvhQU1YNo for a concise explanation.

Please refere to the READMEs in the specific packages.

strands_perception_people's People

Contributors

cdondrup avatar gestom avatar hawesie avatar jailander avatar khan1988 avatar kunzel avatar lucasb-eyer avatar marc-hanheide avatar mfernandezcarmona avatar pandoro avatar raresambrus avatar sbreuers avatar scosar avatar semeyerz avatar strands-jenkins avatar urafi avatar vonovak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

strands_perception_people's Issues

Create launch file for ground plane

The ground plane package is still missing a launch file. Also the launch files in strands_perception_people_launch have to be adapted. In those launch files you also have to specify a different parameter for the special config file the ground plane uses because at the moment all nodes use the config file in upper_body_detector.

Documentation

Document:

  • config parameters in config file
  • produced messages/data
  • general workflow of nodes

Running standalone?

I'm trying to run the people tracker standalone (a PrimeSense stuck on a box). I am launching the following files:

roslaunch openni_wrapper main.launch camera:=head_xtion publish_tf:=true
roslaunch strands_perception_people_launch pedestrian_tracker_standalone.launch camera:=head_xtion

But when I subscribe to the output topics (pose array, image etc.) I don't see any output. There is also nothing printed in the terminal once the tracker nodes are created. Is this launch file up to date with the new changes?

Create compliant package.xml files

I would of course volunteer as a maintainer for all the packages and author for those I wrote. Regarding the people tracker and upper body detector, does @dennismitzel still want to be involved and are there other authors that have to be mentioned? @lucasb-eyer, it would be nice if you could find that out.
Also #84 needs to be answered first.

Produced images cannot be displayed any more.

image_view prints following error message: [ERROR] [1382610353.731269057]: Unable to convert 'bgr8' image to bgr8: 'Image is wrongly formed: height > step or 480 > 0' when trying to stream the upper_body_detector, pedestrian_tracking, and ground_hog image.
Did anyone come across this before?

Tracking ID in Logging.msg

The tracking ID that is used at the top level in the Logging message should also be used for the pedestrian tracking message stored inside the logging message. Otherwise the data cannot be easily associated if several people are tracked.

@cdondrup do you have time to look into it? Or should I make the change and make a pull request?

Visual odometry "breaks" when kinect gets too close to something

I just observed that the visual odometry only produces nan values once the kinect gets too close to something, e.g. the wall while charging. This does not recover on its own. However, if you restart it in the same position, it seems to work fine until it gets too close to something again.
Needs some kind of recovery behaviour.

Upper body detector crashes quite regularly in simulation

The people detection works awesome in simulation!
human_tracking_in_morse
But unfortunately, the upper body detector crashes often without any notice. The mentioned log file also does not exist. Any idea, what could cause the problem? It often happens when the human is not in sight any more.

core service [/rosout] found
process[odom2visual-1]: started with pid [3401]
process[ground_plane-2]: started with pid [3417]
process[upper_body_detector-3]: started with pid [3440]
process[pedestrian_tracking-4]: started with pid [3515]
process[pedestrian_localisation-5]: started with pid [3631]
process[save_people_locations-6]: started with pid [3694]
[INFO] [WallTime: 1406106065.266644] Waiting for services...
[INFO] [WallTime: 1406106065.280372] Done
[upper_body_detector-3] process has died [pid 3440, exit code -11, cmd /home/lars/catkin_ws/devel/lib/strands_upper_body_detector/upper_body_detector __name:=upper_body_detector __log:=/home/lars/.ros/log/c12c7bb8-1240-11e4-b8af-f01faf28c879/upper_body_detector-3.log].
log file: /home/lars/.ros/log/c12c7bb8-1240-11e4-b8af-f01faf28c879/upper_body_detector-3*.log

Create release branch?

Since some of the code in here is still under development, I think it would be nice if we could create a release branch.
@lucasb-eyer am I right that you don't want your head angle code release already? Otherwise we don't need any specific branch.

Create release version without HOG

Since the whole HOG feature library is still privately hosted by Aachen, I think that the people perception should be release without the optional HOG feature detector.

Another possibility would be to catkinize it and host it on our ppa if possible. Since this generates more work, I would suggest it for future releases.

Assertion error in tracker

This error:

pedestrian_tracking: /localhome/strands/ros_ws/src/strands_perception_people/strands_pedestrian_tracking/include/Vector.h:519: T& Vector<T>::operator()(unsigned int) [with T = Vector<Vector<double> >]: Assertion `indexO < dataC.size()' failed.

aborts the tracker. Will replace with an exception and try to recover to prevent the tracker from failing completely.

Cannot assign it to me (no rights) but I will fix this.

Adapt to use openni2 wrapper

The openni2 wrapper does not publish under the same topic names and not all of the different image types as the original openni wrapper (strands-project/scitos_robot#34). Since I assume that everyone is using scitos_bringup scitos.launch (which includes the new wrapper) I will adjust the people perception to work with the new topics.

New logging mechanism of people tracks

@cdondrup, the new logging mechanism looks really good! Just one question, why did you not use the TimeSynchronizer for the /robot_pose too? Can this cause a problem when the robot_pose updates are received faster than the synchronized ones? Especially, because the human pose is in /base_link coordinates, right?

btw the projected positions of the people tracker are in the /map frame, right?

Odometry not taken into account when calculating trajectories

I am just in the process of switching from visual odometry to the robot odometry and noticed that the odometry is not taken into account when calculating heading, speed and trajectory of the found pedestrians. So a standing person will appear to be moving when the robot is driving.
At first I thought it would be because I did something wrong but this also happens when relying on the visual odometry. Maybe @dennismitzel can look into that.

Make the "heads" a action server.

Using a person-id in a 'start' signal to start computing the head's angle and publish it continuously, until the goal is canceled.

Publish poses in frame of camera if not otherwise specified

As mentioned in #89 this might be useful.

In the standalone version the tracker is currently not publishing any poses by default. This is mainly because in the standalone version I couldn't assume any tf to be present but at least the camera tf should be there. Therefore, I'll change the default behaviour to:

If there is no tf_target_frame specified, the pedestrian tracker will publish poses in the tf frame of the camera: *_depth_optical_frame

Add different detectors to choose from

There are different versions of the upper body detector which trade speed for accuracy and vice-versa. At the moment we are just using one.
Add others which can be chosen on start-up.

Add appropriate licenses

The whole repository needs appropriate license files. I will have a test release to our own servers without but they should be added ASAP. @lucasb-eyer I know you are not involved with the people tracker but you are the only one caring at least a bit about it. I will assign this to you and it would be great if you could add the appropriate licenses to the packages from Aachen.

People perception release and licensing

The last thing I heard is that the code for the people tracker could be released because it is published now. Hence, I would love to make it publicly available to maybe attract others to use it and contribute.

The question is @lucasb-eyer, is Aachen satisfied with using the MIT license for the tracker and detector?

Rename package to get rid of 'strands' prefix

Since this might be interesting to the whole community (at least I hope so) the packages should be renamed to get rid of the strands prefix. Also, the packages have to have names that express what they do, shouldn't be too long, and have to be unique. Especially https://github.com/wg-perception/people claimed a lot of nice names already. Some of the package names work fine with just removing the prefix but especially the pedestrian_tracker needs a more descriptive one.

Suggestions welcome.

Installing through apt-get

Not sure if this is the right place to report. Today I wanted to set-up a VM for strands dev on my laptop and I ran into this:

beyer@grimbergen:~$ apt-get update
beyer@grimbergen:~$ apt-cache search strands

ros-hydro-strands-morse - The strands_morse package
ros-hydro-strands-perception-people - The strands_perception_people metapackage
ros-hydro-strands-webtools - Remote control our robots via a browser

beyer@grimbergen:~$ sudo apt-get install ros-hydro-strands-perception-people

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
ros-hydro-strands-perception-people : Depends: ros-hydro-bayes-people-tracker-logging but it is not installable
Depends: ros-hydro-perception-people-launch but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

beyer@grimbergen:~$ apt-cache search ros-hydro-bayes-people-tracker-logging

(nothing)

beyer@grimbergen:~$

I followed ROS' ubuntu installation tutorial and then our wiki tutorial. Am I missing something, or is the repo missing something?

ping @marc-hanheide

Too many false positives

The pedestrian detector often reports people in the scene even if there are none.
Running the PD over the Lincoln dataset gives more than 50% of false positives.

Jenkins reported broken build

There seems to be a dependency problem once again, now that OpenNI is compiled by "us". It seems to only show up in the massively parallel build of jenkins.
As fas as I understand this, we'd now have to include our OpenNI (in https://github.com/strands-project/scitos_robot/tree/master/openni_wrapper) as a build dependency in all modules that use it. So I think also @RaresAmbrus, @nilsbore, @gestom, @AlexanderHermans, and @hawesie might find this useful. Is my assumption that we need to include the openni_wrapper as a dependency correct?

[ 83%] Building CXX object strands_perception_people/strands_upper_body_detector/CMakeFiles/upper_body_detector.dir/src/Math.cpp.o
./../../../../Bin/Intermediate/x64-Release/PS1080Console/PS1080Console.o: file not recognized: File truncated
collect2: ld returned 1 exit status
make[4]: *** [../../../../Bin/x64-Release/PS1080Console] Error 1
make[3]: *** [Source/Drivers/PS1080/PS1080Console] Error 2
make[3]: *** Waiting for unfinished jobs....
[ 83%] Building CXX object strands_perception_people/strands_visual_odometry/CMakeFiles/visual_odometry.dir/3rd_party/fovis/libfovis/initial_homography_estimation.cpp.o
Linking CXX executable /var/lib/jenkins/jobs/catkin_make_strands_desktop_full/workspace/catkin_ws/devel/lib/strandsbag/image_player_node
[ 83%] Built target image_player_node
[ 83%] Building CXX object strands_perception_people/strands_pedestrian_tracking/CMakeFiles/pedestrian_tracking.dir/src/Kalman.cpp.o
Scanning dependencies of target costmap_2d_generate_messages
[ 83%] Built target costmap_2d_generate_messages
[ 83%] Building CXX object strands_perception_people/strands_upper_body_detector/CMakeFiles/upper_body_detector.dir/src/pointcloud.cpp.o
[ 83%] Building CXX object strands_perception_people/strands_upper_body_detector/CMakeFiles/upper_body_detector.dir/src/ROI.cpp.o
make[2]: *** [/var/lib/jenkins/jobs/catkin_make_strands_desktop_full/workspace/catkin_ws/devel/lib/openni_wrapper/openni_wrapper] Error 2
make[1]: *** [scitos_robot/openni_wrapper/CMakeFiles/openni_wrapper.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Finished: FAILURE

Outsource ground plane estimation?

I am not particularly happy that the ground plane is produced as a byproduct of the upper body detector. This does not seem very intuitive to understand. I would like to move the estimation to a separate node but I don't know if that creates too much extra computation time. What's your opinion on that @dennismitzel ?

strands_perception_people_msgs/PedestrianTracking meaning

I'm looking to inspect the tracked pedestrians to see if one is within a given range for a particular length of time. With the pose array I can easily do the distance, but I can't check whether the same track uuid reoccurs. Looking at PedestrianTracking I can see that I can get the uuid but, not being able to run the system right now (at home with laptop), I can't work out what frame the x,y,z of these trajectories are in and whether to look at the start of these lists. Does the header frame_id tell me the tf frame used for traj_x etc.?

ground_hog fails with a failed assertion

After a few callback calls I get the following error when running ground_hog with the ground_plane enabled:

groundHOG: ../../libcudaHOG/cudaHOG/cudaHOG.cpp:392: void cudaHOG::compute_y_solution(float, float, float, int, cudaHOG::Matrix<float>&, cudaHOG::Matrix<float>&, cudaHOG::Vector<float>&, float, int&, int&): Assertion `p*p - ((E(0,0)*x + E(2,2) + 2*E(2,0)*x) / E(1,1)) >= 0' failed.

The back trace says:

#0  0x00007ffff5637425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff563ab8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff56300ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff5630192 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff5f00c5f in cudaHOG::compute_y_solution (left=0, right=640, 
    height=480, window_height=128, C1=..., Hgp=..., vnp=..., h_w=1400, 
    y_l=@0x7fffffff915c: 32767, y_r=@0x7fffffff9160: 7738240)
    at ../../libcudaHOG/cudaHOG/cudaHOG.cpp:392
#5  0x00007ffff5f01b3a in cudaHOG::cudaHOGManager::compute_roi_one_scale (
    this=0x761380, scale=1, params=..., min_x=@0x7fffffff923c: 0, 
    min_y=@0x7fffffff9240: 7738240, max_x=@0x7fffffff9248: 640, 
    max_y=@0x7fffffff9244: 0) at ../../libcudaHOG/cudaHOG/cudaHOG.cpp:493
#6  0x00007ffff5f02330 in cudaHOG::cudaHOGManager::prepare_roi_by_groundplane (
    this=0x761380) at ../../libcudaHOG/cudaHOG/cudaHOG.cpp:594
#7  0x00000000004c2056 in imageGroundPlaneCallback (color=..., 
    camera_info=..., gp=...)
    at /home/cdondrup/ros-ws/src/strands_perception_people/strands_ground_hog/src/main.cpp:164
#8  0x00000000004f3465 in boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::arg<3> >::operator()<void (*)(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&), boost::_bi::list9<boost::share---Type <return> to continue, or q <return> to quit---
d_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&> > (this=0x818ae0, 
    f=@0x818ad8: 0x4c1878 <imageGroundPlaneCallback(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&)>, a=...)
    at /usr/include/boost/bind/bind.hpp:392
#9  0x00000000004ec599 in boost::_bi::bind_t<void, void (*)(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&), boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::arg<3> > >::operator()<boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const>, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const>, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::sha---Type <return> to continue, or q <return> to quit---
red_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const> > (
    this=0x818ad8, a1=..., a2=..., a3=..., a4=..., a5=..., a6=..., a7=..., 
    a8=..., a9=...) at /usr/include/boost/bind/bind_template.hpp:305
#10 0x00000000004e6d01 in boost::_bi::list9<boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4>, boost::arg<5>, boost::arg<6>, boost::arg<7>, boost::arg<8>, boost::arg<9> >::operator()<boost::_bi::bind_t<void, void (*)(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&), boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::arg<3> > >, boost::_bi::list9<boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&> > (
    this=0x818ae8, f=..., a=...) at /usr/include/boost/bind/bind.hpp:827
#11 0x00000000004e1e15 in boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<void, void (*)(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<vo---Type <return> to continue, or q <return> to quit---
id> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&), boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::arg<3> > >, boost::_bi::list9<boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4>, boost::arg<5>, boost::arg<6>, boost::arg<7>, boost::arg<8>, boost::arg<9> > >::operator()<boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const>, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const>, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const> > (this=0x818ad8, a1=..., a2=..., a3=..., a4=..., 
    a5=..., a6=..., a7=..., a8=..., a9=...)
    at /usr/include/boost/bind/bind_template.hpp:305
#12 0x00000000004de050 in boost::detail::function::void_function_obj_invoker9<boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<void, void (*)(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&), boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::arg<3> > >, boost::_bi::list9<boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4>, boost::arg<5>, boost::arg<6>, boost::arg<7>, boost::arg<8>, boost::arg<9> > >, void, boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&,---Type <return> to continue, or q <return> to quit---
 boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&>::invoke (
    function_obj_ptr=..., a0=..., a1=..., a2=..., a3=..., a4=..., a5=..., 
    a6=..., a7=..., a8=...)
    at /usr/include/boost/function/function_template.hpp:153
#13 0x00000000004e6eba in boost::function9<void, boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&>::operator() (this=0x818ad0, a0=..., a1=..., a2=..., 
    a3=..., a4=..., a5=..., a6=..., a7=..., a8=...)
    at /usr/include/boost/function/function_template.hpp:1013
#14 0x00000000004e1f55 in boost::detail::function::void_function_obj_invoker9<boost::function<void (boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> >---Type <return> to continue, or q <return> to quit---
 const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&)>, void, boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const>, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const>, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const>, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const>, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>) (function_obj_ptr=..., a0=..., a1=..., a2=..., 
    a3=..., a4=..., a5=..., a6=..., a7=..., a8=...)
---Type <return> to continue, or q <return> to quit---
    at /usr/include/boost/function/function_template.hpp:153
#15 0x0000000000513458 in boost::function9<void, boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const>, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const>, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const>, boost::shared_ptr<message_filters::NullType const> >::operator() (this=0x818aa8, a0=..., 
    a1=..., a2=..., a3=..., a4=..., a5=..., a6=..., a7=..., a8=...)
    at /usr/include/boost/function/function_template.hpp:1013
#16 0x0000000000511bff in message_filters::CallbackHelper9T<boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&, boost::shared_ptr<sensor_msgs::CameraInfo_<std::allocator<void> > const> const&, boost::shared_ptr<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&>::call (this=0x818aa0, 
    nonconst_force_copy=false, e0=..., e1=..., e2=..., e3=..., e4=..., e5=..., 
    e6=..., e7=..., e8=...)
    at /opt/ros/groovy/include/message_filters/signal9.h:128
---Type <return> to continue, or q <return> to quit---
#17 0x000000000050aa47 in message_filters::Signal9<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::call (
    this=0x7fffffffc228, e0=..., e1=..., e2=..., e3=..., e4=..., e5=..., 
    e6=..., e7=..., e8=...)
    at /opt/ros/groovy/include/message_filters/signal9.h:304
#18 0x00000000005071d8 in message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >::signal (this=0x7fffffffba40, e0=..., e1=..., 
    e2=..., e3=..., e4=..., e5=..., e6=..., e7=..., e8=...)
    at /opt/ros/groovy/include/message_filters/synchronizer.h:332
#19 0x00000000005004dd in message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::publishCandidate (this=0x7fffffffba40)
    at /opt/ros/groovy/include/message_filters/sync_policies/approximate_time.h:---Type <return> to continue, or q <return> to quit---
499
#20 0x00000000004f6900 in message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::process (this=0x7fffffffba40)
    at /opt/ros/groovy/include/message_filters/sync_policies/approximate_time.h:751
#21 0x00000000004f12ed in message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::add<2> (this=0x7fffffffba40, evt=...)
    at /opt/ros/groovy/include/message_filters/sync_policies/approximate_time.h:212
#22 0x00000000004ebc5b in message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >::cb<2> (this=0x7fffffffba40, evt=...)
---Type <return> to continue, or q <return> to quit---
    at /opt/ros/groovy/include/message_filters/synchronizer.h:358
#23 0x000000000050eef3 in boost::_mfi::mf1<void, message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::operator() (this=0x818a20, p=0x7fffffffba40, a1=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:165
#24 0x000000000050c421 in boost::_bi::list2<boost::_bi::value<message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::l---Type <return> to continue, or q <return> to quit---
ist1<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&> > (this=0x818a30, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:313
#25 0x000000000050906c in boost::_bi::bind_t<void, boost::_mfi::mf1<void, message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >*>, boost::arg<1> > >::operator()<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> > (this=0x818a20, a1=...)
    at /usr/include/boost/bind/bind_template.hpp:47
#26 0x0000000000502af3 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_peop---Type <return> to continue, or q <return> to quit---
le_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<sensor_msgs::Image_<std::allocator<void> >, sensor_msgs::CameraInfo_<std::allocator<void> >, strands_perception_people_msgs::GroundPlane_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >*>, boost::arg<1> > >, void, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::invoke (function_obj_ptr=..., a0=...)
    at /usr/include/boost/function/function_template.hpp:153
#27 0x0000000000512e51 in boost::function1<void, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::operator() (this=0x818a18, a0=...)
    at /usr/include/boost/function/function_template.hpp:1013
#28 0x0000000000511448 in message_filters::CallbackHelper1T<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >::call (
    this=0x818a10, event=..., nonconst_force_copy=false)
    at /opt/ros/groovy/include/message_filters/signal1.h:76
#29 0x00000000004d80d5 in message_filters::Signal1<strands_perception_people_msg---Type <return> to continue, or q <return> to quit---
s::GroundPlane_<std::allocator<void> > >::call (this=0x7fffffffd558, event=...)
    at /opt/ros/groovy/include/message_filters/signal1.h:119
#30 0x00000000004d4879 in message_filters::SimpleFilter<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >::signalMessage (
    this=0x7fffffffd558, event=...)
    at /opt/ros/groovy/include/message_filters/simple_filter.h:135
#31 0x00000000004d0dab in message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >::cb (this=0x7fffffffd550, e=...)
    at /opt/ros/groovy/include/message_filters/subscriber.h:205
#32 0x00000000004e77ed in boost::_mfi::mf1<void, message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::operator() (this=0x80e060, p=0x7fffffffd550, a1=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:165
#33 0x00000000004e2d79 in boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::list1<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&> > (this=0x80e070, f=..., 
    a=...) at /usr/include/boost/bind/bind.hpp:313
#34 0x00000000004def9a in boost::_bi::bind_t<void, boost::_mfi::mf1<void, messag---Type <return> to continue, or q <return> to quit---
e_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >*>, boost::arg<1> > >::operator()<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> > (this=0x80e060, 
    a1=...) at /usr/include/boost/bind/bind_template.hpp:47
#35 0x00000000004db53b in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > >*>, boost::arg<1> > >, void, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::invoke (function_obj_ptr=..., a0=...)
    at /usr/include/boost/function/function_template.hpp:153
#36 0x0000000000512e51 in boost::function1<void, ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&>::operator() (this=0x80e058, a0=...)
    at /usr/include/boost/function/function_template.hpp:1013
#37 0x00000000005128eb in ros::SubscriptionCallbackHelperT<ros::MessageEvent<strands_perception_people_msgs::GroundPlane_<std::allocator<void> > const> const&, void>::call (this=0x80e050, params=...)
---Type <return> to continue, or q <return> to quit---
    at /opt/ros/groovy/include/ros/subscription_callback_helper.h:180
#38 0x00007ffff7b86107 in ros::SubscriptionQueue::call() ()
   from /opt/ros/groovy/lib/libroscpp.so
#39 0x00007ffff7b388f9 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) () from /opt/ros/groovy/lib/libroscpp.so
#40 0x00007ffff7b3a3bb in ros::CallbackQueue::callAvailable(ros::WallDuration)
    () from /opt/ros/groovy/lib/libroscpp.so
#41 0x00007ffff7b89958 in ros::SingleThreadedSpinner::spin(ros::CallbackQueue*)
    () from /opt/ros/groovy/lib/libroscpp.so
#42 0x00007ffff7b6e92b in ros::spin() () from /opt/ros/groovy/lib/libroscpp.so
#43 0x00000000004c3483 in main (argc=1, argv=0x7fffffffdae8)
    at /home/cdondrup/ros-ws/src/strands_perception_people/strands_ground_hog/src/main.cpp:284

So I think #7 with main.cpp:164 is the crucial one and this already is in a try catch(...) but you can not catch assertion failiurs because there is nothing thrown.

This might be helpful: http://stackoverflow.com/questions/37473/how-can-i-assert-without-using-abort

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.