<commit_before><launch>
    <arg name="camera"/>
	<arg name="machine" default="localhost" />
	<arg name="user" default="" />
	<arg name="with_mux" default="false" />
	<arg name="z_stair_threshold" default="0.05"/>
	<arg name="z_obstacle_threshold" default="0.1"/>
	<arg name="with_head_camera" default="false"/>
	<arg name="head_camera" default="head_xtion"/>

	<machine name="$(arg machine)" address="$(arg machine)" env-loader="/opt/strands/strands_catkin_ws/devel/env.sh" user="$(arg user)" default="true"/>

    <!-- This node downsamples cloud and removes voxels with too few points in them -->
    <node pkg="strands_movebase" type="subsample_cloud" name="subsample_cloud" output="screen">
        <param name="input" value="$(arg camera)/depth/points"/>
        <param name="output" value="/move_base/points_subsampled"/>
    </node>
    
    <!-- This node divides into points below and above the floor -->
    <node pkg="strands_movebase" type="mirror_floor_points" name="mirror_floor_points" output="screen">
        <param name="input" value="/move_base/points_subsampled"/>
        <param name="obstacle_output" value="/move_base/points_clearing"/>
        <param name="floor_output" value="/move_base/points_cliff"/>
        <!-- Distance below floor that's counted as stair -->
        <param name="below_threshold" value="$(arg z_stair_threshold)"/>
    </node>

    <!-- This node removes the desired cutoff pixels from the cloud edges -->
    <node pkg="strands_movebase" type="remove_edges_cloud" name="remove_edges_cloud" output="screen">
        <param name="input" value="/move_base/points_clearing"/>
        <param name="output" value="/move_base/points_obstacle"/>
        <param name="cutoff" value="50.0"/>
        <param name="cutoff_z" value="0.3"/>
    </node>
    
    <!-- This node downsamples cloud and removes voxels with too few points in them -->
    <node pkg="strands_movebase" type="subsample_cloud" name="head_subsample_cloud" output="screen" if="$(arg with_head_camera)">
        <param name="input" value="$(arg head_camera)/depth/points"/>
        <param name="output" value="/move_base/head_points_clearing"/>
    </node>

    <!-- This node removes the desired cutoff pixels from the cloud edges -->
    <node pkg="strands_movebase" type="remove_edges_cloud" name="head_remove_edges_cloud" output="screen" if="$(arg with_head_camera)">
        <param name="input" value="/move_base/head_points_clearing"/>
        <param name="output" value="/move_base/head_points_obstacle"/>
        <param name="cutoff" value="50.0"/>
        <param name="cutoff_z" value="0.3"/>
    </node>
    
    <!-- This node enables us to visualize the 3d occupancy of the costmap -->
	<node pkg="costmap_2d" type="costmap_2d_cloud" name="costmap_2d_cloud" output="screen"/>

	<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true" if="$(arg with_mux)">
        <!-- default:20.0. with this value dwa planner fails to find a valid plan a lot more -->
	    <remap from="/move_base/local_costmap/voxel_grid" to="/voxel_grid"/>
        <remap from="/cmd_vel" to="/cmd_vel_mux/input/navigation"/>
        <param name="controller_frequency" value="10.0" />
        <param name="controller_patience" value="15.0" />
        <param name="planner_frequency" value="2.0" />
        <param name="clearing_rotation_allowed" value="false" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/global_costmap_params.yaml" command="load" />
        <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/dwa_planner_ros.yaml" command="load" />
        <param name="local_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <param name="global_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" unless="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor]</rosparam>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" if="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor, head_cloud_sensor, head_clear_sensor]</rosparam>
	</node>
	<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true" unless="$(arg with_mux)">
        <!-- default:20.0. with this value dwa planner fails to find a valid plan a lot more -->
	    <remap from="/move_base/local_costmap/voxel_grid" to="/voxel_grid"/>
        <param name="controller_frequency" value="10.0" />
        <param name="controller_patience" value="15.0" />
        <param name="planner_frequency" value="2.0" />
        <param name="clearing_rotation_allowed" value="false" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/global_costmap_params.yaml" command="load" />
        <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/dwa_planner_ros.yaml" command="load" />
        <param name="local_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <param name="global_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" unless="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor]</rosparam>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" if="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor, head_cloud_sensor, head_clear_sensor]</rosparam>
	</node>

</launch>
<commit_msg>Forgot to change the height<commit_after><launch>
    <arg name="camera"/>
	<arg name="machine" default="localhost" />
	<arg name="user" default="" />
	<arg name="with_mux" default="false" />
	<arg name="z_stair_threshold" default="0.05"/>
	<arg name="z_obstacle_threshold" default="0.1"/>
	<arg name="with_head_camera" default="false"/>
	<arg name="head_camera" default="head_xtion"/>

	<machine name="$(arg machine)" address="$(arg machine)" env-loader="/opt/strands/strands_catkin_ws/devel/env.sh" user="$(arg user)" default="true"/>

    <!-- This node downsamples cloud and removes voxels with too few points in them -->
    <node pkg="strands_movebase" type="subsample_cloud" name="subsample_cloud" output="screen">
        <param name="input" value="$(arg camera)/depth/points"/>
        <param name="output" value="/move_base/points_subsampled"/>
    </node>
    
    <!-- This node divides into points below and above the floor -->
    <node pkg="strands_movebase" type="mirror_floor_points" name="mirror_floor_points" output="screen">
        <param name="input" value="/move_base/points_subsampled"/>
        <param name="obstacle_output" value="/move_base/points_clearing"/>
        <param name="floor_output" value="/move_base/points_cliff"/>
        <!-- Distance below floor that's counted as stair -->
        <param name="below_threshold" value="$(arg z_stair_threshold)"/>
    </node>

    <!-- This node removes the desired cutoff pixels from the cloud edges -->
    <node pkg="strands_movebase" type="remove_edges_cloud" name="remove_edges_cloud" output="screen">
        <param name="input" value="/move_base/points_clearing"/>
        <param name="output" value="/move_base/points_obstacle"/>
        <param name="cutoff" value="50.0"/>
        <param name="cutoff_z" value="0.3"/>
    </node>
    
    <!-- This node downsamples cloud and removes voxels with too few points in them -->
    <node pkg="strands_movebase" type="subsample_cloud" name="head_subsample_cloud" output="screen" if="$(arg with_head_camera)">
        <param name="input" value="$(arg head_camera)/depth/points"/>
        <param name="output" value="/move_base/head_points_clearing"/>
    </node>

    <!-- This node removes the desired cutoff pixels from the cloud edges -->
    <node pkg="strands_movebase" type="remove_edges_cloud" name="head_remove_edges_cloud" output="screen" if="$(arg with_head_camera)">
        <param name="input" value="/move_base/head_points_clearing"/>
        <param name="output" value="/move_base/head_points_obstacle"/>
        <param name="cutoff" value="50.0"/>
        <param name="cutoff_z" value="0.3"/>
    </node>
    
    <!-- This node enables us to visualize the 3d occupancy of the costmap -->
	<node pkg="costmap_2d" type="costmap_2d_cloud" name="costmap_2d_cloud" output="screen"/>

	<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true" if="$(arg with_mux)">
        <!-- default:20.0. with this value dwa planner fails to find a valid plan a lot more -->
	    <remap from="/move_base/local_costmap/voxel_grid" to="/voxel_grid"/>
        <remap from="/cmd_vel" to="/cmd_vel_mux/input/navigation"/>
        <param name="controller_frequency" value="10.0" />
        <param name="controller_patience" value="15.0" />
        <param name="planner_frequency" value="2.0" />
        <param name="clearing_rotation_allowed" value="false" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/global_costmap_params.yaml" command="load" />
        <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/dwa_planner_ros.yaml" command="load" />
        <param name="local_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <param name="global_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" unless="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor]</rosparam>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" if="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor, head_cloud_sensor, head_clear_sensor]</rosparam>
        <param name="local_costmap/obstacle_layer/z_voxels" value="9" if="$(arg with_head_camera)"/>
	</node>
	<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true" unless="$(arg with_mux)">
        <!-- default:20.0. with this value dwa planner fails to find a valid plan a lot more -->
	    <remap from="/move_base/local_costmap/voxel_grid" to="/voxel_grid"/>
        <param name="controller_frequency" value="10.0" />
        <param name="controller_patience" value="15.0" />
        <param name="planner_frequency" value="2.0" />
        <param name="clearing_rotation_allowed" value="false" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/global_costmap_params.yaml" command="load" />
        <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
        <rosparam file="$(find strands_movebase)/strands_movebase_params/dwa_planner_ros.yaml" command="load" />
        <param name="local_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <param name="global_costmap/obstacle_layer/point_cloud_sensor/min_obstacle_height" value="$(arg z_obstacle_threshold)"/>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" unless="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor]</rosparam>
        <rosparam param="local_costmap/obstacle_layer/observation_sources" if="$(arg with_head_camera)">[laser, point_cloud_sensor, clear_sensor, cliff_sensor, head_cloud_sensor, head_clear_sensor]</rosparam>
        <param name="local_costmap/obstacle_layer/z_voxels" value="9" if="$(arg with_head_camera)"/>
	</node>

</launch>

{'fraction_non_alphanumeric': 0.14644905161005733, 'fraction_numerical': 0.0061755624172915745, 'mean_word_length': 4.927233115468409, 'pattern_counts': {'":': 0, '<': 177, '<?xml version=': 0, '>': 177, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4424939', 'n_tokens_mistral': 4461, 'n_tokens_neox': 4265, 'n_words': 778}