tracker_sensor_head.urdf.xacro.xml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?xml version="1.0"?>
  2. <robot
  3. xmlns:xacro="http://www.ros.org/wiki/xacro" name="hector_tracker_sensor_head">
  4. <xacro:include filename="$(find hector_xacro_tools)/urdf/inertia_tensors.urdf.xacro"/>
  5. <xacro:include filename="$(find hector_xacro_tools)/urdf/joint_macros.urdf.xacro"/>
  6. <xacro:include filename="$(find hector_sensors_description)/urdf/hokuyo_utm30lx.urdf.xacro" />
  7. <xacro:include filename="$(find hector_xacro_tools)/urdf/joint_macros.urdf.xacro" />
  8. <xacro:include filename="$(find hector_sensors_description)/urdf/flir_a35_camera.urdf.xacro"/>
  9. <xacro:include filename="$(find hector_sensors_description)/urdf/realsense_camera.urdf.xacro"/>
  10. <!--
  11. <xacro:include filename="$(find hector_components_description)/urdf/vision_box_common.gazebo.xacro" />
  12. <xacro:include filename="$(find hector_components_description)/urdf/vision_box_common_dimensions.urdf.xacro" />
  13. <xacro:include filename="$(find hector_components_description)/urdf/vision_box_dimensions_hector2.urdf.xacro" />
  14. -->
  15. <!--Properties below copied from vision box, should be renamed-->
  16. <xacro:property name="cameraYawServo_size_z" value="0.082" /> <!--between upper edge of top and camera pitch axis-->
  17. <xacro:property name="cameraYawServo_x_position" value="-0.027" /> <!--between front edge of top and camera yaw axis-->
  18. <xacro:property name="cameraYawServo_size_x" value="0.04" />
  19. <xacro:property name="cameraYawServo_size_y" value="0.03" />
  20. <xacro:property name="camera_size_x" value="0.05" />
  21. <xacro:property name="camera_x_position" value="0.02" /> <!--between intersection point of yaw and pitch axis and center of camera lense-->
  22. <xacro:property name="camera_z_position" value="0.001" />
  23. <xacro:property name="kinect_pitch_position" value="0" />
  24. <xacro:property name="kinect_yaw_position" value="0.0" />
  25. <xacro:macro name="tracker_sensor_head_macro" params="parent *origin">
  26. <xacro:arg name="add_raycast_self_filter_geom" default="false"/>
  27. <joint name="sensor_head_yaw_joint" type="revolute">
  28. <xacro:insert_block name="origin"/>
  29. <parent link="${parent}" />
  30. <child link="sensor_head_yaw_link"/>
  31. <axis xyz="0 0 1"/>
  32. <limit lower="${-M_PI*3/4}" upper="${M_PI*3/4}" effort="100" velocity="100"/>
  33. </joint>
  34. <link name="sensor_head_yaw_link">
  35. <xacro:inertial_sphere mass="0.1" diameter="0.07"/>
  36. <visual>
  37. <origin xyz="0.0 0.0 ${cameraYawServo_size_z/2}" rpy="0 0 0"/>
  38. <geometry>
  39. <box size="${cameraYawServo_size_x} ${cameraYawServo_size_y} ${cameraYawServo_size_z}"/>
  40. </geometry>
  41. <material name="Blue"/>
  42. </visual>
  43. <xacro:unless value="$(arg add_raycast_self_filter_geom)">
  44. <collision>
  45. <origin xyz="0.0 0.0 ${cameraYawServo_size_z/2}" rpy="0 0 0"/>
  46. <geometry>
  47. <box size="${cameraYawServo_size_x} ${cameraYawServo_size_y} ${cameraYawServo_size_z}"/>
  48. </geometry>
  49. </collision>
  50. </xacro:unless>
  51. <xacro:if value="$(arg add_raycast_self_filter_geom)">
  52. <!--Realsense-->
  53. <collision>
  54. <origin xyz="0.00 -0.00 ${cameraYawServo_size_z/2+0.04}" rpy="0 0 0"/>
  55. <geometry>
  56. <cylinder length="${cameraYawServo_size_z+0.03}" radius="${0.05}"/>
  57. <!--<box size="${t_base_size_x*2+t_flipper_offset_x*2} ${t_track_width} ${t_wheel_radius_big*2}"/>-->
  58. </geometry>
  59. </collision>
  60. </xacro:if>
  61. </link>
  62. <joint name="sensor_head_pitch_joint" type="revolute">
  63. <origin xyz="0 -0.0235 0.0921" rpy="${-M_PI/2} 0 0"/>
  64. <parent link="sensor_head_yaw_link"/>
  65. <child link="sensor_head_mount_link"/>
  66. <axis xyz="0 0 1"/>
  67. <limit lower="${-M_PI/2}" upper="${M_PI/2}" effort="100" velocity="100"/>
  68. </joint>
  69. <link name="sensor_head_mount_link">
  70. <xacro:inertial_sphere mass="0.05" diameter="0.07"/>
  71. <xacro:if value="$(arg add_raycast_self_filter_geom)">
  72. <!--Thermal cam-->
  73. <collision>
  74. <origin xyz="0.01 0.0 -0.03106" rpy="0 ${M_PI*0.5} 0"/>
  75. <geometry>
  76. <cylinder length="${0.18}" radius="${0.04}"/>
  77. <!--<box size="${t_base_size_x*2+t_flipper_offset_x*2} ${t_track_width} ${t_wheel_radius_big*2}"/>-->
  78. </geometry>
  79. </collision>
  80. <!--Realsense-->
  81. <collision>
  82. <origin xyz="0.01 -0.048 ${0.01373-0.01}" rpy="0 0 0"/>
  83. <geometry>
  84. <cylinder length="${0.17}" radius="${0.05}"/>
  85. <!--<box size="${t_base_size_x*2+t_flipper_offset_x*2} ${t_track_width} ${t_wheel_radius_big*2}"/>-->
  86. </geometry>
  87. </collision>
  88. <collision>
  89. <origin xyz="0.0 -0.018 ${+0.09}" rpy="${M_PI*0.5} 0 0"/>
  90. <geometry>
  91. <cylinder length="${0.14}" radius="${0.03}"/>
  92. <!--<box size="${t_base_size_x*2+t_flipper_offset_x*2} ${t_track_width} ${t_wheel_radius_big*2}"/>-->
  93. </geometry>
  94. </collision>
  95. </xacro:if>
  96. </link>
  97. <gazebo reference="sensor_head_yaw_link">
  98. <material>Gazebo/Grey</material>
  99. </gazebo>
  100. <gazebo reference="sensor_head_mount_link">
  101. <material>Gazebo/Grey</material>
  102. </gazebo>
  103. <xacro:joint_standard_transmission name="sensor_head_yaw_joint"/>
  104. <xacro:joint_standard_transmission name="sensor_head_pitch_joint"/>
  105. <gazebo>
  106. <plugin name="gazebo_ros_control_select_joints" filename="libgazebo_ros_control_select_joints.so">
  107. <robotNamespace>sensor_head_control</robotNamespace>
  108. <joints>sensor_head_yaw_joint sensor_head_pitch_joint</joints>
  109. </plugin>
  110. </gazebo>
  111. <xacro:flir_a35_camera name="arm_thermal_cam" parent="sensor_head_mount_link">
  112. <origin xyz="0.0345 0.0 -0.03106" rpy="${M_PI*0.5} 0 0"/>
  113. </xacro:flir_a35_camera>
  114. <xacro:realsense_camera_comprehensive_params name="arm_rgbd_cam" parent="sensor_head_mount_link" image_topic="image_rect_color" depth_points_topic="depth/points" min_range="0.3" max_range="9.0" update_rate="20">
  115. <origin xyz="0.01 -0.048 ${0.01373-0.051}" rpy="${M_PI*0.5} ${kinect_pitch_position} ${kinect_yaw_position}"/>
  116. </xacro:realsense_camera_comprehensive_params>
  117. </xacro:macro>
  118. </robot>