Add police boat stuff. Now ready for lidar stuff
This commit is contained in:
282
additions
282
additions
@@ -1,112 +1,228 @@
|
||||
I would like to have this project use the radar equation to determine
|
||||
brightness and possible blooming on targets.
|
||||
==================================================================
|
||||
ADDITION: BOAT RADAR — BELLINGHAM POLICE PATROL BOAT
|
||||
==================================================================
|
||||
|
||||
I want the radar equation to be implemented within the shaders.
|
||||
I want to add a radar scope showing the view from a marine radar
|
||||
mounted on a Bellingham Police Department patrol boat. The boat
|
||||
is on a continuous back-and-forth patrol of the working waterfront.
|
||||
|
||||
I want a postgres database (I did install postgresql and set up a database named radar with
|
||||
a postgresql user named radar with password radar with full priveleges to database radar.
|
||||
PATROL ROUTE:
|
||||
Police boats do patrol inside Squalicum Marina (theft, vandalism,
|
||||
welfare checks) and inside Whatcom Waterway (commercial port
|
||||
security). They do not rely on seeing over the breakwater --
|
||||
the concrete breakwater shadows the inner basin.
|
||||
|
||||
DATABASE Schema:
|
||||
Speed varies by zone:
|
||||
Open waterfront: 10 knots
|
||||
Whatcom Waterway: 3-5 knots (narrow, industrial)
|
||||
Inside marina: 3-4 knots (displacement speed, no wake)
|
||||
|
||||
1. Type of target (Enumeration AIS, ADS-B, Local (simulator)
|
||||
2. ID a. MMSI for marine; b. ICAO 32 bit aircraft address; for simulator we can use the same MMSI
|
||||
and aircraft address
|
||||
3. width (32 bits) in meters (float data type)
|
||||
4. length (32 bits) in meters (float data type)
|
||||
5. Height above water (32 bits) in meters (float data type)
|
||||
6. Material (Enumeration fiberglass, wood, aluminum, steel
|
||||
7. boolean: need update for size and material, does not need update for size and material
|
||||
8. ISO 8601 timestamp for last used
|
||||
9. ISO 8601 timestamp for last updated
|
||||
10. Track / position history (to be used if I want newer track prediction radars
|
||||
Proposed full route (continuous, reversing at each end):
|
||||
Whatcom Waterway entrance
|
||||
-> slow to 4 knots, transit Whatcom Waterway
|
||||
-> exit to bay, accelerate to 10 knots
|
||||
-> Squalicum Marina outer breakwater entrance
|
||||
-> slow to 3-4 knots, tour inner marina basin
|
||||
-> exit marina, accelerate to 10 knots
|
||||
-> west along waterfront
|
||||
-> Boulevard Park
|
||||
-> Taylor Dock
|
||||
-> Community Boating Center
|
||||
-> reverse and repeat
|
||||
|
||||
For performance, we can keep id, width, length, and height, and material
|
||||
inside the shaders as fixed data; but have location, heading, and altitude (aircraft)
|
||||
INSIDE MARINA -- RADAR CLUTTER NOTE:
|
||||
At 2-3 m antenna height inside a marina full of sailboat masts,
|
||||
the radar picture will be heavily cluttered with mast returns,
|
||||
appearing as a dense ring around the boat. This is realistic and
|
||||
is a good exhibit teaching moment -- visitors can use the sea/wave
|
||||
clutter filter (already designed) to try to suppress it. The boat
|
||||
radar's wide beamwidth (4-6 deg) makes the clutter worse than the
|
||||
big coastal radar would show.
|
||||
|
||||
The items that are updated per data coming in from the raspberry pis and the simulator
|
||||
are orientation / RCS (based on heading), location (in longitude and latitude) and ID ; Suggestion
|
||||
vertex objects or SSBO
|
||||
PATROL SPEED:
|
||||
Approximately 10 knots.
|
||||
|
||||
Suggest that CPU compute the RCS based on heading and dimensions and altitude (aircraft)
|
||||
In doing this, keep this work outside of any mutex lock of any shared data
|
||||
10 knots is reasonable -- typical working-waterfront patrol speed
|
||||
is 8-12 knots, fast enough to respond quickly but slow enough to
|
||||
observe traffic and avoid wake damage near the docks.
|
||||
|
||||
Maybe, if I simulate a modern system, I may want a field to describe the target (passenger, cargo,
|
||||
oil, fishing; and maybe specifics for the targets. I know that the coast guard has a lot of
|
||||
contextual data on targets that are from external sources. For now, let's not worry about this.
|
||||
WHAT THIS MEANS FOR THE DISPLAY:
|
||||
Unlike all the other radars in this exhibit, the radar origin is
|
||||
not fixed. It moves with the boat along the patrol route. The
|
||||
radar antenna is on the boat, so the PPI scope center tracks the
|
||||
boat's position.
|
||||
|
||||
PROPOSAL:
|
||||
The boat also changes heading as it follows the shoreline, which
|
||||
means the bearing offset (already implemented as the k/j keys on
|
||||
the marine PPI) will be continuously updated by the simulator as
|
||||
the boat turns -- the operator does not manually drive the boat.
|
||||
|
||||
Since ADS-b and AIS may not have material and size data, I would like to propose
|
||||
That the initial running of the system upon detecting a target that has no size
|
||||
determination, we use a default size, say, 20 feet long 20 feet wide and fiberglass
|
||||
for boats; 50 feet long 10 feet wide fusalage for planes; and set the need update parameter
|
||||
to need update.
|
||||
The boat's heading at any point along the route determines the
|
||||
antenna offset so that True North stays at the top of the scope.
|
||||
|
||||
Add an option (command line option) for system. Command line options would be 'database'
|
||||
which would open a graphical panel suitable for updating the postgres database.
|
||||
At the beginning of the life of this project, almost all targets seen except for those
|
||||
from the simulator will need database updating; as life of the system gets older there would
|
||||
be fewer targets that need operation. For this option; none of the main radar screens
|
||||
will be available. So we do not have to to have the opengl and shader stuff. Use a regular
|
||||
desktop based application non opengl shader database updating application. This would be ended with quit
|
||||
and then the main radar application can be started.
|
||||
SIMULATOR ARCHITECTURE:
|
||||
The patrol boat position is the radar PLATFORM, not a target.
|
||||
It should be managed by the existing Simulator (Thread 4) as a
|
||||
special PatrolPlatform object alongside the target list -- NOT a
|
||||
separate simulator thread, and NOT built into the scope/rendering
|
||||
code (Thread 1).
|
||||
|
||||
END OF PROPOSAL
|
||||
The TrafficCop (Thread 2) already polls the Simulator each sweep.
|
||||
It will also retrieve the current platform lat/lon and heading at
|
||||
the same poll and write them to SharedRenderState under Mutex A.
|
||||
Thread 1 reads platform position and heading to set the PPI scope
|
||||
center point and bearing offset before rendering each frame.
|
||||
|
||||
Marine radar equation stuff:
|
||||
The patrol route is a sequence of lat/lon waypoints with speed
|
||||
per segment. The Simulator interpolates position between waypoints
|
||||
using elapsed time and the segment speed.
|
||||
|
||||
For this purpose, the marine radar will use the X Band (9225 MHZ) and 30 KW power for
|
||||
maritime traffic system radar (our a-scope marine and PPI scope marine)
|
||||
DECISIONS:
|
||||
1. SCOPE CLASS: New BoatPPIScope, a subclass of PPIScope directly
|
||||
(not a subclass of MarinePPIScope). Same controls as MarinePPIScope.
|
||||
Moving origin is specific to this class.
|
||||
|
||||
For Marine, horizontal beam width is 0.5 degrees; vertical beam width is 20 degrees.
|
||||
For Marine, the antenna size is 15 feet in length.
|
||||
For Marine, the antenna height is 50 feet off surface
|
||||
2. WAYPOINTS: JSON data file, e.g. data/patrol_route.json.
|
||||
Loaded at startup by the Simulator. Each entry has lat/lon and
|
||||
speed for that segment. settings.h stays as tunable constants only.
|
||||
|
||||
Air traffic radar equation stuff:
|
||||
|
||||
For this purpose, the air traffic control radar at BLI frequency 3 ghz or S Band;
|
||||
power 25 KW
|
||||
3. LEFT PANEL: Both -- a plain text zone description (e.g.
|
||||
"Currently: Open waterfront, heading west") AND a numeric
|
||||
lat/lon readout below it. Visitor-friendly text plus precise data.
|
||||
|
||||
For Air Traffic Control, the beam width is 1.4 degrees for horizontal and 5 degrees for vertical
|
||||
For Air Traffic Control, the antenna size is 20 feet wide
|
||||
For Air Traffic Control, the antenna is on a tower 50 feet high from the runway. It is not
|
||||
mounted on the control tower.
|
||||
4. SIMULATED SMALL TARGETS: Both scripted and random.
|
||||
- Scripted: a paddleboarder drifts slowly across the ferry lane
|
||||
on a fixed loop (dramatic, repeatable, good for exhibit)
|
||||
- Random: additional kayakers/small boats wander within a defined
|
||||
zone near the ferry terminal and harbor mouth
|
||||
- These small targets also appear on the fixed MARINE PPI scope
|
||||
(same Bellingham Bay coverage area, same target pipeline)
|
||||
|
||||
Chain Home radar equation stuff:
|
||||
5. SCOPE ORDER: Boat PPI goes immediately after Marine PPI.
|
||||
New sequence: Intro -> Marine A -> Chain Home A -> Marine PPI
|
||||
-> Boat PPI -> ATC PPI -> PAR -> (back to Intro)
|
||||
|
||||
For Chain Home, this will be a bit different: (this is AMES type 1)
|
||||
6. MARINA AND WHATCOM WATERWAY: Deferred. The patrol route for v1
|
||||
stays in open water only. The boat does NOT enter Squalicum Marina
|
||||
or Whatcom Waterway in the first implementation. Those can be
|
||||
added in a later version once the shoreline geometry problem
|
||||
is solved (see LIDAR/CHART NOTE below).
|
||||
|
||||
Frequency is 30 MHZ
|
||||
Power is 500 KW
|
||||
Pulse width is 20 US
|
||||
LIDAR AND SHORELINE GEOMETRY NOTE:
|
||||
|
||||
TRANSMIT GAIN (Gt)
|
||||
Note that the transmit beam is not a beam, but a floodlight.
|
||||
Pulse repetition frequency is 25 Hz or 12.5 Hz as selected by operator
|
||||
Use Transmit G from beam width (floodlight) something like
|
||||
G = 30000/100 degrees * 40 degrees
|
||||
about 8.7 dBi (linear value of 7.5)
|
||||
The marina, breakwater, Whatcom Waterway, and Georgia Pacific site
|
||||
all require accurate geometry to simulate correctly -- both as radar
|
||||
return sources and as shadow-casters.
|
||||
|
||||
Note that this is Bistatic; we need both Gt and Gr
|
||||
TWO DATA SOURCES:
|
||||
|
||||
RECEIVE GAIN (Gr) is about 4 to 10 (6–10 dBi)
|
||||
1. NOAA Electronic Navigational Chart 18424 (Bellingham Bay)
|
||||
Free vector download from charts.noaa.gov (ENC format).
|
||||
Already clean vector polygons: breakwater, piers, channel edges,
|
||||
ferry terminal, dock outlines. Best starting point -- no point
|
||||
cloud processing required.
|
||||
|
||||
System loss due to transmission line about 8 DB
|
||||
2. Washington State LIDAR Portal (lidarportal.dnr.wa.gov)
|
||||
Free LIDAR point cloud downloads for Whatcom County.
|
||||
0.5-1 meter horizontal resolution. Captures individual pilings,
|
||||
building edges, breakwater detail, Georgia Pacific site remnants.
|
||||
Use this when finer detail is needed (inside marina, Whatcom
|
||||
Waterway structures). Requires offline processing to extract
|
||||
obstruction polygons before use in the simulation.
|
||||
|
||||
Target RCS larger RCS due to resonant scattering (I need help; please lookup
|
||||
GEORGIA PACIFIC SITE:
|
||||
Most of the old GP pulp mill has been demolished. The area is
|
||||
now the Bellingham Waterfront District (partially built). LIDAR
|
||||
or ENC data will show whatever was on-site at survey time. For
|
||||
the exhibit this is acceptable -- it is a patrol scenario,
|
||||
not a live chart.
|
||||
|
||||
Precision Approach Radar Equation Stuff:
|
||||
HOW GEOMETRY FEEDS INTO THE SIMULATION:
|
||||
Shoreline and obstruction data is processed ONCE offline into
|
||||
a set of vector polygons representing hard radar-reflective
|
||||
features. These are loaded at Thread 1 startup as a static VBO.
|
||||
Read-only after load -- no mutex required (already noted in
|
||||
the design). The radar sweep computes returns from these
|
||||
polygons the same way it handles vessel targets.
|
||||
|
||||
Peak power is about 100 kw
|
||||
Very high antenna gain
|
||||
X Band (3 cm for wavelength) Operation allow higher antenna gain
|
||||
PAR must reliably detect small aircraft
|
||||
High pulse repetition rate
|
||||
Sweep about 20 degrees horizontal and 10 degrees vertical
|
||||
Short pulse width for range resolution
|
||||
Beamwidth is determined by wavelength/antenna size with antenna size of about 5 meters.
|
||||
RADAR SHADOW ZONES:
|
||||
The breakwater does not just produce a return -- it shadows
|
||||
everything behind it. To simulate this correctly, the sweep
|
||||
must raycast from the current radar position, find the first
|
||||
intersection with each obstruction polygon, and mark everything
|
||||
beyond that intersection as shadowed (no return). This is a
|
||||
per-sweep raycast operation, implementable CPU-side each sweep
|
||||
or in a compute shader. Shadow simulation is required even for
|
||||
the v1 open-water-only route, because the breakwater shadow
|
||||
is clearly visible from outside.
|
||||
|
||||
GENERAL NOTE FOR EQUATION STUFF
|
||||
V1 GEOMETRY SCOPE (open water only -- marina deferred):
|
||||
Only these features are needed for the first version:
|
||||
- Outer shoreline of Bellingham Bay (simple polygon)
|
||||
- Squalicum Harbor breakwater (solid obstruction, shadow-caster)
|
||||
- Ferry terminal structure
|
||||
- Taylor Dock pier outline (weak return -- wood, but pilings show)
|
||||
- Boulevard Park shoreline
|
||||
NOAA ENC 18424 provides all of these in vector form.
|
||||
Internal marina dock fingers and Whatcom Waterway structures
|
||||
are deferred until the boat patrol route enters those areas.
|
||||
|
||||
We will need these key variables to be able to be changed via the settings.h file
|
||||
and DESIGN.md and CLAUDE.md
|
||||
4. The radar hardware spec for the boat radar is DIFFERENT from
|
||||
the fixed coastal marine radar. Typical police/patrol boat radar:
|
||||
|
||||
Frequency: 9.3 - 9.5 GHz (X-band, same band, slightly
|
||||
different frequency -- treat as same for exhibit)
|
||||
Peak power: 2 kW to 4 kW (NOT the 30 kW of the fixed
|
||||
coastal radar -- this is a small-vessel unit)
|
||||
Antenna type: Radome (enclosed dome, ~60 cm diameter) --
|
||||
more rugged and lower wind resistance than
|
||||
an open array, typical for patrol boats
|
||||
Horizontal beamwidth: 4 to 6 degrees (vs 0.5 deg for the big
|
||||
coastal radar -- targets will appear as
|
||||
noticeably fatter blips; good exhibit contrast)
|
||||
Antenna height: 2 to 3 meters above waterline (radar arch
|
||||
or short mast on a 25-35 foot patrol vessel)
|
||||
|
||||
RADAR HORIZON at 2.5 m antenna height:
|
||||
horizon = 2.23 x sqrt(2.5) = approx 3.5 nautical miles
|
||||
(~4 statute miles) to a sea-level target.
|
||||
Compare: fixed coastal radar at 15 m sees ~8.6 nautical miles.
|
||||
|
||||
MAX RANGE DECISION: 2 miles maximum.
|
||||
The patrol boat's job is close-in situational awareness, not
|
||||
long-range surveillance (the fixed coastal radar handles that).
|
||||
2 miles puts the entire inner harbor on screen at once.
|
||||
|
||||
RANGE STEPS: 0.5 / 1 / 2 miles.
|
||||
Tighter steps than the fixed marine scopes (2/4/6) because the
|
||||
officer needs a close-in zoom for marina and waterway work:
|
||||
0.5 mi -- tight quarters, marina basin, Whatcom Waterway
|
||||
1.0 mi -- inner harbor, near-shore patrol
|
||||
2.0 mi -- full harbor picture, ferry lane monitoring
|
||||
|
||||
SMALL TARGET DETECTION NOTE (important for exhibit realism):
|
||||
A paddleboard or kayak is a marginal radar target at any range.
|
||||
Very small RCS, almost no freeboard. At 2-4 kW with 4-6 degree
|
||||
beamwidth, a paddleboarder may show as a faint intermittent blip
|
||||
or may wash into the noise floor entirely -- especially in chop.
|
||||
A kayak carrying a small aluminum radar reflector shows much
|
||||
better. This is realistic and worth simulating: the exhibit
|
||||
shows visitors that radar does not see everything, and that
|
||||
small non-metallic targets are genuinely hard to detect.
|
||||
|
||||
FERRY LANE SCENARIO:
|
||||
The Bellingham terminal serves the Alaska Marine Highway System
|
||||
(state ferries up to 400 feet). A paddleboarder or kayaker
|
||||
drifting into the departure lane is a real hazard the patrol
|
||||
officer watches for. Simulated small targets (paddleboards,
|
||||
kayaks) near the ferry lane would make a compelling exhibit
|
||||
moment -- visitor tries to spot them on the radar before the
|
||||
ferry moves.
|
||||
|
||||
5. Should the left panel description explain that this is a moving
|
||||
platform, and show the current boat position (lat/lon or a
|
||||
simple text description of where on the route the boat is)?
|
||||
|
||||
6. I do not care about the size or material of the police boat
|
||||
itself since it is the platform the radar is mounted on, not
|
||||
a target.
|
||||
|
||||
Reference in New Issue
Block a user