diff --git a/clearpath_generator_common/clearpath_generator_common/description/attachments.py b/clearpath_generator_common/clearpath_generator_common/description/attachments.py
index 70498775..64992dc9 100644
--- a/clearpath_generator_common/clearpath_generator_common/description/attachments.py
+++ b/clearpath_generator_common/clearpath_generator_common/description/attachments.py
@@ -32,6 +32,7 @@
from typing import List
from clearpath_config.platform.attachments.a200 import A200Attachment
+from clearpath_config.platform.attachments.a300 import A300Attachment
from clearpath_config.platform.attachments.config import BaseAttachment
from clearpath_config.platform.attachments.dd100 import DD100Attachment
from clearpath_config.platform.attachments.dd150 import DD150Attachment
@@ -125,6 +126,13 @@ def __init__(self, attachment: BaseAttachment) -> None:
A200Attachment.TOP_PLATE: BaseDescription,
A200Attachment.SENSOR_ARCH: BaseDescription,
A200Attachment.OBSERVER_BACKPACK: BaseDescription,
+ # A300
+ A300Attachment.BUMPER: BumperDescription,
+ A300Attachment.TOP_PLATE: BaseDescription,
+ A300Attachment.AMP_FRAME: BaseDescription,
+ A300Attachment.OBSERVER_BACKPACK: BaseDescription,
+ A300Attachment.OBSERVER_ARCH: BaseDescription,
+ A300Attachment.SPOTLIGHT: BaseDescription,
# J100
J100Attachment.FENDER: BaseDescription,
J100Attachment.TOP_PLATE: BaseDescription,
diff --git a/clearpath_generator_common/clearpath_generator_common/description/sensors.py b/clearpath_generator_common/clearpath_generator_common/description/sensors.py
index 82615f0a..80a5c15f 100644
--- a/clearpath_generator_common/clearpath_generator_common/description/sensors.py
+++ b/clearpath_generator_common/clearpath_generator_common/description/sensors.py
@@ -193,15 +193,36 @@ def __init__(self, sensor: BaseINS) -> None:
class OusterOS1Description(Lidar3dDescription):
SAMPLES_HORIZONTAL = 'samples_h'
SAMPLES_VERTICAL = 'samples_v'
+ BASE_TYPE = 'base'
+ CAP_TYPE = 'cap'
- def __init__(self, sensor: BaseLidar3D) -> None:
+ def __init__(self, sensor: OusterOS1) -> None:
super().__init__(sensor)
del self.parameters[self.ANGULAR_RESOLUTION_H]
del self.parameters[self.ANGULAR_RESOLUTION_V]
self.parameters.update({
self.SAMPLES_HORIZONTAL: 1024,
- self.SAMPLES_VERTICAL: 64
+ self.SAMPLES_VERTICAL: 64,
+ self.BASE_TYPE: sensor.base_type,
+ self.CAP_TYPE: sensor.cap_type,
+ })
+
+ class SeyondLidarDescription(Lidar3dDescription):
+
+ def __init__(self, sensor: BaseLidar3D) -> None:
+ super().__init__(sensor)
+
+ self.parameters.update({
+ self.ANGULAR_RESOLUTION_H: 0.01,
+ self.ANGULAR_RESOLUTION_V: 0.01,
+ self.MINIMUM_ANGLE_H: -1.0471975511965976,
+ self.MAXIMUM_ANGLE_H: 1.0471975511965976,
+ self.MINIMUM_ANGLE_V: -0.6108652381980153,
+ self.MAXIMUM_ANGLE_V: 0.6108652381980153,
+ self.MINIMUM_RANGE: 0.1,
+ self.MAXIMUM_RANGE: 150.0,
+ self.UPDATE_RATE: 20 # TODO: link to clearpath_config property
})
class ImuDescription(BaseDescription):
@@ -276,7 +297,7 @@ def __init__(self, sensor: StereolabsZed) -> None:
AxisCamera.SENSOR_MODEL: AxisCameraDescription,
Microstrain.SENSOR_MODEL: ImuDescription,
OusterOS1.SENSOR_MODEL: OusterOS1Description,
- SeyondLidar.SENSOR_MODEL: Lidar3dDescription,
+ SeyondLidar.SENSOR_MODEL: SeyondLidarDescription,
VelodyneLidar.SENSOR_MODEL: Lidar3dDescription,
CHRoboticsUM6.SENSOR_MODEL: ImuDescription,
RedshiftUM7.SENSOR_MODEL: ImuDescription,
diff --git a/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl b/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl
new file mode 100644
index 00000000..c574e658
Binary files /dev/null and b/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl differ
diff --git a/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl b/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl
new file mode 100644
index 00000000..e92fa411
Binary files /dev/null and b/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl differ
diff --git a/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl b/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl
new file mode 100644
index 00000000..f0cdefe3
Binary files /dev/null and b/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl differ
diff --git a/clearpath_platform_description/urdf/a300/attachments/observer_arch.urdf.xacro b/clearpath_platform_description/urdf/a300/attachments/observer_arch.urdf.xacro
new file mode 100644
index 00000000..379e2b12
--- /dev/null
+++ b/clearpath_platform_description/urdf/a300/attachments/observer_arch.urdf.xacro
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gazebo/DarkYellow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clearpath_platform_description/urdf/a300/attachments/observer_backpack.urdf.xacro b/clearpath_platform_description/urdf/a300/attachments/observer_backpack.urdf.xacro
new file mode 100644
index 00000000..ee2c960a
--- /dev/null
+++ b/clearpath_platform_description/urdf/a300/attachments/observer_backpack.urdf.xacro
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gazebo/Black
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gazebo/DarkYellow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clearpath_platform_description/urdf/a300/attachments/spotlight.urdf.xacro b/clearpath_platform_description/urdf/a300/attachments/spotlight.urdf.xacro
new file mode 100644
index 00000000..f7ba29ca
--- /dev/null
+++ b/clearpath_platform_description/urdf/a300/attachments/spotlight.urdf.xacro
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0 0 0 0
+ 1 1 1 0.5
+ .1 .1 .1 1
+
+ 20
+ 0.8
+ 0.75
+ 0.01
+
+ 0 0 0
+
+ 1.0471975511965976
+ 2.0943951023931953
+ 1.0
+
+ true
+ false
+
+
+ ${name}_light_link
+
+ 0 0 0 0 0 0
+ ${name}_light
+
+
+ false
+
+
+
\ No newline at end of file
diff --git a/clearpath_sensors_description/urdf/fixposition.urdf.xacro b/clearpath_sensors_description/urdf/fixposition.urdf.xacro
index 044a0f08..2a9c9bef 100644
--- a/clearpath_sensors_description/urdf/fixposition.urdf.xacro
+++ b/clearpath_sensors_description/urdf/fixposition.urdf.xacro
@@ -79,6 +79,14 @@
rpy="${gps_0_rpy_r} ${gps_0_rpy_p} ${gps_0_rpy_y}"
/>
+
+
+ 1
+ 1
+ ${name}_gps_0_link
+ $(arg namespace)/sensors/${name}/gps_0/fix
+
+
+
+
+ 1
+ 1
+ ${name}_gps_1_link
+ $(arg namespace)/sensors/${name}/gps_1/fix
+
+
diff --git a/clearpath_sensors_description/urdf/ouster_os1.urdf.xacro b/clearpath_sensors_description/urdf/ouster_os1.urdf.xacro
index 87db2577..94bcff28 100644
--- a/clearpath_sensors_description/urdf/ouster_os1.urdf.xacro
+++ b/clearpath_sensors_description/urdf/ouster_os1.urdf.xacro
@@ -21,6 +21,7 @@
name
parent_link
cap:=halo
+ base:=base
*origin
samples_h:=1024 min_ang_h:=${-pi} max_ang_h:=${pi}
samples_v:=64 min_ang_v:=${-21.2 * pi/180} max_ang_v:=${21.2 * pi/180}
@@ -32,9 +33,16 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -46,33 +54,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clearpath_sensors_description/urdf/phidgets_spatial.urdf.xacro b/clearpath_sensors_description/urdf/phidgets_spatial.urdf.xacro
index be1b0fcc..b3cbd8ff 100644
--- a/clearpath_sensors_description/urdf/phidgets_spatial.urdf.xacro
+++ b/clearpath_sensors_description/urdf/phidgets_spatial.urdf.xacro
@@ -27,7 +27,7 @@
true
${update_rate}
true
- ${name}_link
+ ${name}_link
$(arg namespace)/sensors/${name}/data
diff --git a/clearpath_sensors_description/urdf/seyond_lidar.urdf.xacro b/clearpath_sensors_description/urdf/seyond_lidar.urdf.xacro
index 0c087419..518aa21a 100644
--- a/clearpath_sensors_description/urdf/seyond_lidar.urdf.xacro
+++ b/clearpath_sensors_description/urdf/seyond_lidar.urdf.xacro
@@ -1,9 +1,15 @@
+ ang_res_h:=0.002617993877991494
+ min_ang_h:=-1.0471975511965976
+ max_ang_h:=1.0471975511965976
+ ang_res_v:=0.006283185307179586
+ min_ang_v:=-0.6108652381980153
+ max_ang_v:=0.6108652381980153
+ update_rate:=20
+ min_range:=0.1
+ max_range:=150.0">
@@ -49,8 +55,8 @@
-
-
+
+
${update_rate}