<commit_before><?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
	<xacro:include filename="$(find guardian_description)/urdf/guardian_base.gazebo" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/kinect.urdf.xacro"/>
	<xacro:include filename="$(find guardian_description)/urdf/sensors/imu.urdf.xacro" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/hokuyo_front.urdf.xacro" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/hokuyo_back.urdf.xacro" />

	<xacro:macro name="guardian_base" params="base_footprint_z use_simulated_kinect">

		<!-- BASE FOOTPRINT -->
		<!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin, navigation stack depends on this frame -->
		<link name="base_footprint">
			<visual>
				<origin xyz="0 0 0" rpy="0 0 0" />
				<geometry>
					<box size="0.005 0.005 0.005" />
				</geometry>
			</visual>
		</link>

		<joint name="base_footprint_joint" type="fixed">
			<!--NB: While you would think this would make it go up, it is oddly reversed. This moves the joint to 0,0,0 where we want it for rviz, etc. -->
			<!-- <origin xyz="0 0 0.130" rpy="0 0 0" /> -->
			<!-- <origin xyz="0 0 0.18" rpy="0 0 0" /> -->
			<origin xyz="0 0 ${base_footprint_z}" rpy="0 0 0" />
			<parent link="base_footprint" />
			<child link="base_link" />
		</joint>
		
		
		<!-- kinect and projector metal support -->
		<link name="support_bottom_link" />
		<joint name="support_bottom_joint" type="fixed">
			<origin xyz="0.185 0 0.2425" rpy="0 0 0" />
			<parent link="base_link" />
			<child link="support_bottom_link" />
		</joint>
		
		
		<link name="support_top_link" />
		<joint name="support_top_joint" type="fixed">
			<origin xyz="0.29 0.0 0.26" rpy="0.0 0 -0.05" />
			<parent link="support_bottom_link" />
			<child link="support_top_link" />
		</joint>

		<!-- <link name="projector_link" />
		<joint name="projector_joint" type="fixed">
			<origin xyz="-0.07 0.031 -0.041" rpy="1.5707 0 0" />
			<parent link="support_top_link" />
			<child link="projector_link" />
		</joint> -->


		<!-- BASE_LINK (Grey) -->
		<link name="base_link"> <!-- center of wheels -> rotation axis -->
			<inertial>
				<mass value="95.0" /> <!-- 95.0 -->
				<origin xyz="0 0 0" />
				<inertia ixx="3.737" ixy="0.008" ixz="-0.144" iyy="8.311" iyz="-0.004" izz="8.893" />
			</inertial>

			<visual>
				<origin xyz="0 0 0" rpy="0 0 0" />
				<geometry>
					<mesh filename="package://guardian_description/meshes/chassis/two_lasers/guardian2lasers.stl" />
				</geometry>
				<material name="DarkGrey">
					<color rgba="0.4 0.4 0.4 1.0" />
				</material>
			</visual>

			<collision>
				<origin xyz="0 0 0.08" rpy="0 0 0 " />
				<geometry>
					<!-- <box size = "1.127 0.497 0.28"/> --> <!-- includes tracks, making it just tall enough not to hit the laser beams -->
					<box size="1.127 0.497 0.25" /> <!-- this is not enough -->
				</geometry>
			</collision>
		</link>

		<!-- ################# SENSORS ################# -->
		<xacro:if value="${use_simulated_kinect}">
 			<sensor_kinect parent="base_link"/>
		</xacro:if>
		<xacro:unless value="${use_simulated_kinect}">
			<link name="camera_link_support_axis" />
			<joint name="camera_link_support_axis_joint" type="fixed">
				<origin xyz="0.0 -0.015 0.0" rpy="1.565 0.619 0.05" />
				<parent link="support_top_link" />
				<child link="camera_link_support_axis" />
			</joint>
			
			<link name="camera_link" />
			<joint name="camera_link_joint" type="fixed">
				<origin xyz="0.045 0.065 0.0155" rpy="0 0 0" />
				<parent link="camera_link_support_axis" />
				<child link="camera_link" />
			</joint>
		</xacro:unless>
		
		
		<sensor_imu parent="base_link" /> <!-- guardian_robot_control uses imu to update odometry -->
<commit_msg>Updated TFs for struture io.<commit_after><?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
	<xacro:include filename="$(find guardian_description)/urdf/guardian_base.gazebo" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/kinect.urdf.xacro"/>
	<xacro:include filename="$(find guardian_description)/urdf/sensors/imu.urdf.xacro" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/hokuyo_front.urdf.xacro" />
	<xacro:include filename="$(find guardian_description)/urdf/sensors/hokuyo_back.urdf.xacro" />

	<xacro:macro name="guardian_base" params="base_footprint_z use_simulated_kinect">

		<!-- BASE FOOTPRINT -->
		<!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin, navigation stack depends on this frame -->
		<link name="base_footprint">
			<visual>
				<origin xyz="0 0 0" rpy="0 0 0" />
				<geometry>
					<box size="0.005 0.005 0.005" />
				</geometry>
			</visual>
		</link>

		<joint name="base_footprint_joint" type="fixed">
			<!--NB: While you would think this would make it go up, it is oddly reversed. This moves the joint to 0,0,0 where we want it for rviz, etc. -->
			<!-- <origin xyz="0 0 0.130" rpy="0 0 0" /> -->
			<!-- <origin xyz="0 0 0.18" rpy="0 0 0" /> -->
			<origin xyz="0 0 ${base_footprint_z}" rpy="0 0 0" />
			<parent link="base_footprint" />
			<child link="base_link" />
		</joint>
		
		
		<!-- kinect and projector metal support -->
		<link name="support_bottom_link" />
		<joint name="support_bottom_joint" type="fixed">
			<origin xyz="0.185 0 0.2425" rpy="0 0 0" />
			<parent link="base_link" />
			<child link="support_bottom_link" />
		</joint>
		
		
		<link name="support_top_link" />
		<joint name="support_top_joint" type="fixed">
			<origin xyz="0.314 0.0 0.256" rpy="0.0 0 0.0" />
			<parent link="support_bottom_link" />
			<child link="support_top_link" />
		</joint>

		<!-- <link name="projector_link" />
		<joint name="projector_joint" type="fixed">
			<origin xyz="-0.07 0.031 -0.041" rpy="1.5707 0 0" />
			<parent link="support_top_link" />
			<child link="projector_link" />
		</joint> -->


		<!-- BASE_LINK (Grey) -->
		<link name="base_link"> <!-- center of wheels -> rotation axis -->
			<inertial>
				<mass value="95.0" /> <!-- 95.0 -->
				<origin xyz="0 0 0" />
				<inertia ixx="3.737" ixy="0.008" ixz="-0.144" iyy="8.311" iyz="-0.004" izz="8.893" />
			</inertial>

			<visual>
				<origin xyz="0 0 0" rpy="0 0 0" />
				<geometry>
					<mesh filename="package://guardian_description/meshes/chassis/two_lasers/guardian2lasers.stl" />
				</geometry>
				<material name="DarkGrey">
					<color rgba="0.4 0.4 0.4 1.0" />
				</material>
			</visual>

			<collision>
				<origin xyz="0 0 0.08" rpy="0 0 0 " />
				<geometry>
					<!-- <box size = "1.127 0.497 0.28"/> --> <!-- includes tracks, making it just tall enough not to hit the laser beams -->
					<box size="1.127 0.497 0.25" /> <!-- this is not enough -->
				</geometry>
			</collision>
		</link>

		<!-- ################# SENSORS ################# -->
		<xacro:if value="${use_simulated_kinect}">
 			<sensor_kinect parent="base_link"/>
		</xacro:if>
		<xacro:unless value="${use_simulated_kinect}">
			<link name="camera_link_support_axis" />
			<joint name="camera_link_support_axis_joint" type="fixed">
				<origin xyz="-0.02 -0.015 0.0" rpy="1.5708 0.619 0.0" />
				<parent link="support_top_link" />
				<child link="camera_link_support_axis" />
			</joint>
			
			<link name="camera_link" />
			<joint name="camera_link_joint" type="fixed">
				<origin xyz="0.045 0.06 0.017" rpy="0 0 0" />
				<parent link="camera_link_support_axis" />
				<child link="camera_link" />
			</joint>
		</xacro:unless>
		
		
		<sensor_imu parent="base_link" /> <!-- guardian_robot_control uses imu to update odometry -->

{'fraction_non_alphanumeric': 0.1947950553025374, 'fraction_numerical': 0.052830188679245285, 'mean_word_length': 3.357142857142857, 'pattern_counts': {'":': 0, '<': 197, '<?xml version=': 2, '>': 199, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 4}, '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': '4263365', 'n_tokens_mistral': 3549, 'n_tokens_neox': 2841, 'n_words': 626}