docs: link to Kogger hardware companion repo
Add a 'Implémentation Cosma — antenne Kogger' section to the page that ties the
abstract protocol (DS-TWR / SS-TWR / addressed) shown in the animations to the
concrete hardware driver used in the Cosma project (cosma-tech/kogger_acoustic
Antenna), and to the new wrapper poulpe/kogger-transpondeur-continu that turns
a Kogger antenna into a permanent slave transponder in a single start() call.
Add a 'Sources' section listing all four related repos (this page, wrapper,
upstream driver location, log decoder).
Update README similarly with a 'Hardware companion repo' section so the
ping-pong-ping repo no longer reads as standalone — it's the protocol
explainer, kogger-transpondeur-continu is the hardware glue.
Reported by Flag 2026-04-27 ('as-tu mis un lien...').
This commit is contained in:
31
index.html
31
index.html
@@ -252,7 +252,36 @@ B reçoit ping2 à T_B = 6.130 s
|
||||
Ce schéma est exactement celui qu'utilisent les puces UWB <b>DecaWave DW1000 / DW3000</b> (Apple AirTag, Qorvo, etc.) sous le nom <b>DS-TWR</b>. La transposition acoustique change uniquement l'échelle : célérité 1500 m/s vs 3·10⁸ m/s, et turnaround mesuré en ms plutôt qu'en ns. La logique de calcul est identique.
|
||||
</p>
|
||||
|
||||
<footer>Poulpe 🐙 — pour Flag — 2026-04-27</footer>
|
||||
<h2>Implémentation Cosma — antenne Kogger</h2>
|
||||
<p>
|
||||
Côté hardware, le contexte Cosma utilise des antennes acoustiques <b>Kogger</b> pilotées en SBP (sync <code>0xBB 0x55</code>, Fletcher16). Le driver Python upstream (<a href="https://gitea.nowyouknow.fr/poulpe/kogger-transpondeur-continu/src/branch/main/driver" style="color:var(--accent)">snapshot ici</a>, source <code>cosma-tech/kogger_acousticAntenna</code> sur GitHub) expose toutes les primitives bas niveau du protocole décrit ci-dessus : <code>set_usbl_request_address_filter</code> (filtre par ID, identique à la sélection adressée animée plus haut), <code>set_usbl_transponder(enable)</code> (ouvre la fenêtre de réponse permanente), <code>set_usbl_monitor_config</code> (filtre d'écho), <code>set_sync_mode</code> (slot TDMA), <code>set_usbl_ping_request_direct</code> (côté master, envoi d'un ping ciblé).
|
||||
</p>
|
||||
<p>
|
||||
Pour un AUV slave qui doit fonctionner en transpondeur permanent, un wrapper Python <a href="https://gitea.nowyouknow.fr/poulpe/kogger-transpondeur-continu" style="color:var(--accent)"><code>poulpe/kogger-transpondeur-continu</code></a> compose ces appels en une seule init :
|
||||
</p>
|
||||
<pre>
|
||||
from transponder_continu import ContinuousTransponder, SyncSlot
|
||||
|
||||
t = ContinuousTransponder(port="/dev/ttyUSB0", my_address=2,
|
||||
sync=SyncSlot(slot_total=4, slot_index=1, slot_duration=2.0),
|
||||
watchdog_timeout_s=15.0)
|
||||
t.on_ping_received(lambda msg: print(msg))
|
||||
t.start()
|
||||
t.run_forever()
|
||||
</pre>
|
||||
<p>
|
||||
L'antenne devient un slave permanent sur l'adresse 2 : elle ignore les pings adressés ailleurs, répond automatiquement aux siens (turnaround géré par le hardware Kogger, donc déterministe), et émet une frame USBL_SOLUTION (0x65) à chaque réception. Côté master USV, le pendant est <code>set_usbl_ping_request_direct(address=2, cmd_id=0)</code>.
|
||||
</p>
|
||||
|
||||
<h2>Sources</h2>
|
||||
<ul class="tight">
|
||||
<li>Code de cette page : <a href="https://gitea.nowyouknow.fr/poulpe/ping-pong-ping" style="color:var(--accent)">poulpe/ping-pong-ping</a> (Gitea)</li>
|
||||
<li>Wrapper Kogger transpondeur continu : <a href="https://gitea.nowyouknow.fr/poulpe/kogger-transpondeur-continu" style="color:var(--accent)">poulpe/kogger-transpondeur-continu</a> (Gitea)</li>
|
||||
<li>Driver Kogger upstream : <code>cosma-tech/kogger_acousticAntenna</code> (GitHub privé), snapshot read-only dans le repo wrapper ci-dessus</li>
|
||||
<li>Decoder USBL Kogger pour analyse de logs : <a href="http://192.168.0.82:3000/floppyrj45/cosma-nav/src/branch/main/extract/decode_kogger.py" style="color:var(--accent)">cosma-nav/extract/decode_kogger.py</a> (Gitea)</li>
|
||||
</ul>
|
||||
|
||||
<footer>Poulpe 🐙 — pour Flag — 2026-04-27 — design conversation Discord <code>#ping-pong-ping</code></footer>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user