asus_camera.urdf.xacro 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0"?>
  2. <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
  3. <xacro:property name="M_PI" value="3.1415926535897931" />
  4. <!--
  5. The asus_camera_model macro only adds the model, it does not also add
  6. the openni gazebo plugin. See the 'asus_camera' macro below for that
  7. -->
  8. <xacro:macro name="asus_camera_model" params="name parent *origin">
  9. <joint name="${name}_joint" type="fixed">
  10. <xacro:insert_block name="origin" />
  11. <parent link="${parent}"/>
  12. <child link="${name}_link"/>
  13. </joint>
  14. <link name="${name}_link">
  15. <inertial>
  16. <mass value="0.200" />
  17. <origin xyz="0 0 0" rpy="0 0 0" />
  18. <inertia ixx="5.8083e-4" ixy="0" ixz="0" iyy="3.0833e-5" iyz="0" izz="5.9083e-4" />
  19. </inertial>
  20. <visual>
  21. <origin xyz="0 0 0" rpy="0 0 0" />
  22. <geometry>
  23. <mesh filename="package://hector_sensors_description/meshes/asus_camera/asus_camera_simple.dae"/>
  24. </geometry>
  25. </visual>
  26. <!--
  27. <collision>
  28. <origin xyz="0 0 0" rpy="0 0 0" />
  29. <geometry>
  30. <box size="0.035 0.185 0.025"/>
  31. </geometry>
  32. </collision>
  33. -->
  34. <collision>
  35. <origin xyz="0 0 0" rpy="0 0 0" />
  36. <geometry>
  37. <mesh filename="package://hector_sensors_description/meshes/asus_camera/asus_camera_simple.dae"/>
  38. </geometry>
  39. </collision>
  40. </link>
  41. <joint name="${name}_depth_joint" type="fixed">
  42. <origin xyz="0.0 0.049 0.0" rpy="0 0 0" />
  43. <parent link="${name}_link" />
  44. <child link="${name}_depth_frame"/>
  45. </joint>
  46. <link name="${name}_depth_frame"/>
  47. <joint name="${name}_depth_optical_joint" type="fixed">
  48. <origin xyz="0 0 0" rpy="${-M_PI/2} 0.0 ${-M_PI/2}" />
  49. <parent link="${name}_depth_frame" />
  50. <child link="${name}_depth_optical_frame"/>
  51. </joint>
  52. <link name="${name}_depth_optical_frame"/>
  53. <joint name="${name}_rgb_joint" type="fixed">
  54. <origin xyz="0.0 0.022 0.0" rpy="0 0 0" />
  55. <parent link="${name}_link" />
  56. <child link="${name}_rgb_frame"/>
  57. </joint>
  58. <link name="${name}_rgb_frame"/>
  59. <joint name="${name}_rgb_optical_joint" type="fixed">
  60. <origin xyz="0 0 0" rpy="${-M_PI/2} 0.0 ${-M_PI/2}" />
  61. <parent link="${name}_rgb_frame" />
  62. <child link="${name}_rgb_optical_frame"/>
  63. </joint>
  64. <link name="${name}_rgb_optical_frame"/>
  65. </xacro:macro>
  66. <!--
  67. The asus_camera macro only adds the model, and also adds
  68. the openni gazebo plugin.
  69. -->
  70. <xacro:macro name="asus_camera" params="name parent *origin">
  71. <xacro:asus_camera_model name="${name}" parent="${parent}">
  72. <xacro:insert_block name="origin" />
  73. </xacro:asus_camera_model>
  74. <!-- ASUS Xtion PRO camera for simulation -->
  75. <gazebo reference="${name}_depth_frame">
  76. <sensor type="depth" name="${name}">
  77. <update_rate>20</update_rate>
  78. <camera>
  79. <horizontal_fov>${62.8 * M_PI/180.0}</horizontal_fov>
  80. <image>
  81. <format>R8G8B8</format>
  82. <width>640</width>
  83. <height>480</height>
  84. </image>
  85. <clip>
  86. <near>0.5</near>
  87. <far>9</far>
  88. </clip>
  89. </camera>
  90. <plugin name="${name}_camera_controller" filename="libgazebo_ros_openni_kinect.so">
  91. <imageTopicName>${name}/rgb/image_raw</imageTopicName>
  92. <cameraInfoTopicName>${name}/rgb/camera_info</cameraInfoTopicName>
  93. <depthImageTopicName>${name}/depth/image_raw</depthImageTopicName>
  94. <depthImageCameraInfoTopicName>${name}/depth/camera_info</depthImageCameraInfoTopicName>
  95. <pointCloudTopicName>${name}/depth/points</pointCloudTopicName>
  96. <frameName>${name}_depth_optical_frame</frameName>
  97. </plugin>
  98. </sensor>
  99. </gazebo>
  100. </xacro:macro>
  101. </robot>