seek_thermal_compact.urdf.xacro 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
  3. <xacro:include filename="$(find hector_xacro_tools)/urdf/sensor_macros.urdf.xacro" />
  4. <xacro:macro name="seek_thermal_compact_camera_model" params="name parent *origin add_geometry">
  5. <joint name="${name}_joint" type="fixed">
  6. <xacro:insert_block name="origin" />
  7. <parent link="${parent}" />
  8. <child link="${name}_frame" />
  9. </joint>
  10. <link name="${name}_frame">
  11. <xacro:inertial_sphere mass="0.03" diameter="0.02" />
  12. <xacro:if value="${add_geometry}">
  13. <visual>
  14. <origin xyz="0 0.0 -0.025" rpy="0 0 0" />
  15. <geometry>
  16. <box size="0.02 0.03 0.0375" />
  17. </geometry>
  18. <material name="DarkGrey">
  19. <color rgba="0.3 0.3 0.3 1" />
  20. </material>
  21. </visual>
  22. <visual>
  23. <origin xyz="0 0 0" rpy="0 ${M_PI/2} 0" />
  24. <geometry>
  25. <cylinder length="0.02" radius="0.017" />
  26. </geometry>
  27. <material name="DarkGrey" />
  28. </visual>
  29. <visual>
  30. <origin xyz="0.01 0 0" rpy="0 ${M_PI/2} 0" />
  31. <geometry>
  32. <cylinder length="0.018" radius="0.011" />
  33. </geometry>
  34. <material name="DarkGrey" />
  35. </visual>
  36. <collision>
  37. <origin xyz="0.0055 0 -0.013375" rpy="0 0 0" />
  38. <geometry>
  39. <box size="0.031 0.034 0.06075" />
  40. </geometry>
  41. </collision>
  42. <xacro:if value="$(arg add_raycast_self_filter_geom)">
  43. <collision>
  44. <origin xyz="0.0055 0 -0.013375" rpy="0 0 0" />
  45. <geometry>
  46. <cylinder length="0.06075" radius="0.023"/>
  47. </geometry>
  48. </collision>
  49. </xacro:if>
  50. </xacro:if>
  51. </link>
  52. <xacro:add_optical_frame name="${name}" />
  53. <gazebo reference="${name}_frame">
  54. <material>Gazebo/Grey</material>
  55. </gazebo>
  56. </xacro:macro>
  57. <xacro:macro name="seek_thermal_compact_gazebo_plugin_macro" params="name parent *origin">
  58. <gazebo reference="${name}_frame">
  59. <sensor type="camera" name="thermal_camera_sensor">
  60. <update_rate>10</update_rate>
  61. <camera>
  62. <horizontal_fov>${90.0*M_PI/180.0}</horizontal_fov>
  63. <image>
  64. <format>R8G8B8</format>
  65. <width>206</width>
  66. <height>156</height>
  67. </image>
  68. <clip>
  69. <near>0.01</near>
  70. <far>10</far>
  71. </clip>
  72. </camera>
  73. <plugin name="thermal_camera_controller" filename="libgazebo_ros_thermal_camera.so">
  74. <alwaysOn>true</alwaysOn>
  75. <updateRate>10</updateRate>
  76. <cameraName>${name}</cameraName>
  77. <imageTopicName>image_raw</imageTopicName>
  78. <cameraInfoTopicName>camera_info</cameraInfoTopicName>
  79. <frameName>${name}_optical_frame</frameName>
  80. </plugin>
  81. </sensor>
  82. </gazebo>
  83. </xacro:macro>
  84. <xacro:macro name="seek_thermal_compact_camera" params="name parent *origin">
  85. <xacro:seek_thermal_compact_camera_model name="${name}" parent="${parent}" add_geometry="true">
  86. <xacro:insert_block name="origin" />
  87. </xacro:seek_thermal_compact_camera_model>
  88. <xacro:seek_thermal_compact_gazebo_plugin_macro name="${name}" parent="${parent}">
  89. <xacro:insert_block name="origin" />
  90. </xacro:seek_thermal_compact_gazebo_plugin_macro>
  91. </xacro:macro>
  92. <xacro:macro name="seek_thermal_compact_camera_no_geom" params="name parent *origin">
  93. <xacro:seek_thermal_compact_camera_model name="${name}" parent="${parent}" add_geometry="false">
  94. <xacro:insert_block name="origin" />
  95. </xacro:seek_thermal_compact_camera_model>
  96. <xacro:seek_thermal_compact_gazebo_plugin_macro name="${name}" parent="${parent}">
  97. <xacro:insert_block name="origin" />
  98. </xacro:seek_thermal_compact_gazebo_plugin_macro>
  99. </xacro:macro>
  100. </robot>