researchbest is the team’s web-research specialist. Every entry follows the same six-step format: keyword search → primary sources → comparison matrix → trade-off analysis → final recommendation → citations. Each topic ends with a six-axis evaluation matrix scoring candidates on metrics relevant to the topic (latency, memory, CPU, ROS 2 integration, real-time fitness, community support).
Repo architecture (TASK-029, 2026-05-07)
Decisions captured in 01-genesis.md:
- Separate git repo at
~/git/proj/researchbest/, not nested insideaerosearch— the scope is wider than a “research folder,” parallelingrl-labas its own track. - Wrapper pattern for
help_scripts—launch.sh/build.share 16-line wrappers that delegate tosimulation/help_scripts/*via anENV_FILEenvvar override. Not copies, not symlinks; thin shells with explicit env injection. - Flat accumulating naming for
models/worlds/nodes—<base>_v<N>_task<NNN>.<ext>. Old versions are never deleted — experimental reproducibility wins over directory cleanliness. - Accumulating dev-log (one shared log, not per-task) —
docs/dev-log/<NN>-<topic>.md. A TASK collapses into a single entry, not spread across several.
Stack bootstrap (TASK-011, entries 03–06)
- Standalone ROS 2 Jazzy workspace with the
researchbest_dronepackage. - Custom daemon CLI (
start/stop/status/attach/logs/restart) — built from scratch, not a wrapper (thesimulationrepo doesn’t have adaemon.shto wrap). - Custom zigzag world
worlds/zigzag_corridor_v1_task011.sdf(~18 m, narrow corridors). - Smoke test (entry 06):
sweep_node+autoscan_node+sensor_monitorwork in Gazebo + SITL without colliding with thesimulationteam’s workspace. TASK-033 phase 3 (entry 07) added phase isolation via.env_researchbest(SITL_INSTANCE=1,GZ_PARTITION=researchbest,ROS_DOMAIN_ID=42).
Web research topics (cumulative)
TASK-002 — stop-scan mapping (dev-log 02, 580 lines)
GPS-denied indoor exploration using 1D ToF sweep. Final pipeline: STOP-SCAN-FRONTIER — Cartographer 2D → frontier_picker → mission_fsm. See Cartographer SLAM stack.
TASK-021 — ROS 2 Jazzy stack (dev-log 10–12)
- 21b — 2D SLAM choice. Winner: slam_toolbox (not Cartographer): ATE 0.13 m vs 0.21 m, position error ≤10 cm vs 1.4 m, ROS 2-native, Nav2 default. → Cartographer SLAM stack.
- 21c — frontier exploration. Keep our own
frontier_picker.py(WFD + utility scoring + EWFD optimization) instead ofm-explore-ros2(which has staleslam_gmappingdependencies). → Frontier exploration alternatives. - 21d — Nav2 drone config.
NavigateToPoseActionClient invoked frommission_fsm, REP 105 /TwistStampedgotchas surfaced via the GSoC 2023 community work. → Nav2 drone aerial config.
Topic-A — VL53L0X×6 array (dev-log 09, 257 lines)
Choice: XSHUT-based address reassignment + Adafruit CircuitPython (no TCA9548A multiplexer). Realistic throughput: ~25-30 Hz total array, < 50 ms latency, < 10% CPU on Raspberry Pi 5. → VL53L0X array design.
TASK-047 — servo + scan storage (dev-log 14–15)
SG90 servo accuracy characterization + sweep-scan storage format. → SG90 sweep design.
Sensors (dev-log 16, 17, 18)
- TF-Luna sim-to-real noise sweep — domain randomization is required (σ 0.05–0.10 m is the critical band). → ToF sim-to-real.
- PMW3901 optical-flow operating limits — altitude range, illumination, surface contrast. → PMW3901 limits.
- Multi-sensor EKF3 fusion — rangefinder + optical flow + IMU. → EKF3 multi-sensor fusion.
Infrastructure (dev-log 19, 21, 22)
- SLAM comparison — additional algorithms covered in the main Cartographer SLAM stack page.
- ROS 2 latency tuning — DDS, transport, QoS. → ROS 2 latency tuning.
- Edge compute — Jetson Nano/Orin as companion PC. → Edge compute.
TASK-033 — parallel SITL heartbeat research (dev-log 13)
Overlaps with the simulation agent’s findings — see Parallel SITL instances.
What was not published as a standalone page
- Entries 04 (zigzag-world-design) and 05 (launcher-design) —
researchbeststack-internal infra, not relevant to the general book. - Entry 08 (research-topics-A-B-C) — meta-commentary on research process, not a result.
Media
~/drone_media/research/TASK-033/ — diagrams.md (ASCII parallel-SITL diagrams) and ros2_gazebo_resources.html (resource dump).