diff --git a/config/camera_average_filter_config.yaml b/config/camera_average_filter_config.yaml new file mode 100755 index 0000000000000000000000000000000000000000..2bb9a8ae2ee452fa358b3ea50fdd32e40168995f --- /dev/null +++ b/config/camera_average_filter_config.yaml @@ -0,0 +1 @@ +iBuffer: 5 diff --git a/config/camera_hole_detector_far_config.yaml b/config/camera_hole_detector_far_config.yaml new file mode 100755 index 0000000000000000000000000000000000000000..0e90a86df029fd7bc09020b710bc16cb8e38bbe7 --- /dev/null +++ b/config/camera_hole_detector_far_config.yaml @@ -0,0 +1,7 @@ +hole_min_p: 25 +num_cells: 3 +box_y: 0.8 +box_z_ini: -0.1 +box_z_end: 0.1 +box_x_ini: 1.0 +box_x_end: 1.4 diff --git a/config/camera_hole_detector_near_config.yaml b/config/camera_hole_detector_near_config.yaml new file mode 100755 index 0000000000000000000000000000000000000000..84ad071579b43db7c8ab6123f87944dc686a4a04 --- /dev/null +++ b/config/camera_hole_detector_near_config.yaml @@ -0,0 +1,7 @@ +hole_min_p: 25 +num_cells: 2 +box_y: 0.45 +box_z_ini: -0.1 +box_z_end: 0.1 +box_x_ini: 0.6 +box_x_end: 1.0 diff --git a/config/camera_obstacle_normals_config.yaml b/config/camera_obstacle_normals_config.yaml new file mode 100755 index 0000000000000000000000000000000000000000..1ce6dbef806f81974b01423a9fca4ec9de6bae1d --- /dev/null +++ b/config/camera_obstacle_normals_config.yaml @@ -0,0 +1,3 @@ +filter_min_dist: 0.3 +normal_KSearch: 30 +max_inc: 0.25 diff --git a/config/lidar_angle_filter_config.yaml b/config/lidar_angle_filter_config.yaml index 6adc07655e0ba1d929c667b77714d29bd190eb1e..d4a6191c057f2919e9fe2547f9c7f35f2f4cb3b6 100644 --- a/config/lidar_angle_filter_config.yaml +++ b/config/lidar_angle_filter_config.yaml @@ -17,6 +17,6 @@ range3: range4: min: -2.2 max: -2.0 -range4: +range5: min: 2.0 max: 2.2 diff --git a/config/lidar_obstacle_detector_config.yaml b/config/lidar_obstacle_detector_config.yaml new file mode 100755 index 0000000000000000000000000000000000000000..ea3720e89733800115091f0ee10ad7944fc8107a --- /dev/null +++ b/config/lidar_obstacle_detector_config.yaml @@ -0,0 +1,17 @@ +# sensor information +base_frame_id: "helena/base_footprint" +min_range: 0.1 +max_range: 50.0 +sensor_height: 0.3 +# node configuration +debug: True +max_inc: 0.3 +min_inc: 0.05 +inc_area_filter: 10 +max_ring: 10 +# farthest point computation +farthest_enable: False +farthest_num_rings: 9 +# virtual point computation +virtual_enable: False +virtual_floor_threshold: 0.03 diff --git a/launch/include/3d_nav.launch b/launch/include/3d_nav.launch index 71ec35ac226fb8b9b03e061f8a4b256195e5fb4e..77b1c708fb9e2fc1729605b0159e564e41c31c02 100644 --- a/launch/include/3d_nav.launch +++ b/launch/include/3d_nav.launch @@ -16,7 +16,7 @@ <arg name="lidar_filter_config_file" value="$(find iri_helena_rosnav)/config/lidar_angle_filter_config.yaml"/> <arg name="lidar_filter_cloud_in" value="/helena/sensors/rslidar_points" /> <arg name="lidar_detector_node_name" value="lidar_detector"/> - <arg name="lidar_detector_config_file" value="$(find iri_lidar_obstacle_detector)/config/default_config.yaml"/> + <arg name="lidar_detector_config_file" value="$(find iri_helena_rosnav)/config/lidar_obstacle_detector_config.yaml"/> </include> <include file="$(find iri_rosnav)/launch/include/3d_nav_camera.launch"> @@ -28,14 +28,14 @@ <arg name="hole_nodelet_manager" value="hole_nodelet_manager" /> <arg name="camera_cloud_in" value="sensors/nav_cam/depth_registered/points"/> <arg name="average_node_name" value="average_point_cloud"/> - <arg name="average_config_file" value="$(find iri_average_point_cloud)/config/default_config.yaml"/> + <arg name="average_config_file" value="$(find iri_helena_rosnav)/config/camera_average_filter_config.yaml"/> <arg name="normals_node_name" value="obstacle_detection_normals"/> - <arg name="normals_config_file" value="$(find iri_nav_obstacle_detection_normals)/config/default_config.yaml"/> + <arg name="normals_config_file" value="$(find iri_helena_rosnav)/config/camera_obstacle_normals_config.yaml"/> <arg name="near_hole_detection_node_name" value="near_hole_detection"/> - <arg name="near_hole_detection_config_file" value="$(find iri_point_cloud_hole_detection)/config/near_config.yaml"/> + <arg name="near_hole_detection_config_file" value="$(find iri_helena_rosnav)/config/camera_hole_detector_near_config.yaml"/> <arg name="hole_detection_cloud_in" value="radius_outlier_removal/output"/> <arg name="far_hole_detection_node_name" value="far_hole_detection"/> - <arg name="far_hole_detection_config_file" value="$(find iri_point_cloud_hole_detection)/config/far_config.yaml"/> + <arg name="far_hole_detection_config_file" value="$(find iri_helena_rosnav)/config/camera_hole_detector_far_config.yaml"/> </include> </launch> diff --git a/params/costmap/3d_common_params.yaml b/params/costmap/3d_common_params.yaml index e0c534f6e826965cd0b6c804d115e1c563dfb801..1a9b4efee9ccef9cd3563365855b87f13dc8c4b2 100755 --- a/params/costmap/3d_common_params.yaml +++ b/params/costmap/3d_common_params.yaml @@ -11,7 +11,7 @@ always_send_full_costmap: false transform_tolerance: 1.0 width: 10.0 height: 10.0 -resolution: 0.1 +resolution: 0.05 origin_x: 0.0 origin_y: 0.0 @@ -22,18 +22,31 @@ obstacle_layer_lidar: max_obstacle_height: 10.0 footprint_clearing_enabled: false combination_method: 1 - observation_sources: lidar_marking + observation_sources: lidar_marking lidar_clearing lidar_marking: { sensor_frame: helena/base_footprint, - data_type: LaserScan, - topic: /helena/lidar_detector/scan_out, + data_type: PointCloud2, + topic: /helena/lidar_detector/obstacles, observation_persistence: 0.0, marking: true, + clearing: false, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, + expected_update_rate: 1, + obstacle_range: 10.0, + raytrace_range: 200.0 + } + lidar_clearing: { + sensor_frame: helena/base_footprint, + data_type: PointCloud2, + topic: /helena/lidar_detector/free_space, + observation_persistence: 0.0, + marking: false, clearing: true, min_obstacle_height: -10.0, max_obstacle_height: 10.0, expected_update_rate: 1, - obstacle_range: 5.0, + obstacle_range: 10.0, raytrace_range: 200.0 } @@ -41,20 +54,34 @@ obstacle_layer_camera: enabled: true track_unknown_space: true transform_tolerance: 0.2 - max_obstacle_height: 100.0 #1.0 + max_obstacle_height: 10.0 #1.0 footprint_clearing_enabled: false combination_method: 1 - observation_sources: camera_marking + observation_sources: camera_marking camera_clearing camera_marking: { sensor_frame: helena/base_footprint, - data_type: PointCloud, + data_type: PointCloud2, topic: /helena/obstacle_detection_normals/obstacles, observation_persistence: 0.0, marking: true, + clearing: false, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, + expected_update_rate: 1, + obstacle_range: 5.0, + raytrace_range: 10.0 + } + + camera_clearing: { + sensor_frame: helena/base_footprint, + data_type: PointCloud2, + topic: /helena/obstacle_detection_normals/free_space, + observation_persistence: 0.0, + marking: false, clearing: true, - min_obstacle_height: -100.0, - max_obstacle_height: 100.0, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, expected_update_rate: 1, obstacle_range: 5.0, raytrace_range: 10.0 @@ -64,7 +91,7 @@ hole_layer_near_camera: enabled: true track_unknown_space: true transform_tolerance: 0.2 - max_obstacle_height: 100.0 #1.0 + max_obstacle_height: 10.0 #1.0 footprint_clearing_enabled: false combination_method: 1 observation_sources: hole_near_marking hole_near_clearing @@ -76,8 +103,8 @@ hole_layer_near_camera: observation_persistence: 0.0, marking: true, clearing: false, - min_obstacle_height: -100.0, - max_obstacle_height: 100.0, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, expected_update_rate: 1, obstacle_range: 5.0, raytrace_range: 10.0 @@ -90,8 +117,8 @@ hole_layer_near_camera: observation_persistence: 0.0, marking: false, clearing: true, - min_obstacle_height: -100.0, - max_obstacle_height: 100.0, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, expected_update_rate: 1, obstacle_range: 5.0, raytrace_range: 10.0 @@ -101,7 +128,7 @@ hole_layer_far_camera: enabled: true track_unknown_space: true transform_tolerance: 0.2 - max_obstacle_height: 100.0 #1.0 + max_obstacle_height: 10.0 #1.0 footprint_clearing_enabled: false combination_method: 1 observation_sources: hole_far_marking hole_far_clearing @@ -113,8 +140,8 @@ hole_layer_far_camera: observation_persistence: 0.0, marking: true, clearing: false, - min_obstacle_height: -100.0, - max_obstacle_height: 100.0, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, expected_update_rate: 1, obstacle_range: 5.0, raytrace_range: 10.0 @@ -127,8 +154,8 @@ hole_layer_far_camera: observation_persistence: 0.0, marking: false, clearing: true, - min_obstacle_height: -100.0, - max_obstacle_height: 100.0, + min_obstacle_height: -10.0, + max_obstacle_height: 10.0, expected_update_rate: 1, obstacle_range: 5.0, raytrace_range: 10.0 @@ -137,6 +164,5 @@ hole_layer_far_camera: inflation_layer: enabled: true inflate_unknown: false - inflation_radius: 2.0 cost_scaling_factor: 1.8 - inflation_radius: 1.0 + inflation_radius: 0.5 diff --git a/params/costmap/3d_local_params.yaml b/params/costmap/3d_local_params.yaml index 54d160e0e86fd02dd7e4b1c2937ed55a607fd630..8db284a79a20060283f53674936f91876df12f38 100755 --- a/params/costmap/3d_local_params.yaml +++ b/params/costmap/3d_local_params.yaml @@ -5,7 +5,7 @@ publish_frequency: 2.0 rolling_window: true width: 10.0 height: 10.0 -resolution: 0.1 +resolution: 0.05 #origin_x: 0.0 #origin_y: 0.0 diff --git a/params/costmap/no_map/3d_global_params.yaml b/params/costmap/no_map/3d_global_params.yaml index 279a9c254d6fe6198b05afb88a590b2d23127008..b789949b65032edddd9f8d18a32f946350e6f0b7 100644 --- a/params/costmap/no_map/3d_global_params.yaml +++ b/params/costmap/no_map/3d_global_params.yaml @@ -6,7 +6,7 @@ rolling_window: true transform_tolerance: 1.0 width: 20.0 height: 20.0 -resolution: 0.2 +resolution: 0.05 origin_x: 0.0 origin_y: 0.0 diff --git a/params/move_base_params.yaml b/params/move_base_params.yaml index d64f555c8b8aa403903261f7063995d149a98af8..62b18a5f18d62da80d623fe88f616f8d2c48558d 100644 --- a/params/move_base_params.yaml +++ b/params/move_base_params.yaml @@ -10,7 +10,7 @@ recovery_behaviors: controller_frequency: 10.0 planner_patience: 5.0 controller_patience: 5.0 -planner_frequency: 0.0 +planner_frequency: 1.0 max_planning_retries: -1 conservative_reset_dist: 3.0 diff --git a/rviz/3d_helena.rviz b/rviz/3d_helena.rviz index c62b758a8fc4c8f7aa5fef677c9e39596f74d736..fc388da079f01cd7b90cf196f0d6b97cf7a985aa 100644 --- a/rviz/3d_helena.rviz +++ b/rviz/3d_helena.rviz @@ -8,10 +8,11 @@ Panels: - /TF1/Frames1 - /Nav1 - /3d_nav_detection1 - - /3d_nav_detection1/lidar1 + - /3d_nav_detection1/lidar1/lidar_obstacles1 + - /3d_nav_detection1/lidar1/lidar_free_space1 - /3d_nav_detection1/camera1 Splitter Ratio: 0.5486725568771362 - Tree Height: 691 + Tree Height: 664 - Class: rviz/Selection Name: Selection - Class: rviz/Tool Properties @@ -30,7 +31,7 @@ Panels: Experimental: false Name: Time SyncMode: 0 - SyncSource: lidar_obstacle + SyncSource: obstacle_normals - Class: rviz_plugin_tutorials/Teleop Name: Teleop Topic: "" @@ -478,7 +479,7 @@ Visualization Manager: Use Fixed Frame: true Use rainbow: true Value: false - Enabled: false + Enabled: true Name: Sensors - Class: rviz/Group Displays: @@ -647,13 +648,43 @@ Visualization Manager: - Alpha: 1 Autocompute Intensity Bounds: true Autocompute Value Bounds: - Max Value: 1.410619621111664e-8 - Min Value: -1.076524824838998e-8 + Max Value: 10 + Min Value: -10 + Value: true + Axis: Z + Channel Name: intensity + Class: rviz/PointCloud2 + Color: 204; 0; 0 + Color Transformer: FlatColor + Decay Time: 0 + Enabled: true + Invert Rainbow: false + Max Color: 255; 255; 255 + Max Intensity: 4096 + Min Color: 0; 0; 0 + Min Intensity: 0 + Name: lidar_obstacles + Position Transformer: XYZ + Queue Size: 10 + Selectable: true + Size (Pixels): 3 + Size (m): 0.009999999776482582 + Style: Points + Topic: /helena/lidar_detector/obstacles + Unreliable: false + Use Fixed Frame: true + Use rainbow: true + Value: true + - Alpha: 1 + Autocompute Intensity Bounds: true + Autocompute Value Bounds: + Max Value: 10 + Min Value: -10 Value: true Axis: Z Channel Name: intensity - Class: rviz/LaserScan - Color: 255; 0; 0 + Class: rviz/PointCloud2 + Color: 115; 210; 22 Color Transformer: FlatColor Decay Time: 0 Enabled: true @@ -662,14 +693,14 @@ Visualization Manager: Max Intensity: 4096 Min Color: 0; 0; 0 Min Intensity: 0 - Name: lidar_obstacle + Name: lidar_free_space Position Transformer: XYZ Queue Size: 10 Selectable: true - Size (Pixels): 10 + Size (Pixels): 3 Size (m): 0.009999999776482582 Style: Points - Topic: /helena/lidar_detector/scan_out + Topic: /helena/lidar_detector/free_space Unreliable: false Use Fixed Frame: true Use rainbow: true @@ -686,7 +717,7 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 0 @@ -703,7 +734,7 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false - Class: rviz/Image Enabled: true Image Topic: /helena/lidar_detector/obstacles_img/image_raw @@ -732,7 +763,7 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: RGB8 Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 4096 @@ -749,7 +780,7 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false - Alpha: 1 Autocompute Intensity Bounds: true Autocompute Value Bounds: @@ -762,7 +793,7 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: RGB8 Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 4096 @@ -779,7 +810,7 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false - Alpha: 1 Autocompute Intensity Bounds: true Autocompute Value Bounds: @@ -805,7 +836,7 @@ Visualization Manager: Size (Pixels): 3 Size (m): 0.009999999776482582 Style: Points - Topic: /helena/obstacle_detection_normals/all_rg + Topic: /helena/obstacle_detection_normals/free_space Unreliable: false Use Fixed Frame: true Use rainbow: true @@ -818,7 +849,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: intensity - Class: rviz/PointCloud + Class: rviz/PointCloud2 Color: 255; 255; 255 Color Transformer: RGB8 Decay Time: 0 @@ -832,7 +863,7 @@ Visualization Manager: Position Transformer: XYZ Queue Size: 10 Selectable: true - Size (Pixels): 2 + Size (Pixels): 3 Size (m): 0.009999999776482582 Style: Points Topic: /helena/obstacle_detection_normals/obstacles @@ -852,7 +883,7 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 4096 @@ -869,7 +900,7 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false - Alpha: 1 Autocompute Intensity Bounds: true Autocompute Value Bounds: @@ -882,7 +913,7 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 4096 @@ -899,7 +930,7 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false Enabled: true Name: camera Enabled: true @@ -932,33 +963,33 @@ Visualization Manager: Views: Current: Class: rviz/Orbit - Distance: 10 + Distance: 10.852215766906738 Enable Stereo Rendering: Stereo Eye Separation: 0.05999999865889549 Stereo Focal Distance: 1 Swap Stereo Eyes: false Value: false Focal Point: - X: 0 - Y: 0 - Z: 0 + X: 0.9270930290222168 + Y: 0.05228966474533081 + Z: 0.17851565778255463 Focal Shape Fixed Size: false Focal Shape Size: 0.05000000074505806 Invert Z Axis: false Name: Current View Near Clip Distance: 0.009999999776482582 - Pitch: 0.7853981852531433 + Pitch: 0.7197973132133484 Target Frame: helena/base_footprint Value: Orbit (rviz) - Yaw: 0.7853981852531433 + Yaw: 3.5035836696624756 Saved: ~ Window Geometry: Displays: collapsed: false - Height: 1052 + Height: 1025 Hide Left Dock: false Hide Right Dock: false - QMainWindow State: 000000ff00000000fd0000000400000000000001d30000033efc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000033e000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000001e007200650061006c00730065006e00730065005f0063006f006c006f00720000000288000000d80000001600fffffffb0000000c00540065006c0065006f00700000000315000000b30000004700fffffffb0000001e007200650061006c00730065006e00730065005f0063006f006c006f007200000002f9000001090000000000000000000000010000010f00000323fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000323000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073d0000007efc0100000003fb00000016006c0069006400610072005f0069006d00610067006501000000000000073d0000008400fffffffb0000000800540069006d006500000000000000073f000004f300fffffffb0000000800540069006d00650100000000000004500000000000000000000005640000033e00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + QMainWindow State: 000000ff00000000fd0000000400000000000001d300000323fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000323000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000001e007200650061006c00730065006e00730065005f0063006f006c006f00720000000288000000d80000001600fffffffb0000000c00540065006c0065006f00700000000315000000b30000004700fffffffb0000001e007200650061006c00730065006e00730065005f0063006f006c006f007200000002f9000001090000000000000000000000010000010f00000323fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000323000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073d0000007efc0100000003fb00000016006c0069006400610072005f0069006d00610067006501000000000000073d0000008400fffffffb0000000800540069006d006500000000000000073f000004f300fffffffb0000000800540069006d00650100000000000004500000000000000000000005640000032300000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Selection: collapsed: false Teleop: @@ -971,7 +1002,7 @@ Window Geometry: collapsed: false Width: 1853 X: 67 - Y: 0 + Y: 27 lidar_image: collapsed: false realsense_color: