ricoh_theta.urdf.xacro 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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:property name="theta_dist_between_cameras" value="0.01602869966119076" />
  5. <xacro:macro name="ricoh_theta_camera" params="name cam_front_name cam_rear_name parent *origin ros_topic cam_info_topic update_rate res_x res_y image_format fov">
  6. <joint name="${name}_center_joint" type="fixed">
  7. <xacro:insert_block name="origin" />
  8. <parent link="${parent}"/>
  9. <child link="${name}_center_link"/>
  10. </joint>
  11. <link name="${name}_center_link" />
  12. <joint name="${name}_${cam_front_name}_joint" type="fixed">
  13. <origin xyz="${0} ${theta_dist_between_cameras/2} 0" rpy="${M_PI*0.5} 0 ${-M_PI*0.5}"/>
  14. <parent link="${name}_center_link"/>
  15. <child link="${name}_${cam_front_name}_link"/>
  16. </joint>
  17. <link name="${name}_${cam_front_name}_link"/>
  18. <joint name="${name}_${cam_front_name}_optical_joint" type="fixed">
  19. <origin xyz="0 0 0" rpy="${-M_PI/2} 0.0 ${-M_PI/2}" />
  20. <parent link="${name}_${cam_front_name}_link" />
  21. <child link="${name}_${cam_front_name}_optical_frame"/>
  22. </joint>
  23. <link name="${name}_${cam_front_name}_optical_frame"/>
  24. <gazebo reference="${name}_${cam_front_name}_link">
  25. <sensor type="wideanglecamera" name="${name}_${cam_front_name}_camera_sensor">
  26. <update_rate>${update_rate}</update_rate>
  27. <camera>
  28. <!--<horizontal_fov>${hfov * M_PI/180.0}</horizontal_fov>-->
  29. <horizontal_fov>${fov}</horizontal_fov>
  30. <image>
  31. <format>${image_format}</format>
  32. <width>${res_x}</width>
  33. <height>${res_y}</height>
  34. </image>
  35. <clip>
  36. <near>0.01</near>
  37. <far>100</far>
  38. </clip>
  39. <lens>
  40. <type>stereographic</type>
  41. <scale_to_hfov>true</scale_to_hfov>
  42. <cutoff_angle>1.5707</cutoff_angle>
  43. <env_texture_size>512</env_texture_size>
  44. </lens>
  45. </camera>
  46. <plugin name="${name}_${cam_front_name}_camera_controller" filename="libgazebo_ros_camera.so">
  47. <cameraName>${name}/${cam_front_name}</cameraName>
  48. <imageTopicName>${ros_topic}</imageTopicName>
  49. <cameraInfoTopicName>${cam_info_topic}</cameraInfoTopicName>
  50. <frameName>${name}_${cam_front_name}_optical_frame</frameName>
  51. </plugin>
  52. </sensor>
  53. </gazebo>
  54. <joint name="${name}_${cam_rear_name}_joint" type="fixed">
  55. <origin xyz="${-theta_dist_between_cameras} 0 0" rpy="0 0 ${M_PI}"/>
  56. <parent link="${name}_${cam_front_name}_link"/>
  57. <child link="${name}_${cam_rear_name}_link"/>
  58. </joint>
  59. <link name="${name}_${cam_rear_name}_link"/>
  60. <joint name="${name}_${cam_rear_name}_optical_joint" type="fixed">
  61. <origin xyz="0 0 0" rpy="${-M_PI/2} 0.0 ${-M_PI/2}" />
  62. <parent link="${name}_${cam_rear_name}_link" />
  63. <child link="${name}_${cam_rear_name}_optical_frame"/>
  64. </joint>
  65. <link name="${name}_${cam_rear_name}_optical_frame"/>
  66. <gazebo reference="${name}_${cam_rear_name}_link">
  67. <sensor type="wideanglecamera" name="${name}_${cam_rear_name}_camera_sensor">
  68. <update_rate>${update_rate}</update_rate>
  69. <camera>
  70. <!--<horizontal_fov>${hfov * M_PI/180.0}</horizontal_fov>-->
  71. <horizontal_fov>${fov}</horizontal_fov>
  72. <image>
  73. <format>${image_format}</format>
  74. <width>${res_x}</width>
  75. <height>${res_y}</height>
  76. </image>
  77. <clip>
  78. <near>0.01</near>
  79. <far>100</far>
  80. </clip>
  81. <lens>
  82. <type>stereographic</type>
  83. <scale_to_hfov>true</scale_to_hfov>
  84. <cutoff_angle>1.5707</cutoff_angle>
  85. <env_texture_size>512</env_texture_size>
  86. </lens>
  87. </camera>
  88. <plugin name="${name}_${cam_rear_name}_camera_controller" filename="libgazebo_ros_camera.so">
  89. <cameraName>${name}/${cam_rear_name}</cameraName>
  90. <imageTopicName>${ros_topic}</imageTopicName>
  91. <cameraInfoTopicName>${cam_info_topic}</cameraInfoTopicName>
  92. <frameName>${name}_${cam_rear_name}_optical_frame</frameName>
  93. </plugin>
  94. </sensor>
  95. </gazebo>
  96. </xacro:macro>
  97. </robot>