Subsystem 03 · EE32015
Sensors Subsystem
Perception and navigation: sensor selection, placement and detection performance.
Sections
Design Concept Description
The system design uses a tracked rover for biohazard recovery, and a quadcopter drone to support aerial mapping and geolocation. The sensor subsystem’s core responsibilities are to:
- Provide continuous 360° navigation and obstacle awareness for the ground robot
- Deliver 3D target geometry for autonomous biohazard manipulation
- Inform the operator via live spatial visualisation and aerial mapping
- Measure internal system states such as joint position and chassis orientation

Figure A1 – Sensor suite placement in overall system design.
A 3D LiDAR is selected as the primary perception sensor on the rover and drone. The biohazard environment is characterised by smoke, fire, and degraded visibility, therefore wholly appearance-based alternatives such as RGB vision were deemed unreliable. [1-4]
LiDAR systems produce metrically accurate, lighting invariant XYZ data, enabling robust mapping and localisation via SLAM principles; the simulated LiDAR concept utilises clustering and model fitting to achieve highly accurate object detection (DBSCAN & RANSAC). The approach delivered >95% biohazard detection with worst case positional error below 5mm, while the drone-mounted LiDAR provided aerial mapping with 0.1m geolocation accuracy across the 50×50m arena.

Figure A2 – Sensor data flow and decision logic.
To mitigate false positives at close range, additional RGB sensing was implemented for appearance-based verification prior to autonomous pick-up.
In practise, joint encoders and an end-effector IMU will provide internal state for arm control, but in simulation these are read directly from CoppeliaSim joints, so this topic is instead evaluated in the Robotics Section with regards to control.
Requirements definition and analysis
The sensor requirements in Figure B1 are derived from system-level objectives, including biohazard recovery, casualty detection and time efficient mission completion. Each subsidiary requirement defines what the simulated sensor suite must achieve to support required functionality, while the final column notes how considerations for real deployment.
|
SYS Requirement |
Sensor Subsidiary |
Description |
Adaptations in real deployment |
|
SYS03 Biohazard recovery SYS11 Detection & localisation |
SEN01 Object detection reliability |
LiDAR must successfully detect biohazard cylinders within the evaluated area at rate ≥ 90%. |
LiDAR faces noise and partial occlusion; multi-scan confirmation and increased background rejection required. |
|
SEN02 Container pose estimates |
Sensor subsystem shall output estimated biohazard positions with error ≤ 0.05 m for robotic arm kinematics. |
Larger errors from hardware requiring calibration. |
|
|
SYS02 Safe zone SYS03 SYS10 Payload placement |
SEN03 RGB verification |
RGB colour-thresholding shall correctly confirm biohazard and safe zone presence in 100% of tested scenarios. |
Noise & lighting reduce camera effectiveness; adaptive colours thresholds and exposure control will be required to maintain reliability. 100% unrealistic, so practical requirements becomes no misclassification under expected conditions. |
|
SYS03 SYS04 SYS11 SYS12 Mission time |
SEN04 Aerial mapping & geolocation |
Drone LiDAR should map biohazards and casualties with mean absolute position error ≤ 0.5m, so the operator can efficiently navigate towards targets. |
Real deployment requires GNSS, SLAM and IMU; simulation provides perfect localisation – mapping requirement relaxed. |
|
SYS03 SYS04 SYS12 |
SEN05 Rover LiDAR visualisation |
Rover LiDAR visualisation shall support tele-op driving, with stable rendering and update rate ≥ 5Hz. |
360° scanner and networking will demand intensive CPU use; down sampling and compression will be required. |
|
SYS10 |
SEN06 Internal state sensing (encoders/IMU) |
Joint and chassis state signals available to the controllers shall have resolution higher than 1° for arm joints, so that LiDAR-derived target pose can be followed without unstable behaviour at pickup/drop-off. |
Simulation provides ideal values from joints; the real system would demand higher nominal sensor resolution. |
Figure B1 Sensor subsystem requirements table.
Test plan and definition of success
|
Requirement |
Simulation test and limitation |
Real world test outline |
Success criteria |
|
SEN01 Object detection reliability |
Automatic evaluation script moves biohazard systematically within LiDAR detection area. Limitation: ideal surfaces, no smoke, limited occlusion. |
Place cylinders on a mapped test grid; run repeated scans with added clutter and occlusion. |
≥90% detection rate over evaluated grid. |
|
SEN02 Container pose estimates |
Sweep comparing estimated pose with ground-truth object pose from simulator. Limitation: perfect extrinsic, no range bias. |
LiDAR calibrated to robot frame, with accuracy validated in the same method. |
Position error ≤0.05m. |
|
SEN03 RGB verification |
Four scenes to validate colour detection (hazard, safe zone, both, null). Limitation: uniform lighting and no noise. |
Test with varying illumination, exposure and camera angle. |
Correct classification in 100% of test frames. |
|
SEN04 Aerial mapping & geolocation |
Drone scans environment from altitude, marker positions to known object poses are compared. Limitation: perfect odometry, no drift. |
Outdoor test with GNSS markers; compare detected targets to surveyed coordinates. |
Mean absolute position error ≤0.5 m, all targets detected with aerial depth map. |
|
SEN05 Rover LiDAR visualisation |
Tele-op drive with live LiDAR map; log update rate and render stability. Limitation: no network latency or GPU load from other processes. |
Operator drives rover using LiDAR view; assess usability. |
≥5 Hz stable visualisation. |
|
SEN06 Internal state sensing (encoders / IMU) |
Not tested; simulation reads perfect joint states directly from CoppeliaSim. Limitation: joints are ideal, no quantisation. |
Compare encoder and IMU outputs to reference on calibration rig. |
N/A |
Figure C1 – Sensor subsystem test matrix.
The sensor subsystem will be tested via automated parameter sweeps and scenario runs in CoppeliaSim. While this enables rapid and repeatable evaluation, the results are optimistic because the simulated sensors are noise free and the environment idealised.
Detailed design
D1 LiDAR geometry and data flow

Figure D1.1 – CoppeliaSim rover LiDAR placement and depth visualisation feed.
The tracked ground robot and drone simulate a LiDAR via a CoppeliaSim perspective vision sensor; the data is processed via an external Python framework (in Portfolio comments). Each pixel \((u,v)\) returns a depth value \(d\) along the observed ray. A pinhole model was implemented to transform this into a 3D point within the sensor frame: \[ p_{L}=d\,K^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix} \]
Where \(K\) is the intrinsic matrix from field-of-view and resolution. Points are then transformed into the robot or world frame using a rigid transform as follows: \[ p_{W}=T_{WR}\,T_{RL}\,p_{L} \]
with \(T_{RL}\) the LiDAR robot calibration and \(T_{WR}\) as the robot pose.
Depth images are streamed via the ZMQ Remote API, reshaped with numpy into a point cloud, and then passed through a processing pipeline as follows:
- Down sampling
- Ground removal
- Clustering
- Model fitting
- Target list

Figure D1.2 – LiDAR depth acquisition and world-frame point-cloud projection (abridged).

Figure D1.3 – LiDAR signal flow diagram.
D2 Biohazard detection and position estimation
Starting from the world-frame point cloud generated in Section D1, biohazard positions are estimated through a structured filtering, clustering and model-fitting pipeline:
1) The raw point cloud is voxel-filtered to reduce noise whilst preserving the cylinder silhouette, with a finer voxel resolution applied close to the robot where position accuracy is most critical.
2) Ground-plane removal and height gating discard points below the expected pick-up region (\(z=0.20\,\mathrm{m}\)), preventing floor points from dominating clusters.
3) The remaining points are clustered using DBSCAN to identify candidate objects. DBSCAN was chosen because it does not require a predefined cluster count and is robust to isolated noise points.
4) For each cluster, a RANSAC cylinder model is fitted. Clusters with low residual are accepted as cylinders, and high-error fits are labelled “uncertain” and ignored.
The average residual is:
\[ e_{\mathrm{cyl}}=\frac{1}{N}\sum_{i}\left|\ \left\|\,(p_i-c)-\big((p_i-c)\cdot\hat{a}\big)\hat{a}\,\right\|-r\ \right| \]
where \(c\) is a point on the axis, \(\hat{a}\) the axis direction and \(r=0.10\,\mathrm{m}\) the nominal radius.

Figure D2.1 – Simplified DBSCAN + RANSAC cylinder detector.
Parameter sweeps using an automated positioning script were used to tune voxel resolution, DBSCAN parameters, and height gating (example CSV in comments). Early configurations exhibited a floor to object “bridging” behaviour, where ground returns merged with the cylinder.
This was mitigated by tightening the height gate and rejecting clusters with implausible vertical extent. Within the resulting sensor range, a >95% detection rate was achieved, with mean absolute position errors below 5cm (Section E Test Results).
For each accepted cylinder, the estimated world-frame pose (x, y, z, yaw) is passed directly to the inverse-kinematics state machine as the pickup target.
Figure D2.2 – Autonomous biohazard pickup using LiDAR derived position.
D3 LiDAR depth-map visualisation
To support teleoperation in the low-visibility environment, the rover LiDAR output is visualised as a depth map. Sensor data is streamed to an external Python process for real-time visualisation, where a high-resolution colour gradient conveys relative distance to support obstacle awareness. The display updates synchronously with CoppeliaSim, with non-finite range returns masked.
Figure D3 – Rover LiDAR depth-map teleoperation view.
D4 Aerial LiDAR mapping and geolocation
The quadcopter performs an automated aerial survey, using a downward-facing LiDAR to acquire depth images of the full environment. Each depth image is converted to a world-frame point using the projection pipeline defined in Section D1. In simulation, the drone and rover positions are read directly from their object transforms; in practice this would be estimated by a combination of GNSS and SLAM techniques.
Figure D4.1 – Aerial LiDAR depth map and geolocated biohazards/casualties over the arena.
Points are projected onto a fixed grid and accumulated to form a 2D depth map. DBSCAN and simple geometric checks are then applied to extract clusters corresponding to biohazards and casualties.
Detected biohazards and casualties are stored as global markers and updated live within a shared world frame, alongside the rover position, allowing the operator to assess target locations, quantities, and vehicle motion on a single map. This satisfies SEN04 and contributes directly to system-level geolocation requirement SYS11.
D5 RGB Verification:
An RGB camera is mounted on the robot chassis, processed by Python to confirm LiDAR detections (code in comments). Each frame is converted to HSV and thresholder for yellow (biohazard) and green (safe zone). A central ROI is used so only objects directly ahead are considered. If enough pixels are seen near a LiDAR marker, the object is confirmed.

Figure D5.1 – Colour thresholding code.


Figure D5.2 – RGB frames and HSV masks.
Test results
|
Requirement |
Success criteria |
Discussion |
Outcome |
|
SEN01 Object detection reliability |
≥90% detection rate over evaluated grid. |
99% detection with 0 false positives (Figures E1–E3). |
PASS |
|
SEN02 Container pose estimates |
Position error ≤0.05m (50mm) within tested region. |
Mean absolute position error was below 2mm in both range and lateral spread, with an outlier of 4mm at the edge of the region (Figures E2–E3). |
PASS |
|
SEN03 RGB verification |
Correct classification in 100% of test frames across four scenes (hazard / safe zone / both / null). |
All four scripted scenes were classified correctly (hazard, safe zone, combined, null), giving 100% success in the tested scenarios (Figure D5.2). |
PASS |
|
SEN04 Aerial mapping & geolocation |
Mean absolute position error ≤0.5 m for mapped biohazards and casualties. |
Aerial LiDAR mapping produced median absolute errors around 0.10m, with almost all samples below 0.15 m, well inside the 0.5 m criterion and meeting SYS11 geolocation requirements (Figure E4). |
PASS |
|
SEN05 Rover LiDAR visualisation |
Stable visualisation ≥5 Hz without noticeable stutter. |
The LiDAR depth-map visualiser demonstrated an update rate consistently above 5Hz (Figure E5). |
PASS |

Figure E1 – Rover LiDAR detection & error.

Figure E2 – LiDAR positional error heatmap.

Figure E3 – Detected vs actual payload positions.

Figure E4 – Aerial LiDAR boxplot positional error by object type.

Figure E5 – LiDAR visualisation stability.
Design Reflection
The forward-sector LiDAR configuration was a compromise driven by CoppeliaSim performance limits. In practice, this would be replaced by a 360° LiDAR to support omnidirectional environment awareness.
Simulation results are optimistic and will degrade in practice due to noise, misalignment, and environmental interference. These effects can be mitigated through sensor–robot calibration, the retuning of detection thresholds using noisy test data, and the deliberate use of redundant sensing. This redundancy is partially demonstrated within the simulated concept: LiDAR provides primary spatial perception, while RGB vision acts as an independent close-range confirmation step.
Notwithstanding these limitations, the designed sensor subsystem demonstrates a balance between robustness and computational complexity, providing a credible foundation for a real-world biohazard response system.
Bibliography
[1] R. Siegwart, I. R. Nourbakhsh, and D. Scaramuzza, Introduction to Autonomous Mobile Robots, 2nd ed. Cambridge, MA, USA: MIT Press, 2011.
[2] M. Ester, H.-P. Kriegel, J. Sander, and X. Xu, “A density-based algorithm for discovering clusters in large spatial databases with noise,” in Proc. 2nd Int. Conf. Knowledge Discovery and Data Mining (KDD), 1996, pp. 226–231.
[3] M. A. Fischler and R. C. Bolles, “Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography,” Commun. ACM, vol. 24, no. 6, pp. 381–395, Jun. 1981, doi: 10.1145/358669.358692.
[4] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age,” IEEE Trans. Robot., vol. 32, no. 6, pp. 1309–1332, Dec. 2016, doi: 10.1109/TRO.2016.2624754.