Skip to content

Commit 56a838e

Browse files
committed
Absolem: Added sensor configs 6, 7 and 8.
1 parent 49b2010 commit 56a838e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+13889
-47
lines changed

submitted_models/ctu_cras_norlab_absolem_sensor_config_1/launch/vehicle_topics.launch

+66-30
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<arg name="revision" default="2014" />
1010
<arg name="has_cliff_sensors" default="0" />
1111
<arg name="has_thermal_camera" default="0" />
12+
<arg name="has_omnicam" default="1" />
13+
<arg name="has_omnicam_vras" default="0" />
1214

1315
<include file="$(dirname)/description.launch" pass_all_args="true">
1416
<arg name="print_command" value="$(arg description_print_command)" if="$(eval description_print_command != '')" />
@@ -111,41 +113,75 @@
111113

112114
<!-- Omnicamera -->
113115

114-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
115-
<arg name="node_name_suffix" value="omnicam_0" />
116-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor0" />
117-
<arg name="ros_topic" value="omni/camera_0" />
118-
</include>
116+
<group if="$(arg has_omnicam)">
117+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
118+
<arg name="node_name_suffix" value="omnicam_0" />
119+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor0" />
120+
<arg name="ros_topic" value="omni/camera_0" />
121+
</include>
119122

120-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
121-
<arg name="node_name_suffix" value="omnicam_1" />
122-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor1" />
123-
<arg name="ros_topic" value="omni/camera_1" />
124-
</include>
123+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
124+
<arg name="node_name_suffix" value="omnicam_1" />
125+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor1" />
126+
<arg name="ros_topic" value="omni/camera_1" />
127+
</include>
125128

126-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
127-
<arg name="node_name_suffix" value="omnicam_2" />
128-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor2" />
129-
<arg name="ros_topic" value="omni/camera_2" />
130-
</include>
129+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
130+
<arg name="node_name_suffix" value="omnicam_2" />
131+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor2" />
132+
<arg name="ros_topic" value="omni/camera_2" />
133+
</include>
131134

132-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
133-
<arg name="node_name_suffix" value="omnicam_3" />
134-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor3" />
135-
<arg name="ros_topic" value="omni/camera_3" />
136-
</include>
135+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
136+
<arg name="node_name_suffix" value="omnicam_3" />
137+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor3" />
138+
<arg name="ros_topic" value="omni/camera_3" />
139+
</include>
137140

138-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
139-
<arg name="node_name_suffix" value="omnicam_4" />
140-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor4" />
141-
<arg name="ros_topic" value="omni/camera_4" />
142-
</include>
141+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
142+
<arg name="node_name_suffix" value="omnicam_4" />
143+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor4" />
144+
<arg name="ros_topic" value="omni/camera_4" />
145+
</include>
143146

144-
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
145-
<arg name="node_name_suffix" value="omnicam_5" />
146-
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor5" />
147-
<arg name="ros_topic" value="omni/camera_5" />
148-
</include>
147+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
148+
<arg name="node_name_suffix" value="omnicam_5" />
149+
<arg name="gazebo_topic" value="$(arg link_prefix)/base_link/sensor/omnicam_sensor5" />
150+
<arg name="ros_topic" value="omni/camera_5" />
151+
</include>
152+
</group>
153+
154+
<group if="$(arg has_omnicam_vras)">
155+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
156+
<arg name="node_name_suffix" value="omnicam_vras_front" />
157+
<arg name="gazebo_topic" value="$(arg link_prefix)/camera_0/sensor/camera_0" />
158+
<arg name="ros_topic" value="omni/camera_0" />
159+
</include>
160+
161+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
162+
<arg name="node_name_suffix" value="omnicam_vras_right" />
163+
<arg name="gazebo_topic" value="$(arg link_prefix)/camera_1/sensor/camera_1" />
164+
<arg name="ros_topic" value="omni/camera_1" />
165+
</include>
166+
167+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
168+
<arg name="node_name_suffix" value="omnicam_vras_rear" />
169+
<arg name="gazebo_topic" value="$(arg link_prefix)/camera_2/sensor/camera_2" />
170+
<arg name="ros_topic" value="omni/camera_2" />
171+
</include>
172+
173+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
174+
<arg name="node_name_suffix" value="omnicam_vras_left" />
175+
<arg name="gazebo_topic" value="$(arg link_prefix)/camera_3/sensor/camera_3" />
176+
<arg name="ros_topic" value="omni/camera_3" />
177+
</include>
178+
179+
<include file="$(find subt_ros)/launch/models_common/rgb_camera.launch">
180+
<arg name="node_name_suffix" value="omnicam_vras_up" />
181+
<arg name="gazebo_topic" value="$(arg link_prefix)/camera_4/sensor/camera_4" />
182+
<arg name="ros_topic" value="omni/camera_4" />
183+
</include>
184+
</group>
149185

150186
<!-- Thermal camera (if used) -->
151187
<include if="$(arg has_thermal_camera)" file="$(find subt_ros)/launch/models_common/thermal_camera.launch">

submitted_models/ctu_cras_norlab_absolem_sensor_config_1/meshes/basler_ace2_pro.dae

+96
Large diffs are not rendered by default.

submitted_models/ctu_cras_norlab_absolem_sensor_config_1/meshes/evetar_lens.dae

+155
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?xml version="1.0"?>
2+
<root xmlns:xacro="http://www.ros.org/wiki/xacro">
3+
<!-- Mass properties from datasheet -->
4+
<xacro:property name="basler_ace_mass" value="0.09" scope="global" />
5+
<xacro:property name="basler_ace2_pro_mass" value="0.105" scope="global" />
6+
<xacro:property name="fisheye_lens_mass" value="0.05" scope="global" />
7+
<xacro:property name="omnicam_lens_mass" value="0.127" scope="global" />
8+
<xacro:property name="c_mount_flange_distance" value="0.017526" scope="global" />
9+
<xacro:property name="c_mount_radius" value="${0.025/2}" scope="global" />
10+
11+
<xacro:macro name="basler_ace_base" params="name hfov_deg frame_rate resolution_x resolution_y fisheye:=0 camera_length origin_to_camera_front_dist camera_mass camera_mesh lens_length lens_back_focal_distance lens_entrance_pupil_position lens_mass lens_mesh near_clip:=-1 simulate:=1 visualize:=0">
12+
<xacro:property name="camera_width" value="0.029"/>
13+
<xacro:property name="camera_height" value="0.029"/>
14+
15+
<xacro:property name="sensor_chip_pos" value="${origin_to_camera_front_dist - c_mount_flange_distance}" />
16+
<xacro:property name="lens_back_pos" value="${sensor_chip_pos + lens_back_focal_distance}" />
17+
18+
<link name="$(arg prefix)${name}">
19+
<visual>
20+
<origin xyz="0 0 ${camera_height/2}" rpy="0 0 0" />
21+
<geometry>
22+
<!-- The origin of the mesh is center above tripod screw -->
23+
<mesh filename="${camera_mesh}"/>
24+
</geometry>
25+
</visual>
26+
<visual>
27+
<!-- The origin of the mesh is at the back of the lens -->
28+
<origin xyz="${lens_back_pos} 0 ${camera_height/2}" rpy="0 0 0" />
29+
<geometry>
30+
<mesh filename="${lens_mesh}"/>
31+
</geometry>
32+
</visual>
33+
<collision name="${name}_collision">
34+
<origin rpy="0 0 0" xyz="${origin_to_camera_front_dist - camera_length/2} 0 ${camera_height/2}"/>
35+
<geometry>
36+
<box size="${camera_length} ${camera_width} ${camera_height}" />
37+
</geometry>
38+
</collision>
39+
<collision name="${name}_lens_collision">
40+
<origin rpy="0 ${pi/2} 0" xyz="${lens_back_pos + lens_length/2} 0 ${camera_height/2}"/>
41+
<geometry>
42+
<cylinder length="${lens_length}" radius="${c_mount_radius}" />
43+
</geometry>
44+
</collision>
45+
<xacro:box_inertial mass="${camera_mass + lens_mass}"
46+
width="${camera_width}" height="${camera_height}" depth="${camera_length + lens_length - (c_mount_flange_distance - lens_back_focal_distance)}"
47+
xyz="${origin_to_camera_front_dist + (lens_length - (c_mount_flange_distance - lens_back_focal_distance))/2 - camera_length/2} 0 ${camera_height/2}" />
48+
</link>
49+
<xacro:if value="${simulate}">
50+
<gazebo reference="$(arg prefix)${name}">
51+
<!-- Workaround for https://github.com/ignitionrobotics/ign-sensors/issues/24 -->
52+
<xacro:if value="${fisheye == 0 or '$(arg rendering_target)' == 'ign'}">
53+
<xacro:property name="cam_type" value="camera"/>
54+
</xacro:if>
55+
<xacro:unless value="${fisheye == 0 or '$(arg rendering_target)' == 'ign'}">
56+
<xacro:property name="cam_type" value="wideanglecamera"/>
57+
</xacro:unless>
58+
<sensor name="${name}" type="${cam_type}">
59+
<!-- I think the simulated sensor should be placed in the middle of the entrance pupil. -->
60+
<xacro:property name="virtual_lens_origin" value="${lens_back_pos + lens_length - lens_entrance_pupil_position}" />
61+
<pose>${virtual_lens_origin} 0 ${camera_height/2} 0 0 0</pose>
62+
<update_rate>${frame_rate}</update_rate>
63+
<visualize>${visualize}</visualize>
64+
<camera>
65+
<horizontal_fov>${radians(hfov_deg)}</horizontal_fov>
66+
<image>
67+
<width>${resolution_x}</width>
68+
<height>${resolution_y}</height>
69+
<format>R8G8B8</format>
70+
</image>
71+
<clip>
72+
<xacro:property name="clip" value="${lens_entrance_pupil_position * 1.1 if near_clip == -1 else near_clip}" />
73+
<near>${clip}</near>
74+
<far>300</far>
75+
</clip>
76+
<noise>
77+
<type>gaussian</type>
78+
<mean>0.0</mean>
79+
<stddev>0.007</stddev>
80+
</noise>
81+
<xacro:if value="${fisheye and '$(arg rendering_target)' == 'gz'}">
82+
<lens>
83+
<type>stereographic</type>
84+
<scale_to_hfov>true</scale_to_hfov>
85+
<cutoff_angle>${pi}</cutoff_angle>
86+
<env_texture_size>1024</env_texture_size>
87+
</lens>
88+
</xacro:if>
89+
</camera>
90+
</sensor>
91+
</gazebo>
92+
</xacro:if>
93+
</xacro:macro>
94+
95+
<xacro:macro name="basler_ace2_pro_link" params="name hfov_deg fisheye:=0 lens_length lens_back_focal_distance lens_entrance_pupil_position lens_mass lens_mesh near_clip:=-1 simulate:=1 visualize:=0">
96+
<xacro:basler_ace_base name="${name}" hfov_deg="${hfov_deg}" frame_rate="9" resolution_x="1920" resolution_y="1200"
97+
fisheye="${fisheye}" simulate="${simulate}" visualize="${visualize}"
98+
camera_length="0.0555" origin_to_camera_front_dist="0.0524" camera_mass="${basler_ace2_pro_mass}"
99+
camera_mesh="package://ctu_cras_norlab_absolem_sensor_config_1/meshes/basler_ace2_pro.dae"
100+
lens_length="${lens_length}" lens_back_focal_distance="${lens_back_focal_distance}"
101+
lens_entrance_pupil_position="${lens_entrance_pupil_position}" lens_mass="${lens_mass}" lens_mesh="${lens_mesh}"
102+
near_clip="${near_clip}"
103+
/>
104+
</xacro:macro>
105+
106+
<xacro:macro name="basler_ace_omnicam" params="name simulate:=1 visualize:=0">
107+
<xacro:basler_ace2_pro_link name="${name}" hfov_deg="86.5" simulate="${simulate}" visualize="${visualize}"
108+
lens_back_focal_distance="0.00809" lens_entrance_pupil_position="0.01066" lens_length="0.03974" lens_mass="${omnicam_lens_mass}"
109+
lens_mesh="package://ctu_cras_norlab_absolem_sensor_config_1/meshes/evetar_lens.dae" />
110+
</xacro:macro>
111+
</root>

0 commit comments

Comments
 (0)