generic_camera.urdf.xacro 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. <xacro:macro name="generic_camera" params="name parent *origin ros_topic cam_info_topic update_rate res_x res_y image_format hfov">
  5. <joint name="${name}_joint" type="fixed">
  6. <xacro:insert_block name="origin" />
  7. <parent link="${parent}"/>
  8. <child link="${name}_link"/>
  9. </joint>
  10. <link name="${name}_link">
  11. <!-- <inertial>
  12. <mass value="0.001" />
  13. <origin xyz="0 0 0" rpy="0 0 0" />
  14. <inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001" />
  15. </inertial>
  16. <visual>
  17. <origin xyz="0 0 0" rpy="0 0 0" />
  18. <geometry>
  19. <box size="0.01 0.01 0.01" />
  20. </geometry>
  21. <material name="Blue">
  22. <color rgba="0.0 0.0 0.8 1"/>
  23. </material>
  24. </visual>
  25. <collision>
  26. <origin xyz="0 0 0" rpy="0 0 0" />
  27. <geometry>
  28. <box size="0.01 0.01 0.01" />
  29. </geometry>
  30. </collision>-->
  31. </link>
  32. <joint name="${name}_optical_joint" type="fixed">
  33. <origin xyz="0 0 0" rpy="${-M_PI/2} 0.0 ${-M_PI/2}" />
  34. <parent link="${name}_link" />
  35. <child link="${name}_optical_frame"/>
  36. </joint>
  37. <link name="${name}_optical_frame"/>
  38. <gazebo reference="${name}_link">
  39. <sensor type="camera" name="${name}_camera_sensor">
  40. <update_rate>${update_rate}</update_rate>
  41. <camera>
  42. <horizontal_fov>${hfov * M_PI/180.0}</horizontal_fov>
  43. <image>
  44. <format>${image_format}</format>
  45. <width>${res_x}</width>
  46. <height>${res_y}</height>
  47. </image>
  48. <clip>
  49. <near>0.01</near>
  50. <far>100</far>
  51. </clip>
  52. </camera>
  53. <plugin name="${name}_camera_controller" filename="libgazebo_ros_camera.so">
  54. <cameraName>${name}</cameraName>
  55. <imageTopicName>${ros_topic}</imageTopicName>
  56. <cameraInfoTopicName>${cam_info_topic}</cameraInfoTopicName>
  57. <frameName>${name}_optical_frame</frameName>
  58. </plugin>
  59. </sensor>
  60. </gazebo>
  61. </xacro:macro>
  62. </robot>