|
From: <sf...@us...> - 2009-09-01 01:40:44
|
Revision: 23448
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23448&view=rev
Author: sfkwc
Date: 2009-09-01 01:40:37 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Moving to deprecated as only dependency is deprecated
Added Paths:
-----------
pkg/trunk/deprecated/math_expr/
Removed Paths:
-------------
pkg/trunk/util/math_expr/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 02:09:46
|
Revision: 23450
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23450&view=rev
Author: sfkwc
Date: 2009-09-01 02:09:40 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
As robot_actions is now deprecated, so is robot_actions_tools
Added Paths:
-----------
pkg/trunk/deprecated/robot_actions_tools/
Removed Paths:
-------------
pkg/trunk/highlevel/robot_actions_tools/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 02:56:23
|
Revision: 23458
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23458&view=rev
Author: sfkwc
Date: 2009-09-01 02:56:17 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Deprecating as it appears that all of its dependencies are also old, less-used packages
Added Paths:
-----------
pkg/trunk/deprecated/image_utils/
Removed Paths:
-------------
pkg/trunk/util/image_utils/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 03:03:51
|
Revision: 23461
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23461&view=rev
Author: sfkwc
Date: 2009-09-01 03:03:45 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
deprecated
Added Paths:
-----------
pkg/trunk/deprecated/message_sequencing/
Removed Paths:
-------------
pkg/trunk/util/message_sequencing/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 04:28:59
|
Revision: 23476
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23476&view=rev
Author: sfkwc
Date: 2009-09-01 04:28:53 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving bagserver to bag_experimental
Added Paths:
-----------
pkg/trunk/stacks/bag_experimental/bagserver/
Removed Paths:
-------------
pkg/trunk/util/bagserver/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 04:29:31
|
Revision: 23477
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23477&view=rev
Author: sfkwc
Date: 2009-09-01 04:29:25 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving bag_image_view to bag_experimental
Added Paths:
-----------
pkg/trunk/stacks/bag_experimental/bag_image_view/
Removed Paths:
-------------
pkg/trunk/sandbox/bag_image_view/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 06:36:34
|
Revision: 23492
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23492&view=rev
Author: sfkwc
Date: 2009-09-01 06:36:27 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
removing twitterros and python-twitter
Removed Paths:
-------------
pkg/trunk/3rdparty/python-twitter/
pkg/trunk/util/twitterros/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 07:25:20
|
Revision: 23498
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23498&view=rev
Author: sfkwc
Date: 2009-09-01 07:25:14 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving geometric_shapes to manipulation_common. It may end up in geometry, but for now it is a manipulation-related dependency
Added Paths:
-----------
pkg/trunk/stacks/manipulation_common/geometric_shapes/
Removed Paths:
-------------
pkg/trunk/util/geometric_shapes/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 07:26:45
|
Revision: 23499
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23499&view=rev
Author: sfkwc
Date: 2009-09-01 07:26:38 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving manipulation_msgs out of sandbox into manipulation_common
Added Paths:
-----------
pkg/trunk/stacks/manipulation_common/manipulation_msgs/
Removed Paths:
-------------
pkg/trunk/sandbox/manipulation_msgs/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 07:27:51
|
Revision: 23500
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23500&view=rev
Author: sfkwc
Date: 2009-09-01 07:27:37 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving manipulation_srvs out of sandbox into manipulation_common
Added Paths:
-----------
pkg/trunk/stacks/manipulation_common/manipulation_srvs/
Removed Paths:
-------------
pkg/trunk/sandbox/manipulation_srvs/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 07:29:03
|
Revision: 23501
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23501&view=rev
Author: sfkwc
Date: 2009-09-01 07:28:57 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving mapping_msgs out of sandbox into manipulation_common
Added Paths:
-----------
pkg/trunk/stacks/manipulation_common/mapping_msgs/
Removed Paths:
-------------
pkg/trunk/sandbox/mapping_msgs/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jl...@us...> - 2009-09-01 08:05:29
|
Revision: 23502
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23502&view=rev
Author: jleibs
Date: 2009-09-01 08:05:18 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Merging in changes from reorgnization of laser pipeline.
Modified Paths:
--------------
pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/lasers_and_filters.xml
pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/manifest.xml
pkg/trunk/calibration_experimental/sandbox/laser_head_updater/manifest.xml
pkg/trunk/demos/2dnav_gazebo/config/lasers_and_filters.launch
pkg/trunk/demos/2dnav_gazebo/manifest.xml
pkg/trunk/demos/door_demos_gazebo/launch/perception_planner.xml
pkg/trunk/demos/door_demos_gazebo/manifest.xml
pkg/trunk/demos/milestone2/milestone2_actions/config/perception.xml
pkg/trunk/demos/plug_in/detect_plugstow.launch
pkg/trunk/demos/plug_in/integration/controllers.launch
pkg/trunk/demos/plug_in/manifest.xml
pkg/trunk/demos/test_2dnav_gazebo/manifest.xml
pkg/trunk/drivers/simulator/test_pr2_sensors_gazebo/manifest.xml
pkg/trunk/highlevel/doors/doors_core/manifest.xml
pkg/trunk/highlevel/doors/doors_core/src/action_detect_door.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_detect_handle.cpp
pkg/trunk/highlevel/doors/doors_core/src/action_detect_handle_no_camera.cpp
pkg/trunk/mapping/annotated_planar_patch_map/launch/full_lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/launch/make_annotated_map/full_lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/launch/make_annotated_pcd_map/full_lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/launch/make_annotated_pcd_map_lift_only/full_lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/manifest.xml
pkg/trunk/mapping/annotated_planar_patch_map/src/annotated_map_bind.cpp
pkg/trunk/mapping/annotated_planar_patch_map/src/annotation2d_lifter_to_pcd_via_service.cpp
pkg/trunk/mapping/annotated_planar_patch_map/src/pcd_assembler_srv.cpp
pkg/trunk/mapping/annotated_planar_patch_map/test/blank_map_full.launch
pkg/trunk/mapping/annotated_planar_patch_map/test/blank_map_server.launch
pkg/trunk/mapping/annotated_planar_patch_map/test/full_lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/test/lifter.launch
pkg/trunk/mapping/annotated_planar_patch_map/test/lifter_preprocessing.launch
pkg/trunk/mapping/annotated_planar_patch_map/test/setup.xml
pkg/trunk/mapping/annotated_planar_patch_map/test/test_laser_assembler.launch
pkg/trunk/mapping/door_tracker/launch/door_tracker.launch
pkg/trunk/mapping/door_tracker/launch/localization.launch
pkg/trunk/mapping/door_tracker/launch/scan_shadows.launch
pkg/trunk/mapping/door_tracker/manifest.xml
pkg/trunk/mapping/door_tracker/src/door_tracker.cpp
pkg/trunk/mapping/hallway_tracker/launch/hallway_tracker.launch
pkg/trunk/mapping/hallway_tracker/manifest.xml
pkg/trunk/mapping/hallway_tracker/src/hallway_tracker.cpp
pkg/trunk/motion_planning/planning_research/sbpl_arm_planner_node/launch/perception_sim.launch
pkg/trunk/nav/visual_nav/manifest.xml
pkg/trunk/nav/visual_nav/src/ros_visual_nav.cpp
pkg/trunk/nav/wavefront/manifest.xml
pkg/trunk/nav/wavefront/src/wavefront_node.cpp
pkg/trunk/openrave_planning/ormanipulation/manifest.xml
pkg/trunk/openrave_planning/ormanipulation/startlasermap.ros.xml
pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_laser_tilt/build_snapshots.launch
pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_laser_tilt/init.launch
pkg/trunk/robot_descriptions/pr2/pr2_configurations/pr2_laser_tilt/manifest.xml
pkg/trunk/sandbox/3dnav_pr2/launch/perception/laser+stereo-perception.launch
pkg/trunk/sandbox/3dnav_pr2/launch/perception/laser-perception.launch
pkg/trunk/sandbox/3dnav_pr2/manifest.xml
pkg/trunk/sandbox/annotated_map_builder/config/perception.xml
pkg/trunk/sandbox/annotated_map_builder/manifest.xml
pkg/trunk/sandbox/doors_planner_core/launch/perception_planner.xml
pkg/trunk/sandbox/doors_planner_core/manifest.xml
pkg/trunk/sandbox/labeled_object_detector/include/detect_nearest_object_action.h
pkg/trunk/sandbox/labeled_object_detector/include/object_model.h
pkg/trunk/sandbox/labeled_object_detector/include/planar_object_detector.h
pkg/trunk/sandbox/labeled_object_detector/include/planar_object_detector_node.h
pkg/trunk/sandbox/labeled_object_detector/launch/whiteboard_detector_laser.xml
pkg/trunk/sandbox/labeled_object_detector/manifest.xml
pkg/trunk/sandbox/labeled_object_detector/src/planar_object_detector.cpp
pkg/trunk/sandbox/labeled_object_detector/test/test_planar_detector__laser.xml
pkg/trunk/sandbox/mturk_grab_object/launch/clouds.launch
pkg/trunk/sandbox/pcd_novelty/manifest.xml
pkg/trunk/sandbox/pcd_novelty/test/laser.xml
pkg/trunk/sandbox/pcd_novelty/test/laser_hist.xml
pkg/trunk/sandbox/person_data/config/perception.xml
pkg/trunk/sandbox/person_follower/config/perception.xml
pkg/trunk/sandbox/person_follower/src/follower.cpp
pkg/trunk/sandbox/point_cloud_basics_demo/manifest.xml
pkg/trunk/sandbox/point_cloud_basics_demo/test/demo2.launch
pkg/trunk/stacks/navigation/amcl/manifest.xml
pkg/trunk/stacks/navigation/costmap_2d/include/costmap_2d/costmap_2d_ros.h
pkg/trunk/stacks/navigation/costmap_2d/manifest.xml
pkg/trunk/stacks/semantic_mapping/door_handle_detector/launch/perception.xml
pkg/trunk/stacks/semantic_mapping/door_handle_detector/launch/setup_for_recording.launch
pkg/trunk/stacks/semantic_mapping/door_handle_detector/manifest.xml
pkg/trunk/stacks/slam_gmapping/gmapping/manifest.xml
pkg/trunk/stacks/trex/trex_pr2/cfg/launch_gazebo.xml
pkg/trunk/stacks/trex/trex_pr2/cfg/launch_gazebo_obstacle.xml
pkg/trunk/stacks/trex/trex_pr2_writing_test/launch/head_cart/perception.launch
pkg/trunk/stacks/trex/trex_pr2_writing_test/launch/perception.launch
pkg/trunk/stacks/trex/trex_pr2_writing_test/manifest.xml
pkg/trunk/stacks/visual_feature_detectors/outlet_detection/launch/outlet_coarse_detection/perception.launch
pkg/trunk/stacks/visual_feature_detectors/outlet_detection/launch/outlet_coarse_detection/perception2.launch
pkg/trunk/stacks/visual_feature_detectors/outlet_detection/manifest.xml
pkg/trunk/stacks/visual_feature_detectors/outlet_detection/src/outlet_spotting.cpp
pkg/trunk/stacks/visualization/rviz/manifest.xml
pkg/trunk/stacks/visualization/rviz/src/default_plugin/laser_scan_display.cpp
pkg/trunk/stacks/visualization/rviz/src/default_plugin/laser_scan_display.h
pkg/trunk/vision/people/manifest.xml
pkg/trunk/vision/people/src/calc_leg_features.cpp
pkg/trunk/vision/people/src/calc_leg_features.h
pkg/trunk/vision/people/src/leg_detector.cpp
pkg/trunk/vision/people/src/train_leg_detector.cpp
pkg/trunk/vision/recognition_lambertian/manifest.xml
Added Paths:
-----------
pkg/trunk/calibration_experimental/dense_laser_assembler/
pkg/trunk/calibration_experimental/dense_laser_assembler/include/
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/
pkg/trunk/calibration_experimental/dense_laser_assembler/msg/
pkg/trunk/calibration_experimental/dense_laser_assembler/scripts/
pkg/trunk/calibration_experimental/dense_laser_assembler/src/
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_assembler/
pkg/trunk/calibration_experimental/dense_laser_assembler/srv/
pkg/trunk/pr2/pr2_laser_snapshotter/
pkg/trunk/pr2/pr2_laser_snapshotter/src/
pkg/trunk/pr2/pr2_laser_snapshotter/srv/
pkg/trunk/pr2/pr2_laser_snapshotter/test/
pkg/trunk/stacks/laser_pipeline/laser_assembler/
pkg/trunk/stacks/laser_pipeline/laser_assembler/include/
pkg/trunk/stacks/laser_pipeline/laser_assembler/include/laser_assembler/
pkg/trunk/stacks/laser_pipeline/laser_assembler/src/
pkg/trunk/stacks/laser_pipeline/laser_assembler/src/point_cloud_assembler/
pkg/trunk/stacks/laser_pipeline/laser_assembler/srv/
pkg/trunk/stacks/laser_pipeline/laser_filters/
pkg/trunk/stacks/laser_pipeline/laser_filters/examples/
pkg/trunk/stacks/laser_pipeline/laser_filters/include/
pkg/trunk/stacks/laser_pipeline/laser_filters/include/laser_filters/
pkg/trunk/stacks/laser_pipeline/laser_filters/src/
pkg/trunk/stacks/laser_pipeline/laser_geometry/
pkg/trunk/stacks/laser_pipeline/laser_geometry/include/
pkg/trunk/stacks/laser_pipeline/laser_geometry/include/laser_geometry/
pkg/trunk/stacks/laser_pipeline/laser_geometry/src/
pkg/trunk/stacks/laser_pipeline/laser_geometry/test/
Removed Paths:
-------------
pkg/trunk/stacks/laser_pipeline/dense_laser_assembler/
pkg/trunk/stacks/laser_pipeline/laser_scan/
pkg/trunk/stacks/laser_pipeline/point_cloud_assembler/
Modified: pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/lasers_and_filters.xml
===================================================================
--- pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/lasers_and_filters.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/config/lasers_and_filters.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -11,9 +11,9 @@
<node pkg="pr2_mechanism_controllers" type="send_laser_traj_cmd_ms2.py" args="laser_tilt_controller" />
<!-- Filter for tilt laser shadowing/veiling -->
-<node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="tilt_shadow_filter">
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="tilt_shadow_filter">
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="tilt_scan" />
<param name="cloud_topic" value="tilt_scan_shadow_filtered" />
<param name="high_fidelity" value="true" />
@@ -75,9 +75,9 @@
</node>
<!-- Filter for base laser shadowing/veiling -->
-<node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="base_shadow_filter" >
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="base_shadow_filter" >
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="base_scan" />
<param name="cloud_topic" value="base_scan_shadow_filtered" />
</node>
Modified: pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/manifest.xml
===================================================================
--- pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/applications/2dnav_pr2_app/2dnav_pr2/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -9,7 +9,7 @@
<depend package="robot_pose_ekf"/>
<depend package="teleop_base"/>
<depend package="semantic_point_annotator"/>
- <depend package="laser_scan"/>
+ <depend package="laser_filters"/>
<depend package="pr2_mechanism_controllers"/>
<depend package="pr2_alpha"/>
<depend package="map_server"/>
Property changes on: pkg/trunk/calibration_experimental/dense_laser_assembler
___________________________________________________________________
Added: svn:mergeinfo
+ /pkg/branches/gazebo-branch-merge/stacks/laser_pipeline/dense_laser_assembler:15683-15684,15739-15794,15797-15820,15822-15839,15852-15870,15983-16008,16010-16016,16129-16141,16145-16169,16245-16262,16274-16334
Modified: pkg/trunk/calibration_experimental/sandbox/laser_head_updater/manifest.xml
===================================================================
--- pkg/trunk/calibration_experimental/sandbox/laser_head_updater/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/calibration_experimental/sandbox/laser_head_updater/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -15,9 +15,6 @@
<!-- mechanism -->
<depend package="pr2_mechanism_msgs" />
- <!-- common -->
- <depend package="laser_scan" />
-
<!-- common_msgs -->
<depend package="sensor_msgs" />
Modified: pkg/trunk/demos/2dnav_gazebo/config/lasers_and_filters.launch
===================================================================
--- pkg/trunk/demos/2dnav_gazebo/config/lasers_and_filters.launch 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/2dnav_gazebo/config/lasers_and_filters.launch 2009-09-01 08:05:18 UTC (rev 23502)
@@ -12,7 +12,7 @@
<!-- laser scan -->
<!-- accumulate tilt_scan and publish by service call point_cloud_assembler_srv/build_cloud -->
<!--
-<node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler">
+<node pkg="laser_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler">
<remap from="scan_in" to="tilt_scan"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -21,7 +21,7 @@
</node>
-->
<!-- accumulate point_cloud_filtered and publish by service call point_cloud_assembler_srv/build_cloud -->
-<node pkg="point_cloud_assembler" type="point_cloud_assembler_srv" output="screen" name="point_cloud_assembler_filtered">
+<node pkg="laser_assembler" type="point_cloud_assembler_srv" output="screen" name="point_cloud_assembler_filtered">
<remap from="scan_in" to="robotlinks_cloud_filtered"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -31,16 +31,16 @@
<!-- at laser_tilt_controller/laser_scanner_signal,
reads accumulated point cloud from point_cloud_assembler_srv by invoking point_cloud_assembler/build_cloud service call,
and publishes full_cloud, which is remapped to snapshot_cloud_filtered -->
-<node pkg="point_cloud_assembler" type="point_cloud_snapshotter" output="screen" name="snapshotter_filtered">
+<node pkg="pr2_laser_snapshotter" type="pr2_laser_snapshotter" output="screen" name="snapshotter_filtered">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="point_cloud_assembler_filtered/build_cloud" />
<remap from="full_cloud" to="snapshot_cloud_filtered" />
</node>
<!-- Filter for tilt laser shadowing/veiling -->
-<node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="tilt_shadow_filter">
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="tilt_shadow_filter">
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="tilt_scan" />
<param name="cloud_topic" value="tilt_scan_shadow_filtered" />
<param name="high_fidelity" value="true" />
@@ -102,9 +102,9 @@
</node>
<!-- Filter for base laser shadowing/veiling -->
-<node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="base_shadow_filter" >
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="base_shadow_filter" >
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="base_scan" />
<param name="cloud_topic" value="base_scan_shadow_filtered" />
</node>
Modified: pkg/trunk/demos/2dnav_gazebo/manifest.xml
===================================================================
--- pkg/trunk/demos/2dnav_gazebo/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/2dnav_gazebo/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -17,7 +17,7 @@
<depend package="trex_pr2"/>
<depend package="robot_pose_ekf"/>
<depend package="pr2_gazebo"/>
- <depend package="point_cloud_assembler"/>
+ <depend package="laser_assembler"/>
<depend package="semantic_point_annotator"/>
<depend package="or_robot_self_filter"/>
<depend package="robot_self_filter"/>
Modified: pkg/trunk/demos/door_demos_gazebo/launch/perception_planner.xml
===================================================================
--- pkg/trunk/demos/door_demos_gazebo/launch/perception_planner.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/door_demos_gazebo/launch/perception_planner.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -18,26 +18,26 @@
<node pkg="mux" type="throttle" args="1.0 stereo/cloud stereo/cloud_throttled" machine="four"/>
<!-- Filter for tilt laser shadowing/veiling -->
- <node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="tilt_shadow_filter">
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+ <node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="tilt_shadow_filter">
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="tilt_scan" />
<param name="cloud_topic" value="tilt_scan_filtered" />
<param name="high_fidelity" value="true" />
</node>
<!-- Filter for base laser shadowing/veiling -->
- <node pkg="laser_scan" type="scan_to_cloud" respawn="true" machine="three" name="base_shadow_filter" >
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+ <node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="three" name="base_shadow_filter" >
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="base_scan" />
<param name="cloud_topic" value="base_scan_marking" />
</node>
<!-- Laser scan assembler for tilt laser -->
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" name="laser_scan_assembler" respawn="true">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" name="laser_scan_assembler" respawn="true">
<remap from="scan_in" to="tilt_scan"/>
- <rosparam command="load" ns="filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
+ <rosparam command="load" ns="filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="1000" />
<param name="ignore_laser_skew" type="bool" value="true" />
@@ -46,7 +46,7 @@
</node>
<!-- Setup for detecting the plug on the base -->
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" output="screen" name="plugs_laser_scan_assembler" respawn="true">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" output="screen" name="plugs_laser_scan_assembler" respawn="true">
<remap from="scan_in" to="tilt_scan"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -55,7 +55,7 @@
<param name="downsample_factor" type="int" value="2" />
</node>
- <node pkg="point_cloud_assembler" type="point_cloud_snapshotter" output="screen" name="plugs_snapshotter" respawn="true">
+ <node pkg="pr2_laser_snapshotter" type="pr2_laser_snapshotter" output="screen" name="plugs_snapshotter" respawn="true">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="plugs_laser_scan_assembler/build_cloud" />
<remap from="full_cloud" to="plug_snapshot_cloud" />
@@ -63,7 +63,7 @@
<!-- Generate single sweep scan -->
- <node pkg="point_cloud_assembler" type="point_cloud_srv" output="screen" name="point_cloud_srv" />
+ <node pkg="pr2_laser_snapshotter" type="point_cloud_srv" output="screen" name="point_cloud_srv" />
Modified: pkg/trunk/demos/door_demos_gazebo/manifest.xml
===================================================================
--- pkg/trunk/demos/door_demos_gazebo/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/door_demos_gazebo/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -11,4 +11,5 @@
<depend package="rospy"/>
<depend package="robot_state_publisher"/>
<depend package="nav_msgs"/>
+ <depend package="laser_filters"/>
</package>
Modified: pkg/trunk/demos/milestone2/milestone2_actions/config/perception.xml
===================================================================
--- pkg/trunk/demos/milestone2/milestone2_actions/config/perception.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/milestone2/milestone2_actions/config/perception.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -25,9 +25,9 @@
<!-- Filter for tilt laser shadowing/veiling -->
- <node pkg="laser_scan" type="scan_to_cloud" respawn="false" machine="three" name="tilt_shadow_filter">
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+ <node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="false" machine="three" name="tilt_shadow_filter">
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="tilt_scan" />
<param name="cloud_topic" value="tilt_scan_shadow_filtered" />
<param name="high_fidelity" value="true" />
@@ -89,9 +89,9 @@
</node>
<!-- Filter for base laser shadowing/veiling -->
- <node pkg="laser_scan" type="scan_to_cloud" respawn="false" machine="three" name="base_shadow_filter" >
- <rosparam command="load" ns="scan_filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
- <rosparam command="load" ns="cloud_filters" file="$(find laser_scan)/point_cloud_footprint.filters.yaml" />
+ <node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="false" machine="three" name="base_shadow_filter" >
+ <rosparam command="load" ns="scan_filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
+ <rosparam command="load" ns="cloud_filters" file="$(find laser_filters)/examples/point_cloud_footprint_filter_example.yaml" />
<param name="scan_topic" value="base_scan" />
<param name="cloud_topic" value="base_scan_shadow_filtered" />
</node>
@@ -150,9 +150,9 @@
</node>
<!-- Laser scan assembler for tilt laser -->
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" name="laser_scan_assembler" respawn="false">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" name="laser_scan_assembler" respawn="false">
<remap from="scan_in" to="tilt_scan"/>
- <rosparam command="load" ns="filters" file="$(find laser_scan)/default_scan_shadows.yaml" />
+ <rosparam command="load" ns="filters" file="$(find laser_filters)/examples/shadow_filter_example.yaml" />
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="1000" />
<param name="ignore_laser_skew" type="bool" value="true" />
@@ -161,7 +161,7 @@
</node>
<!-- Setup for detecting the plug on the base -->
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" name="plugs_laser_scan_assembler" respawn="false">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" name="plugs_laser_scan_assembler" respawn="false">
<remap from="scan_in" to="tilt_scan"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -170,7 +170,7 @@
<param name="downsample_factor" type="int" value="2" />
</node>
- <node pkg="point_cloud_assembler" type="point_cloud_snapshotter" name="plugs_snapshotter" respawn="false">
+ <node pkg="pr2_laser_snapshotter" type="pr2_laser_snapshotter" name="plugs_snapshotter" respawn="false">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="plugs_laser_scan_assembler/build_cloud" />
<remap from="full_cloud" to="plug_snapshot_cloud" />
@@ -198,7 +198,7 @@
<!-- Generate single sweep scan -->
- <node pkg="point_cloud_assembler" type="point_cloud_srv" name="point_cloud_srv" />
+ <node pkg="pr2_laser_snapshotter" type="point_cloud_srv" name="point_cloud_srv" />
Modified: pkg/trunk/demos/plug_in/detect_plugstow.launch
===================================================================
--- pkg/trunk/demos/plug_in/detect_plugstow.launch 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/plug_in/detect_plugstow.launch 2009-09-01 08:05:18 UTC (rev 23502)
@@ -2,7 +2,7 @@
<node pkg="pr2_mechanism_control" type="spawner.py" args="$(find pr2_experimental_controllers)/laser_tilt/laser_tilt_controller.xml" />
<!-- <node pkg="pr2_mechanism_controllers" type="send_periodic_cmd.py" args="laser_tilt_controller linear 6 .11 1.36" /> -->
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler">
<remap from="scan_in" to="tilt_scan"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -11,7 +11,7 @@
<param name="downsample_factor" type="int" value="2" />
</node>
- <node pkg="point_cloud_assembler" type="point_cloud_snapshotter" output="screen" name="snapshotter">
+ <node pkg="pr2_laser_snapshotter" type="pr2_laser_snapshotter" output="screen" name="snapshotter">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="laser_scan_assembler/build_cloud" />
<remap from="full_cloud" to="snapshot_cloud" />
Modified: pkg/trunk/demos/plug_in/integration/controllers.launch
===================================================================
--- pkg/trunk/demos/plug_in/integration/controllers.launch 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/plug_in/integration/controllers.launch 2009-09-01 08:05:18 UTC (rev 23502)
@@ -29,7 +29,7 @@
<node pkg="pr2_mechanism_control" type="spawner.py" args="--stopped $(find pr2_experimental_controllers)/laser_tilt/laser_tilt_controller.xml" />
- <node pkg="point_cloud_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler" respawn="true">
+ <node pkg="laser_assembler" type="laser_scan_assembler_srv" output="screen" name="laser_scan_assembler" respawn="true">
<remap from="scan_in" to="tilt_scan"/>
<param name="tf_cache_time_secs" type="double" value="10.0" />
<param name="max_scans" type="int" value="400" />
@@ -38,7 +38,7 @@
<param name="downsample_factor" type="int" value="2" />
</node>
- <node pkg="point_cloud_assembler" type="point_cloud_snapshotter" output="screen" name="snapshotter">
+ <node pkg="pr2_laser_snapshotter" type="pr2_laser_snapshotter" output="screen" name="snapshotter">
<remap from="laser_scanner_signal" to="laser_tilt_controller/laser_scanner_signal"/>
<remap from="build_cloud" to="laser_scan_assembler/build_cloud" />
<remap from="full_cloud" to="snapshot_cloud" />
Modified: pkg/trunk/demos/plug_in/manifest.xml
===================================================================
--- pkg/trunk/demos/plug_in/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/plug_in/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -15,7 +15,7 @@
<depend package="pr2_etherCAT" />
<depend package="joy" />
<depend package="outlet_detection" />
- <depend package="point_cloud_assembler" />
+ <depend package="laser_assembler" />
<depend package="pr2_experimental_controllers" />
<depend package="plug_onbase_detector" />
<depend package="plugs_msgs"/>
Modified: pkg/trunk/demos/test_2dnav_gazebo/manifest.xml
===================================================================
--- pkg/trunk/demos/test_2dnav_gazebo/manifest.xml 2009-09-01 07:28:57 UTC (rev 23501)
+++ pkg/trunk/demos/test_2dnav_gazebo/manifest.xml 2009-09-01 08:05:18 UTC (rev 23502)
@@ -13,7 +13,7 @@
<depend package="robot...
[truncated message content] |
|
From: <sf...@us...> - 2009-09-01 08:09:04
|
Revision: 23504
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23504&view=rev
Author: sfkwc
Date: 2009-09-01 08:08:57 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving or_robot_self_filter to be with other openrave packages
Added Paths:
-----------
pkg/trunk/openrave_planning/or_robot_self_filter/
Removed Paths:
-------------
pkg/trunk/util/or_robot_self_filter/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:09:17
|
Revision: 23503
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23503&view=rev
Author: sfkwc
Date: 2009-09-01 08:08:33 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
deprecated ijg_libjpeg, as we mostly use freeimage now, and image_utils is now deprecated
Added Paths:
-----------
pkg/trunk/deprecated/ijg_libjpeg/
Removed Paths:
-------------
pkg/trunk/3rdparty/ijg_libjpeg/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:10:54
|
Revision: 23506
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23506&view=rev
Author: sfkwc
Date: 2009-09-01 08:10:46 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving into new orocos stack
Added Paths:
-----------
pkg/trunk/stacks/orocos/rtt/
Removed Paths:
-------------
pkg/trunk/3rdparty/rtt/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:12:03
|
Revision: 23507
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23507&view=rev
Author: sfkwc
Date: 2009-09-01 08:11:56 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving into new orocos stack
Added Paths:
-----------
pkg/trunk/stacks/orocos/ocl/
Removed Paths:
-------------
pkg/trunk/3rdparty/ocl/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:12:53
|
Revision: 23508
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23508&view=rev
Author: sfkwc
Date: 2009-09-01 08:12:47 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving into new orocos stack
Added Paths:
-----------
pkg/trunk/stacks/orocos/orocos_ros_integration/
Removed Paths:
-------------
pkg/trunk/sandbox/orocos_ros_integration/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:28:22
|
Revision: 23513
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23513&view=rev
Author: sfkwc
Date: 2009-09-01 08:28:15 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving into new bag_experimental stack
Added Paths:
-----------
pkg/trunk/stacks/bag_experimental/logsetta/
Removed Paths:
-------------
pkg/trunk/util/logsetta/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jl...@us...> - 2009-09-01 08:29:32
|
Revision: 23514
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23514&view=rev
Author: jleibs
Date: 2009-09-01 08:29:22 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
Also checking in contents for pr2_laser_snapshotter and dense_laser_assembler
Added Paths:
-----------
pkg/trunk/calibration_experimental/dense_laser_assembler/CMakeLists.txt
pkg/trunk/calibration_experimental/dense_laser_assembler/Makefile
pkg/trunk/calibration_experimental/dense_laser_assembler/ROS_BUILD_BLACKLIST
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h
pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/tagged_laser_scan.h
pkg/trunk/calibration_experimental/dense_laser_assembler/mainpage.dox
pkg/trunk/calibration_experimental/dense_laser_assembler/manifest.xml
pkg/trunk/calibration_experimental/dense_laser_assembler/msg/Float32MultiArrayStamped.msg
pkg/trunk/calibration_experimental/dense_laser_assembler/msg/JointPVArray.msg
pkg/trunk/calibration_experimental/dense_laser_assembler/scripts/assembler_node.py
pkg/trunk/calibration_experimental/dense_laser_assembler/scripts/laser_image_node.py
pkg/trunk/calibration_experimental/dense_laser_assembler/src/build_dense_laser_snapshot.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_assembler/__init__.py
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_assembler/dense_laser_cache.py
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_assembler_srv.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_msg_filter.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/dense_laser_snapshotter.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/joint_extractor_display.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/laser_imager.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/src/tagged_laser_cache_display.cpp
pkg/trunk/calibration_experimental/dense_laser_assembler/srv/BuildLaserSnapshot.srv
pkg/trunk/pr2/pr2_laser_snapshotter/CMakeLists.txt
pkg/trunk/pr2/pr2_laser_snapshotter/Makefile
pkg/trunk/pr2/pr2_laser_snapshotter/mainpage.dox
pkg/trunk/pr2/pr2_laser_snapshotter/manifest.xml
pkg/trunk/pr2/pr2_laser_snapshotter/src/point_cloud_srv.cpp
pkg/trunk/pr2/pr2_laser_snapshotter/src/pr2_laser_snapshotter.cpp
pkg/trunk/pr2/pr2_laser_snapshotter/srv/BuildCloudAngle.srv
pkg/trunk/pr2/pr2_laser_snapshotter/test/dummy_scan_producer.cpp
pkg/trunk/pr2/pr2_laser_snapshotter/test/test_assembler.cpp
pkg/trunk/pr2/pr2_laser_snapshotter/test/test_laser_assembler.launch
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/CMakeLists.txt
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/CMakeLists.txt (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/CMakeLists.txt 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 2.4.6)
+include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+
+# Set the build type. Options are:
+# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
+# Debug : w/ debug symbols, w/o optimization
+# Release : w/o debug symbols, w/ optimization
+# RelWithDebInfo : w/ debug symbols, w/ optimization
+# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
+#set(ROS_BUILD_TYPE RelWithDebInfo)
+set(ROS_BUILD_TYPE Debug)
+
+rospack(dense_laser_assembler)
+
+rospack_add_library(dense_laser_assembler src/build_dense_laser_snapshot.cpp
+ src/dense_laser_msg_filter.cpp)
+#rospack_add_executable(dense_laser_assembler_srv src/dense_laser_assembler_srv.cpp)
+#target_link_libraries(dense_laser_assembler_srv dense_laser_assembler)
+
+rospack_add_executable(joint_extractor_display src/joint_extractor_display.cpp)
+#rospack_add_executable(tagged_laser_cache_display src/tagged_laser_cache_display.cpp)
+
+rospack_add_executable(dense_laser_snapshotter src/dense_laser_snapshotter.cpp)
+target_link_libraries(dense_laser_snapshotter dense_laser_assembler)
+
+rospack_add_executable(laser_imager src/laser_imager.cpp)
+
+#rospack_add_executable(talker src/talker.cpp)
+#rospack_add_executable(listener src/listener.cpp)
+
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
+set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+
+genmsg()
+gensrv()
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/Makefile
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/Makefile (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/Makefile 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1 @@
+include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/ROS_BUILD_BLACKLIST
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/ROS_BUILD_BLACKLIST (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/ROS_BUILD_BLACKLIST 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1 @@
+
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/build_dense_laser_snapshot.h 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1,76 @@
+/*********************************************************************
+* Software License Agreement (BSD License)
+*
+* Copyright (c) 2008, Willow Garage, Inc.
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of the Willow Garage nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT_H_
+#define DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT_H_
+
+
+#include <vector>
+#include "dense_laser_assembler/laser_scan_tagger.h"
+#include "message_filters/cache.h"
+
+#include "dense_laser_assembler/JointPVArray.h"
+#include "dense_laser_assembler/tagged_laser_scan.h"
+
+#include "calibration_msgs/DenseLaserSnapshot.h"
+
+
+namespace dense_laser_assembler
+{
+
+typedef LaserScanTagger<JointPVArray> LaserJointTagger ;
+typedef TaggedLaserScan<JointPVArray> JointTaggedLaserScan ;
+
+/**
+ * \brief Builds a dense laser snapshot
+ * Grabs all the scans between the start and end time, and composes them into one larger snapshot. This call is non-blocking.
+ * Thus, if there are scans that haven't been cached yet, but occur before the end time, they won't be added to the snapshot.
+ * \param start The earliest scan time to be included in the snapshot
+ * \param end The latest scan time to be included in the snapshot
+ * \param output: A populated snapshot message
+ */
+
+bool buildDenseLaserSnapshot(const std::vector<boost::shared_ptr<const JointTaggedLaserScan> >& scans,
+ const std::vector<std::string>& joint_names,
+ calibration_msgs::DenseLaserSnapshot& snapshot) ;
+
+
+}
+
+
+#endif // DENSE_LASER_ASSEMBLER_BUILD_DENSE_LASER_SNAPSHOT
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/dense_laser_msg_filter.h 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1,201 @@
+/*********************************************************************
+* Software License Agreement (BSD License)
+*
+* Copyright (c) 2008, Willow Garage, Inc.
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of the Willow Garage nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*********************************************************************/
+
+//! \author Vijay Pradeep / vpr...@wi...
+
+
+#ifndef DENSE_LASER_ASSEMBLER_DENSE_LASER_MSG_FILTER_H_
+#define DENSE_LASER_ASSEMBLER_DENSE_LASER_MSG_FILTER_H_
+
+#include "ros/ros.h"
+#include "dense_laser_assembler/joint_pv_msg_filter.h"
+#include "dense_laser_assembler/laser_scan_tagger.h"
+#include "message_filters/cache.h"
+#include "message_filters/connection.h"
+#include "message_filters/simple_filter.h"
+
+
+// Messages
+#include "sensor_msgs/LaserScan.h"
+#include "pr2_mechanism_msgs/MechanismState.h"
+#include "calibration_msgs/DenseLaserSnapshot.h"
+
+#define CONSTRUCT_INT(param, default_val) \
+ int param ;\
+ if (!n_.getParam("~" #param, param) ) \
+ { \
+ ROS_WARN("[~" #param "] not set. Setting to default value of [%u]", default_val) ; \
+ param = default_val ; \
+ } \
+ else \
+ { \
+ ROS_INFO("[~" #param "] set to value of [%u]", param) ; \
+ }
+
+namespace dense_laser_assembler
+{
+
+/**
+ * \brief Listens to LaserScan and MechanismState messages, and builds DenseLaserSnapshots
+ */
+class DenseLaserMsgFilter : public message_filters::SimpleFilter<TaggedLaserScan<JointPVArray> >
+{
+public:
+
+ typedef boost::shared_ptr<const TaggedLaserScan<JointPVArray> > MConstPtr ;
+
+ //! \brief Not yet implemented
+ template<class A, class B>
+ DenseLaserMsgFilter(std::string name, A& a, B&b, unsigned int laser_queue_size,
+ unsigned int laser_cache_size, unsigned int mech_state_cache,
+ std::vector<std::string> joint_names) ;
+
+
+ /**
+ * \brief Construct assembler, and subscribe to the both LaserScan and MechanismState data providers
+ * \param name Namespace for the node. Filter will search for params in ~/[name]/
+ * \param laser_scan_provider MsgFilter that will provide LaserScan messages
+ * \param mech_state_provider MsgFilter that will provide MechanismState message
+ */
+ template<class A, class B>
+ DenseLaserMsgFilter(std::string name, A& laser_scan_provider, B& mech_state_provider)
+ {
+ subscribeLaserScan(laser_scan_provider) ;
+ subscribeMechState(mech_state_provider) ;
+
+ // Get all the different queue size parameters
+ CONSTRUCT_INT(laser_queue_size, 40) ;
+ CONSTRUCT_INT(laser_cache_size, 1000) ;
+ CONSTRUCT_INT(mech_state_cache_size, 100) ;
+
+ // Get the list of joints that we care about
+ joint_names_.clear() ;
+ bool found_joint = true ;
+ int joint_count = 0 ;
+
+ char param_buf[1024] ;
+ while(found_joint)
+ {
+ sprintf(param_buf, "~joint_name_%02u", joint_count) ;
+ std::string param_name = param_buf ;
+ std::string cur_joint_name ;
+ found_joint = n_.getParam(param_name, cur_joint_name) ;
+ if (found_joint)
+ {
+ ROS_INFO("[%s] -> %s", param_name.c_str(), cur_joint_name.c_str()) ;
+ joint_names_.push_back(cur_joint_name) ;
+ }
+ else
+ ROS_DEBUG("Did not find param [%s]", param_name.c_str()) ;
+ joint_count++ ;
+ }
+
+ // Configure the joint_pv_filter and associated cache
+ joint_pv_filter_.setJointNames(joint_names_) ;
+ joint_cache_.setCacheSize(mech_state_cache_size) ;
+ joint_cache_.connectInput(joint_pv_filter_) ;
+
+ // Set up the laser tagger and associated cache
+ laser_tagger_.setMaxQueueSize(laser_queue_size) ;
+ laser_tagger_.subscribeTagCache(joint_cache_) ;
+ tagged_laser_cache_.setCacheSize(laser_cache_size) ;
+ tagged_laser_cache_.connectInput(laser_tagger_) ;
+ }
+
+ //! \brief Not yet implemented
+ void processLaserScan(const sensor_msgs::LaserScanConstPtr& msg) ;
+
+ //! \brief Not yet implemented
+ void processMechState(const pr2_mechanism_msgs::MechanismState& msg) ;
+
+ //! \brief Get what the oldest time processed scan is
+ ros::Time getOldestScanTime() ;
+ //! \brief Get what the new time processed scan is
+ ros::Time getNewstScanTime() ;
+
+ /**
+ * \brief Builds a dense laser snapshot
+ * Grabs all the scans between the start and end time, and composes them into one larger snapshot. This call is non-blocking.
+ * Thus, if there are scans that haven't been cached yet, but occur before the end time, they won't be added to the snapshot.
+ * \param start The earliest scan time to be included in the snapshot
+ * \param end The latest scan time to be included in the snapshot
+ * \param output: A populated snapshot message
+ * \return True if successful. False if unsuccessful
+ */
+ bool buildSnapshotFromInterval(const ros::Time& start, const ros::Time& end, calibration_msgs::DenseLaserSnapshot& snapshot) ;
+private:
+ ros::NodeHandle n_ ;
+
+ /**
+ * \brief Subscribe to a message filter that outputs LaserScans.
+ * This is only useful if we're not subscribing to laser scans in the constructor.
+ * Thus, this will stay private until we have more flexible constructors
+ */
+ template<class A>
+ void subscribeLaserScan(A& a)
+ {
+ laser_tagger_.subscribeLaserScan(a) ;
+ }
+
+ /**
+ * \brief Subscribe to a message filter that outputs MechanismState.
+ * This is only useful if we're not subscribing to MechanismState in the constructor.
+ * Thus, this will stay private until we have more flexible constructors
+ */
+ template<class B>
+ void subscribeMechState(B& b)
+ {
+ joint_pv_filter_.connectInput(b) ;
+ }
+
+ //! Extracts positions data for a subset of joints in MechanismState
+ JointPVMsgFilter joint_pv_filter_ ;
+
+ //! Stores a time history of position data for a subset of joints in MechanismState
+ message_filters::Cache<JointPVArray> joint_cache_ ;
+
+ //! Combines a laser scan with the set of pertinent joint positions
+ LaserScanTagger< JointPVArray > laser_tagger_ ;
+
+ //! Stores a time history of laser scans that are annotated with joint positions.
+ message_filters::Cache< TaggedLaserScan<JointPVArray> > tagged_laser_cache_ ;
+
+ std::vector<std::string> joint_names_ ;
+} ;
+
+}
+
+#undef CONSTRUCT_INT
+
+#endif
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/joint_pv_msg_filter.h 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1,155 @@
+/*********************************************************************
+* Software License Agreement (BSD License)
+*
+* Copyright (c) 2008, Willow Garage, Inc.
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of the Willow Garage nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
+#define DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
+
+#include <vector>
+
+#include <boost/thread.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/signals.hpp>
+#include <boost/bind.hpp>
+#include <message_filters/connection.h>
+#include <message_filters/simple_filter.h>
+
+// Messages
+#include "dense_laser_assembler/JointPVArray.h"
+#include "pr2_mechanism_msgs/MechanismState.h"
+
+namespace dense_laser_assembler
+{
+
+/**
+ * Streams an array of joint positions and velocities from MechanismState,
+ * given a mapping from joint_names to array indices
+ */
+class JointPVMsgFilter : public message_filters::SimpleFilter<JointPVArray>
+{
+public:
+ /**
+ * \brief Subscribe to another MessageFilter at construction time
+ * \param a The parent message filter
+ * \param joint_names Vector of joint names that we want to output. Must match
+ * joint names in mechanism state
+ */
+ template<class A>
+ JointPVMsgFilter(A& a, std::vector<std::string> joint_names = std::vector<std::string>())
+ {
+ setJointNames(joint_names);
+ subscribe(a);
+ }
+
+ /**
+ * \brief Construct without subcribing to another MsgFilter at construction time
+ * \param joint_names Vector of joint names that we want to output. Must match
+ * joint names in mechanism state
+ */
+ JointPVMsgFilter(std::vector<std::string> joint_names = std::vector<std::string>())
+ {
+ setJointNames(joint_names);
+ }
+
+ /**
+ * \brief Subcribes this MsgFilter to another MsgFilter
+ * \param a The MsgFilter that this MsgFilter should get data from
+ */
+ template<class A>
+ void connectInput(A& a)
+ {
+ incoming_connection_ = a.registerCallback(boost::bind(&JointPVMsgFilter::processMechState, this, _1));
+ }
+
+ /**
+ * \brief Define the mapping from MechanismState to JointPVArray
+ */
+ void setJointNames(std::vector<std::string> joint_names)
+ {
+ boost::mutex::scoped_lock lock(joint_mapping_mutex_);
+ joint_names_ = joint_names;
+ }
+
+ /**
+ * \brief Extracts joint positions from MechState, using the joint_names mapping.
+ * Also calls all the callback functions as set by connect()
+ * \param msg The MechanismState message from which we want to extract positions
+ */
+ void processMechState(const pr2_mechanism_msgs::MechanismStateConstPtr& msg)
+ {
+ // Allocate mem to store out output data
+ boost::shared_ptr<JointPVArray> joint_array_ptr(new JointPVArray) ;
+
+ // Copy MechState data into a JointPVArray
+ {
+ boost::mutex::scoped_lock lock(joint_mapping_mutex_);
+
+ joint_array_ptr->pos.resize(joint_names_.size()) ;
+ joint_array_ptr->vel.resize(joint_names_.size()) ;
+
+ joint_array_ptr->header = msg->header ;
+
+ //! \todo This can seriously be optimized using a map, or some sort of cached lookup
+ for (unsigned int i=0; i<joint_names_.size(); i++)
+ {
+ for (unsigned int j=0; j<msg->joint_states.size(); j++)
+ {
+ if (joint_names_[i] == msg->joint_states[j].name )
+ {
+ joint_array_ptr->pos[i] = msg->joint_states[j].position ;
+ joint_array_ptr->vel[i] = msg->joint_states[j].velocity ;
+ break ;
+ }
+ }
+ }
+ }
+
+ // Call all connected callbacks
+ signalMessage(joint_array_ptr) ;
+ }
+
+protected:
+ boost::mutex joint_mapping_mutex_ ;
+ std::vector<std::string> joint_names_ ;
+
+ // Filter Connection Stuff
+ message_filters::Connection incoming_connection_;
+} ;
+
+}
+
+#endif // DENSE_LASER_ASSEMBLER_JOINT_PV_MSG_FILTER_H_
Added: pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h
===================================================================
--- pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h (rev 0)
+++ pkg/trunk/calibration_experimental/dense_laser_assembler/include/dense_laser_assembler/laser_scan_tagger.h 2009-09-01 08:29:22 UTC (rev 23514)
@@ -0,0 +1,217 @@
+/*********************************************************************
+* Software License Agreement (BSD License)
+*
+* Copyright (c) 2008, Willow Garage, Inc.
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of the Willow Garage nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*********************************************************************/
+
+/*! \mainpage
+ * \htmlinclude manifest.html
+ */
+
+#ifndef DENSE_LASER_ASSEMBLER_LASER_SCAN_TAGGER_H_
+#define DENSE_LASER_ASSEMBLER_LASER_SCAN_TAGGER_H_
+
+#include <deque>
+#include "sensor_msgs/LaserScan.h"
+#include "message_filters/cache.h"
+#include "boost/shared_ptr.hpp"
+#include "dense_laser_assembler/tagged_laser_scan.h"
+
+#include <message_filters/simple_filter.h>
+
+namespace dense_laser_assembler
+{
+
+/**
+ * Listens to LaserScans and a cache of 'tag' messages. Outputs a laserScan
+ * whenever there is a tag msg that occurs before and after the scan.
+ */
+template <class T>
+class LaserScanTagger : public message_filters::SimpleFilter<TaggedLaserScan<T> >
+{
+public:
+
+ typedef boost::shared_ptr<const T> TConstPtr ;
+ typedef boost::shared_ptr<const TaggedLaserScan<T> > MConstPtr ;
+
+
+
+ template<class A>
+ /**
+ * \brief Construct object, and also subscribe to relevant data sources
+ */
+ LaserScanTagger(A& a, message_filters::Cache<T>& tag_cache, unsigned int max_queue_size)
+ {
+ subscribeLaserScan(a);
+ subscribeTagCache(tag_cache);
+ setMaxQueueSize(max_queue_size);
+ tag_cache_ = &tag_cache ;
+ max_queue_size_ = max_queue_size ;
+ }
+
+ LaserScanTagger()
+ {
+ tag_cache_ = NULL;
+ setMaxQueueSize(1);
+ }
+
+ ~LaserScanTagger()
+ {
+ incoming_laser_scan_connection_.disconnect() ;
+ incoming_tag_connection_.disconnect() ;
+ }
+
+ template<class A>
+ void subscribeLaserScan(A& a)
+ {
+ incoming_laser_scan_connection_ = a.registerCallback(boost::bind(&LaserScanTagger<T>::processLaserScan, this, _1));
+ }
+
+ void subscribeTagCache(message_filters::Cache<T>& tag_cache)
+ {
+ tag_cache_ = &tag_cache ;
+ incoming_tag_connection_ = tag_cache.registerCallback(boost::bind(&LaserScanTagger<T>::processTag, this, _1));
+ }
+
+ void setMaxQueueSize(unsigned int max_queue_size)
+ {
+ boost::mutex::scoped_lock lock(queue_mutex_);
+ max_queue_size_ = max_queue_size;
+ }
+
+ /**
+ * Adds the laser scan onto the queue of scans that need to be matched with the tags
+ */
+ void processLaserScan(const sensor_msgs::LaserScanConstPtr& msg)
+ {
+ {
+ boost::mutex::scoped_lock lock(queue_mutex_);
+ //! \todo need to more carefully decide on overflow logic
+ if (queue_.size() < max_queue_size_)
+ queue_.push_back(msg) ;
+ else
+ ROS_WARN("Queue full, not pushing new data onto queue until queue is serviced") ;
+ }
+
+ update() ;
+ }
+
+
+ /**
+ * Since we just received a new tag message, we might have laser scans that we need to process
+ */
+ void processTag(const TConstPtr& msg)
+ {
+ update() ;
+ }
+
+ /**
+ * Triggers the module to try to service the queue
+ */
+ void update()
+ {
+ //! \todo This is not a good enough check. We need to somehow make sure the cache hasn't been destructed
+ if (!tag_cache_)
+ {
+ ROS_WARN("Have a NULL pointer to TagCache. Skipping update");
+ return;
+ }
+
+ bool did_something = true ;
+
+ // It's possible we need to process multiple laser scans. Therefore, keep
+ // looping until we reach a scan that's a no-op
+ while (true)
+ {
+ //! \todo Come up with better locking/unlocking in this loop
+ queue_mutex_.lock();
+
+ // Exit condition
+ if (!did_something || queue_.size() == 0)
+ {
+ queue_mutex_.unlock();
+ break;
+ }
+
+ did_something = false ; // Haven't done anything yet
+
+ const sensor_msgs::LaserScanConstPtr& elem = queue_.front() ;
+
+ ros::Time scan_start = elem->header.stamp ;
+ ros::Time scan_end = elem->header.stamp + ros::Duration().fromSec(elem->time_increment*elem->ranges.size()) ;
+
+ boost::shared_ptr<const T> tag_before = tag_cache_->getElemBeforeTime(scan_start) ;
+ boost::shared_ptr<const T> tag_after = tag_cache_->getElemAfterTime(scan_end) ;
+
+
+ if (!tag_before) // Can't get old enough tag. Give up
+ {
+ queue_.pop_front() ;
+ did_something = true ;
+ queue_mutex_.unlock() ;
+ }
+ else if (!tag_after) // Don't have...
[truncated message content] |
|
From: <sf...@us...> - 2009-09-01 08:33:40
|
Revision: 23517
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23517&view=rev
Author: sfkwc
Date: 2009-09-01 08:33:32 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving into new manipulation_common stack
Added Paths:
-----------
pkg/trunk/stacks/manipulation_common/trajectory/
Removed Paths:
-------------
pkg/trunk/util/trajectory/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 08:37:47
|
Revision: 23518
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23518&view=rev
Author: sfkwc
Date: 2009-09-01 08:37:38 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving toro into vision
Added Paths:
-----------
pkg/trunk/vision/toro/
Removed Paths:
-------------
pkg/trunk/3rdparty/toro/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 17:27:46
|
Revision: 23545
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23545&view=rev
Author: sfkwc
Date: 2009-09-01 17:27:34 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving to motion_planning stack
Added Paths:
-----------
pkg/trunk/motion_planning/libsunflower/
Removed Paths:
-------------
pkg/trunk/3rdparty/libsunflower/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 17:27:56
|
Revision: 23546
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23546&view=rev
Author: sfkwc
Date: 2009-09-01 17:27:48 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving to motion_planning stack
Added Paths:
-----------
pkg/trunk/motion_planning/nepumuk/
Removed Paths:
-------------
pkg/trunk/3rdparty/nepumuk/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 17:46:57
|
Revision: 23549
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23549&view=rev
Author: sfkwc
Date: 2009-09-01 17:46:49 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving self_watch to motion_planning
Added Paths:
-----------
pkg/trunk/motion_planning/self_watch/
Removed Paths:
-------------
pkg/trunk/util/self_watch/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sf...@us...> - 2009-09-01 17:55:50
|
Revision: 23554
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=23554&view=rev
Author: sfkwc
Date: 2009-09-01 17:55:42 +0000 (Tue, 01 Sep 2009)
Log Message:
-----------
moving robot_self_filter to motion_planning
Added Paths:
-----------
pkg/trunk/motion_planning/robot_self_filter/
Removed Paths:
-------------
pkg/trunk/util/robot_self_filter/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|