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}