Skip to content

Commit a9d18d0

Browse files
Add A300 AMP attachments (#200)
* Add meshes, URDFs for the A300 AMP and AMP Observer attachments * Add spotlight attachment with light plugin for simulation * Add Seyond description with lower-than-reality resolution & correct FoV for simulation. Fix math for calculating the number of samples * Add GPS plugins for the Fixposition description
1 parent 6d17dba commit a9d18d0

File tree

17 files changed

+421
-137
lines changed

17 files changed

+421
-137
lines changed

clearpath_generator_common/clearpath_generator_common/description/attachments.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from typing import List
3333

3434
from clearpath_config.platform.attachments.a200 import A200Attachment
35+
from clearpath_config.platform.attachments.a300 import A300Attachment
3536
from clearpath_config.platform.attachments.config import BaseAttachment
3637
from clearpath_config.platform.attachments.dd100 import DD100Attachment
3738
from clearpath_config.platform.attachments.dd150 import DD150Attachment
@@ -125,6 +126,12 @@ def __init__(self, attachment: BaseAttachment) -> None:
125126
A200Attachment.TOP_PLATE: BaseDescription,
126127
A200Attachment.SENSOR_ARCH: BaseDescription,
127128
A200Attachment.OBSERVER_BACKPACK: BaseDescription,
129+
# A300
130+
A300Attachment.BUMPER: BumperDescription,
131+
A300Attachment.TOP_PLATE: BaseDescription,
132+
A300Attachment.AMP_SENSOR_ARCH: BaseDescription,
133+
A300Attachment.AMP_ENCLOSURE: BaseDescription,
134+
A300Attachment.SPOTLIGHT: BaseDescription,
128135
# J100
129136
J100Attachment.FENDER: BaseDescription,
130137
J100Attachment.TOP_PLATE: BaseDescription,

clearpath_generator_common/clearpath_generator_common/description/sensors.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,15 +193,36 @@ def __init__(self, sensor: BaseINS) -> None:
193193
class OusterOS1Description(Lidar3dDescription):
194194
SAMPLES_HORIZONTAL = 'samples_h'
195195
SAMPLES_VERTICAL = 'samples_v'
196+
BASE_TYPE = 'base'
197+
CAP_TYPE = 'cap'
196198

197-
def __init__(self, sensor: BaseLidar3D) -> None:
199+
def __init__(self, sensor: OusterOS1) -> None:
198200
super().__init__(sensor)
199201

200202
del self.parameters[self.ANGULAR_RESOLUTION_H]
201203
del self.parameters[self.ANGULAR_RESOLUTION_V]
202204
self.parameters.update({
203205
self.SAMPLES_HORIZONTAL: 1024,
204-
self.SAMPLES_VERTICAL: 64
206+
self.SAMPLES_VERTICAL: 64,
207+
self.BASE_TYPE: sensor.base_type,
208+
self.CAP_TYPE: sensor.cap_type,
209+
})
210+
211+
class SeyondLidarDescription(Lidar3dDescription):
212+
213+
def __init__(self, sensor: BaseLidar3D) -> None:
214+
super().__init__(sensor)
215+
216+
self.parameters.update({
217+
self.ANGULAR_RESOLUTION_H: 0.01,
218+
self.ANGULAR_RESOLUTION_V: 0.01,
219+
self.MINIMUM_ANGLE_H: -1.0471975511965976,
220+
self.MAXIMUM_ANGLE_H: 1.0471975511965976,
221+
self.MINIMUM_ANGLE_V: -0.6108652381980153,
222+
self.MAXIMUM_ANGLE_V: 0.6108652381980153,
223+
self.MINIMUM_RANGE: 0.1,
224+
self.MAXIMUM_RANGE: 150.0,
225+
self.UPDATE_RATE: 20 # TODO: link to clearpath_config property
205226
})
206227

207228
class ImuDescription(BaseDescription):
@@ -276,7 +297,7 @@ def __init__(self, sensor: StereolabsZed) -> None:
276297
AxisCamera.SENSOR_MODEL: AxisCameraDescription,
277298
Microstrain.SENSOR_MODEL: ImuDescription,
278299
OusterOS1.SENSOR_MODEL: OusterOS1Description,
279-
SeyondLidar.SENSOR_MODEL: Lidar3dDescription,
300+
SeyondLidar.SENSOR_MODEL: SeyondLidarDescription,
280301
VelodyneLidar.SENSOR_MODEL: Lidar3dDescription,
281302
CHRoboticsUM6.SENSOR_MODEL: ImuDescription,
282303
RedshiftUM7.SENSOR_MODEL: ImuDescription,
2.82 KB
Binary file not shown.
5.75 KB
Binary file not shown.
7.7 KB
Binary file not shown.
6.92 KB
Binary file not shown.
14.1 KB
Binary file not shown.
3.6 KB
Binary file not shown.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" ?>
2+
<robot xmlns:xacro="http://wiki.ros.org.xacro">
3+
<xacro:macro name="amp_enclosure" params="name parent_link:=base_link model:=amp_enclosure *origin">
4+
<link name="${name}_enclosure_link">
5+
<visual>
6+
<geometry>
7+
<mesh filename="package://clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl" scale="0.001 0.001 0.001" />
8+
</geometry>
9+
<material name="dark_grey"><color rgba="0.1 0.1 0.1 1.0" /></material>
10+
<origin xyz="0 0 0" rpy="0 0 0" />
11+
</visual>
12+
<collision>
13+
<geometry>
14+
<mesh filename="package://clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl" scale="0.001 0.001 0.001" />
15+
</geometry>
16+
<origin xyz="0 0 0" rpy="0 0 0" />
17+
</collision>
18+
</link>
19+
<gazebo reference="${name}_enclosure_link">
20+
<material>Gazebo/Black</material>
21+
</gazebo>
22+
<joint name="${name}_enclosure_joint" type="fixed">
23+
<parent link="${parent_link}" />
24+
<child link="${name}_enclosure_link" />
25+
<xacro:insert_block name="origin"/>
26+
</joint>
27+
28+
<link name="${name}_access_panels_link">
29+
<visual>
30+
<geometry>
31+
<mesh filename="package://clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl" scale="0.001 0.001 0.001" />
32+
</geometry>
33+
<material name="yellow"><color rgba="1 0.6038269 0 1.0" /></material>
34+
<origin xyz="0 0 0" rpy="0 0 0" />
35+
</visual>
36+
</link>
37+
<joint name="${name}_access_panels_joint" type="fixed">
38+
<parent link="${name}_enclosure_link" />
39+
<child link="${name}_access_panels_link" />
40+
<origin xyz="0 0 0" rpy="0 0 0" />
41+
</joint>
42+
<gazebo reference="${name}_access_panels_link">
43+
<material>Gazebo/DarkYellow</material>
44+
</gazebo>
45+
46+
<!--
47+
Mount points for sensors, other accessories
48+
-->
49+
50+
<!-- center of the adjustable track on top -->
51+
<link name="${name}_center_mount" />
52+
<joint name="${name}_center_joint" type="fixed">
53+
<parent link="${name}_enclosure_link" />
54+
<child link="${name}_center_mount" />
55+
<origin xyz="0 0 0.4074593" rpy="0 0 0" />
56+
</joint>
57+
58+
<!-- standard rear-mounted antennas -->
59+
<link name="${name}_antenna_mount" />
60+
<joint name="${name}_antenna_mount_link" type="fixed">
61+
<parent link="${name}_enclosure_link" />
62+
<child link="${name}_antenna_mount" />
63+
<origin xyz="-0.4028 0 0.4074593" rpy="0 0 0" />
64+
</joint>
65+
66+
<!-- rear-mounted fixposition -->
67+
<link name="${name}_ins_mount" />
68+
<joint name="${name}_ins_mouint_link" type="fixed">
69+
<parent link="${name}_enclosure_link" />
70+
<child link="${name}_ins_mount" />
71+
<origin xyz="-0.4 0.0 0.3192593" rpy="3.14159 0 3.14159" />
72+
</joint>
73+
74+
<!-- front-mounted robin -->
75+
<link name="${name}_front_lidar_mount" />
76+
<joint name="${name}_front_lidar_mount_link" type="fixed">
77+
<parent link="${name}_enclosure_link" />
78+
<child link="${name}_front_lidar_mount" />
79+
<origin xyz="0.40 0 0.2708593" rpy="0 0 0" />
80+
</joint>
81+
</xacro:macro>
82+
</robot>

clearpath_platform_description/urdf/a300/attachments/amp_frame.urdf.xacro

Lines changed: 0 additions & 99 deletions
This file was deleted.

0 commit comments

Comments
 (0)