As we approach the last month of summer, Cerulean is gearing up to launch the S500 multipurpose single-beam echosounder in August. The S500 uses a narrow beam-width about 5 degrees that focus the acoustic energy providing 100m range and good angular definition. CHIRP technology also maximizes range and offers excellent range resolution.
Testing is progressing on schedule, and some of our team members got up to Lake Superior over July 4th weekend, where they spent some time on the beautiful schooner Abbey Road and test the Sounder S500 in the deep clear Lake Superior waters and confirm that the 100m range rating is accurate.
The beautiful schooner Abbey Road was the platform used to test the Sounder S500 in Lake Superior over the 4th of July long weekend.
Early in June, an underwater search by Titan Maritime near Mahone Bay Nova Scotia revealed massive quantities of lost or abandoned fishing gear wreckage.
In the seabed, Titan Maritime found three kilometers of plastic fishing lines weighed down by 50 bags filled with sand and gravel, spread over a 600-meter watery grave, and resembling ruins of a sunken ship.
The wreckage had very little monetary value, but its removal is an invaluable contribution to the protection of endangered species such as the North Atlantic right whales and leatherback turtles who are threatened by fishing gear entanglements.
The S500 is a single beam echosounder designed for small ROVs, AUVs, and ASVs. The transducer and control electronics are unbundled to minimize external mechanical profile and maximize flexibility. The transducer (45.7 mm diameter x 33 mm) is rated to 300m depth, and the electronics module is housed inside the vehicle’s pressure enclosure. A narrow beam width about 5 degrees focuses the acoustic energy providing 100m range and good angular definition. CHIRP technology also maximizes range and provides excellent range resolution.
Sounder PCB to be housed in vehicle pressure vessel. 2.7″ x 1.5″ (68.5mm x 37mm)
The S500 sonar is a multipurpose single-beam echosounder. It can be used as an altimeter for ROVs and AUVs, for bathymetry work aboard a USV, as an obstacle avoidance sonar, and other underwater distance measurement applications.
The S500 implements CHIRP modulation, which sends a varying frequency ultrasonic pulse. The advantages of CHIRP include better signal to noise ratio, and much higher range resolution than non-CHIRP devices.
The S500 can report a simple distance measurement, or It can also provide the full signal profile for display as a “waterfall” plot like the display of a fishfinder. For that purpose, S500 is compatible with the Blue Robotics Ping Viewer. Raw signal strength data profiles can also be provided for advanced analysis in technical applications.
The S500 uses a high frequency 500 kHz transducer giving about 5 degrees beam width for ROV and AUV altimeter and bathymetry applications. It has a measurement range of over 100 meters. A bottom-tracking algorithm runs on the device to determine the distance to the seafloor.
Three communication interfaces include Ethernet (100Mb/sec), USB (12Mb/sec), and 3.3-5.0V serial (115kbaud).
S500 transducer. Depth rated to 300m. 1.8″ dia x 1.3″ (45.7mm x 33mm)
For those who wish to integrate the S500 to other systems, it communicates with a binary message format. You can find the S500 API documentation here.
Here is what’s in the box:
1 x S500 Sounder Control Board
1 x S550 transducer with one meter cable (1 shield + 2 signal wires)
2 wire power cable with installed JST-GH connector (1 meter)
10-30 Volts, 2.5 Watts idle, 5 Watts max at max ping rate of 10 pings/sec
69 x 38 mm. 4 mm below bottom mounting surface, 18 mm above bottom mounting surface. 4 mounting holes spaced at 33mm x 52.8mm (1.3″ x 2.08″)
Ethernet (RJ45 connector), USB (uUSB connector), 3.3-5.0V Serial (6 pin JST-GH)
3.3-5.0V digital Sync Input is available to optionally trigger pings timed to avoid interference with other acoustic devices. Sync Out (3.3V) is also available to signal the start and end of each ping emitted by the S500.
On this past Oct 25th at the second annual Blue Robotics Open House, we introduced the ROV Locator. The product was very well received! with attendees frequently reacting to the ROV Locator, and its $1995 price with disbelief. An underwater positioning system for $1995? Yes, that’s right.
And now, we are ready to announce that Cerulean Sonar has gone into full production with its underwater position system ROV Locator solution and prepared to take orders!
We are thrilled about the initial market reaction with customers around the world, purchasing and inquiring about the most cost-effective underwater position system solution on the market today!
Probably the most challenging part of operating an ROV or AUV is keeping track of its location. The solution is to fit an underwater positioning system, and the ROV Locator is the best answer and at an unprecedented price range.
With the absence of GPS availability underwater, Ultra Short Baseline (USBL) is a widely used tracking system for ROVs. The ROV Locator is designed for low-cost, medium accuracy localization of underwater objects. The ROV Locator comprises a pinger mounted on the ROV and a USBL receiver module on the surface. Sync them up at the start of the dive and track the ROV location in real-time using a QGroundControl map display.
Cerulean Sonar’s mission is to leverage the latest advances in microelectronics and digital signal processing to bring you sonar products that are Sensibly Priced! We are passionate about making ocean exploration more accessible, and we know that not everyone has the budget of the US Navy and the Big Oil companies. That’s why we do it.
Have you ever flown a DJI drone? If you have, then you’ll know that if you take your hands off the controls, the drone will stop and hold it’s position exactly where you left it until you again actuate the control to make it move-on. A Doppler Velocity Log (DVL) has the potential to do just that for an underwater ROV.
What is a Doppler Velocity Log (DVL)?
For those operating beneath the surface, the process of estimating the subsea position has a distinct challenge not found in terrestrial navigation since GPS navigation does not function underwater.
The Doppler effect (or Doppler shift) is the apparent change in the frequency of a sound, caused by relative motion between the source of the wave and the observer.
An example of a Doppler shift is the pitch difference heard when a car playing its horn passes an observer or a plane or a train passes us by. Compared to the emitted frequency, the received frequency is higher during the approach, identical at the instant of passing by and lower during the recession.
DVL uses Doppler shifting of acoustic signals to compute velocity relative to the seafloor. DVL is a crucial part of subsea navigation by offering an accurate estimate of velocity referenced to the earth.
How does DVL work?
DVL transmits a pulse with a minimum of three acoustic beams, each pointing in a slightly different direction. The reflected pulses are used to produce estimates of velocity in several axes of the DVL platform coordinate system, which are combined with estimates of DVL platform orientation from an internal Inertial Measurement Unit (IMU). The velocity estimates are integrated into position estimates in the IMU’s coordinate system.
Most Doppler velocity logs use a Janus configuration, named after the Roman god who looks both forward and backward, where a transducer pointing ahead measures speed. A sensor pointing astern is used for checking accuracy, and sensors looking abeam measure athwartship speed. Typically, the beams are only 2 to 30 degrees off vertical referenced from a level DVL platform.
So with a DVL integrated with the INS and the ROV’s control software, it is now possible to stabilize the platform, e.g. to drift from currents, and hold position relative to the sea floor just like those aerial drones do.
Who else uses DVL?
In recent years, navigation for autonomous underwater vehicles technology has progressed significantly in capability. Navigation has remained one of the main hurdles limiting the full potential of AUVs. Doppler Velocity Logs have become a reliable solution increasingly for tackling AUVs navigation requirements.
Applications requiring subsea navigation can vary from diver-held guidance systems to larger autonomous undersea vehicles conducting high-accuracy seafloor studies over vast distances.
Due to large size and high cost, the use of DVLs have been historically limited to larger and very expensive vehicles where the cost could be justified. The upcoming Cerulean Sonar offering will be small enough to deploy on a low cost commercial grade ROVs like the BlueROV2 and will set a new benchmark for low cost. Watch for Q2 2020 launch!
Testing has been completed using QGroundControl to communicate with our ROVL product. The Cerulean team has created a sample utility that enables the ROV’s location to be displayed in the map view of QGroundControl. The user can then create a waypoint in QGroundControl and drive to it.
The Cerulean Companion is an open-source program, which allows customers with Python knowledge to customize/add functionality to match their requirements.
The following link ( https://ceruleansonar.github.io/Cerulean-Companion/) provides the steps to getting the ROVL to work with QGroundControl. These instructions currently support the ROVL Rx on the topside connected to a laptop and the ROVL Tx on the ROV.
If the requirement is to plug the Rx into the ROV and have it forwarded up to a topside computer, the following can be used in Linux:
CHIRP stands for “Compressed High-Intensity Radar Pulse.” Instead of sending a single frequency like standard sonars, CHIRP pulses are a continuous sweep of frequencies extending from low to high (or high to low).
CHIRP sonar uses signal processing techniques to precisely identify the center of the received pulse. The signal processing improves both range resolution and signal-to-noise-ratio (SNR), allowing for a lower-power transmitter.
Why is CHIRP useful?
To explain the advantages of using CHIRP acoustic techniques, we must first understand the limitations of using conventional (monotonic) sonar techniques to acquire sonar imaging. A monotone acoustic pulse consists of a single carrier frequency modulated by its amplitude (typically, modulated from off to on to off).
The figure below shows the correlation between the sonar transmitted signal and the receiver circuitry produced output. The receiver will not decode every cycle of the broadcasted pulse. Instead, it generates an envelope of its overall amplitude.
The pulse duration determines the ability of the acoustic system to resolve targets. The shorter the pulse length, the higher the resolution and ability to resolve separate targets. However, this approach has its drawbacks.
To place sufficient acoustic energy into the water for proper target identification and over a wide variety of ranges, the transmission pulse length has to be relatively long.
Due to the speed of sound through water (“VOS” – typically around 1500 meters/sec), each pulse occupies an equivalent “distance” related to its pulse duration – this is referred to as “range resolution,” and can be resolved by the following equation.
Range resolution = (pulse-length x velocity of sound) / 2
For instance, in a conventional sonar system at a moderate range, a typical pulse length is 100 microseconds (µs) while the velocity of sound (VOS) in water is 1500 m/s (typically). Consequently, the range resolution would be 75 mm.
The formula adequately predicts the ability to resolve separate targets. Using the example above, if the two targets are less than 75 mm apart, it will not be possible to distinguish them as two different items. The result is that the sonar system will display a single large target, rather than two smaller targets.
How does CHIRP Operates?
Unlike standard monotonic sonars, a CHIRP pulse swept through continuously through the pulse time.
For example. A CHIRP sonar may send a pulse starting at 125KHz and ending at 150KHz. The difference separating these two frequencies is known as the “bandwidth” of the transmission. Typically, the center frequency of the broadcast is used to identify the sonar (in this case, it would be a 137.5KHz sonar).
By continuously shifting its frequency over time, the CHIRP signal can be perceived as having a unique acoustic signature. If two pulses overlap due to targets being closer than the range resolution, the CHIRP “frequency versus time information” can be used to discern them as separate images.
CHIRP sonar looks for transmitted CHIRPS echoed back from targets, with the receiver producing a sharp ‘spike’ when a suitable match is found. A monotonic sonar can only generate an output the same duration as its transmit pulse.
With CHIRP, the crucial factor for ascertaining range resolution is not the pulse interval, but rather the CHIRP bandwidth. The following formula can find the range resolution.
Range resolution = Velocity Of Sound /(Bandwidth x 2)
As an example, a chirp sonar with a bandwidth of 50kHZ would have a range resolution of 15mm, assuming a VOS of 1,500 meters/sec. Such a result would provide a theoretical five-fold improvement over the fixed frequency (monotonic) sonar previously discussed.
On the illustration shown above, the two acoustic echoes overlap. However, these CHIRP signals do not merge into a single acoustic return since their frequencies differ from each other at the overlapping points. On a CHIRP sonar environment, the sonar discerns and renders the two targets separately. With CHIRP technology, longer transmissions are feasible, allowing us to see targets further away and without loss in resolution.
Side scan sonar is a specialized sonar device for finding and identifying objects on the seafloor. Like other sonars, a side scan sonar broadcasts sound energy and interprets the return signal (echo) that reflects from the seabed or other objects. The transmitted energy is projected into the shape of a fan that sweeps the seafloor to either side. As a vessel equipped with side scan sonar moves along in a straight line, an image of the sea floor to either side of is developed.
Here is preview of a future Cerulean side scan sonar product we’ve been working on. These are early times in the development cycle, but already the imaging obtained is yielding impressive results. Both of these images were produced using the low cost ($299) Lowrance “3-in-1” sidescan transducer. The image on the right is from the standard Lowrance system, and the image on the left is from the same transducer driven by the prototype Cerulean side scan electronics. The Cerulean result is sharper because of CHIRP technology which provides better signal to noise ratio and improved range resolution.
The Side scan sonar images were taken from a Wayzata Bay wreck in Lake Minnetonka, at a 450khz frequency at about 60 meters range.
Specific configurations for the Cerulean side scan product are not yet finalized, but our goal is to set a new benchmark for high performance at a very affordable price point. Surface and depth-rated versions are anticipated and release is targeted for second half of 2021.
On Oct 25th, our Cereulan Sonar team traveled to Torrence, California, to attend the second annual Blue Robotics Open House. The Blue Robotics ecosystem is expanding rapidly and several vendors were in attendance showing their complementary products at the mini-trade show. The timing was perfect for us so we took the opportunity and made this Cerulean’s official public debut.
At the show, we introduced the ROV Locator, which was very well received! Typical reaction to the ROV Locator and its $1995 price was disbelief. An underwater positioning system for $1995? Yes, that’s right. We want to help make ocean exploration more accessible, and we know not everybody has the budget of an oil company or the US Navy!
The ROV Locator is available now in limited quantities, with full production units coming in the next several weeks. The system designed is designed for low-cost, medium accuracy localization of underwater objects. The ROV Locator comprises a pinger mounted on the ROV and a USBL receiver module on the surface. Sync them up at the start of the dive and track the ROV location in real-time using a QGroundControl map display.
On Saturday we got to do some deep water testing in the Pacific with help from the Blue Robotics team. Thanks guys!
The ROV Locator is designed for low-cost, medium accuracy localization of underwater objects.
The system can be used to guide an ROV to an area of interest, either manually or autonomously.
The system can be used to locate an ROV.
Other applications are also possible.
A complete system requires both a transmitter and a receiver. After calibration, transmitters are paired with specific receivers and should not be interchanged.
The system works by syncing the clocks of a transmitter and receiver. The transmitter then sends a sound pulse once per second. The receiver uses time-of-flight to calculate slant range to the transmitter, and phase measurements to determine the arrival angle of the sound pulse.
Volume, Receiver Unit
Mass, Receiver Unit
Volume, Transmitter Unit
Mass, Transmitter Unit
Absolute Maximum Range
Typical Usable Range
Apparent Yaw/Azimuth resolution*
Apparent Elevation angle resolution*
Slant range measurement resolution*
Slant range error accumulation (typical)
IMU Euler angle accuracy, typical **
Receiver V-in power
4.5V to 28V DC <1 Watt
Transmitter V-in power
4.5V to 28V DC <1 Watt
* Resolution does not equal Accuracy. ** Magnetic errors not included
Receiver Orientation Frame
Best Operating envelope
Data Communication from ROVL to ROV or Computer
Both transmitter and receiver support TTL-level communication at 115,200 baud, 8 bits, no parity, one stop bit.
Syncing and calibrating
There are two types of user calibrations:
Clock drift compensation (should be done when put into service and then every three months or so)
There are two methods of syncing the transmitter to the receiver:
Fast sync with dumb or autonomous transmitter
Commanded sync with tethered transmitter and receiver
Clock Drift Compensation/Calibration
The clocks in the receiver and transmitter need to be synced in order to measure the distance between the two units. Time-of-flight is used for this. Slight differences in crystal manufacturing can cause the two clocks to run at slightly different speeds. Clock drift compensation is used to compensate for some of the difference. The method is as follows:
Put transmitter and receiver at a rigidly fixed distance from each other and at the same temperature (example, taped together in a 5-gallon bucket of water)
Power up transmitter
Power up receiver
Send receiver a “Crystal Calibration” command
Wait 30 minutes without disturbing positions or sending other commands. The receiver will send an informational message when complete
To be done when first put into service and then about every three months to account for crystal aging
The Receiver contains an Inertial Measurement Unit (IMU) which has internal magnetometers, accelerometers and gyros. These sensors are imperfect and can have errors. Additionally, external magnetic disturbances can cause the magnetometers to make a bad estimate of magnetic north. The IMU has built-in processing that attempts to compensate for drift and offsets in the IMU’s sensors and for external magnetic influences. Calibrating the IMU can speed up the error correction process.
IMU calibration data is saved in flash memory and will result in much faster calibration on startup.
The IMU should be fully calibrated each time it is mounted in a new or different location.
You need to tell the receiver to invalidate its IMU calibration data when you remount it, then you need to do calibration maneuvers until calibration completes (see below calibration maneuvers).
Failing to invalidate old IMU data when re-mounting the receiver will result in long, annoying, difficult startups.
If you are only using apparent bearing and elevation outputs you can ignore the IMU and its calibration requirements.
Calibration maneuvers are sometimes called the “IMU Dance,” and they go like this:
Initial calibration – read the $USRTH data message to see when calibration is complete (Euler fields will become non-empty when calibration fully completes)
Place the device in 6 different stable positions for a period of few seconds each to allow the accelerometers to calibrate. Make sure that there is slow smooth movement between stable positions. The 6 stable positions can be in any direction, but make sure that the device is lying at least once perpendicular to each of the x, y and z axes.
Make some random movements (for example: writing the number ‘8’ on air), and/or rotating slowly around all three axes.
Repeat the two steps above until the unit indicates fully calibrated.
Once the initial calibration is complete and stored in flash memory, on subsequent boot-ups only a few simple maneuvers are needed for the IMU to recognize the saved calibration is still valid and begin outputting data. These maneuvers are typically as simple as smoothly turning the receiver upside-down and then right-side up once or twice.
If you re-mount the unit without invalidating the old calibration data and then completing an initial calibration, on subsequent boot-ups it may take quite a few maneuvers to complete calibration.
Any time after either an initial calibration or a subsequent boot-up calibration is complete (i.e., data appears in Euler fields), you can invalidate stored data and the newest calibration data will immediately store in flash. An information message is sent when the flash storage operation is complete.
Fast Sync for distance measurements
Fast sync is used to quickly and easily sync clocks between the transmitter and receiver. This is most useful when there is no tether connection between the transmitter and receiver, and/or when the ROV Locator is not integrated into the system. This is how it is done:
Get transmitter and receiver in communication with each other (i.e., power them up and put them in the water) at a known distance from each other (e.g., 1 meter)
Send receiver a “known distance” command
Whatever error is in your known-distance command will appear in transmitter’s distance estimate. Generally, an error of two to three meters isn’t too noticeable.
Sync is good until power is interrupted to either transmitter or receiver. Sync is lost when power is lost.
Sync will drift due to clock error, typically accumulating errors at one to two meters per hour
commanded Sync for distance measurements
Commanded sync works if you have communication links to both transmitter and receiver from a central controller. This is how it is done:
Simultaneously send each unit a “Prepare to sync” command
Wait at least two, but not more than three, seconds. Then simultaneously send a sync command to each unit. The closer to simultaneous, the better the subsequent distance estimates will be. Expect an initial error of about 1.5 meters for every millisecond of non-simultaneity.
The transmitter will ping at exactly 1-second intervals from receipt of the sync command (within the limitations of the clock crystal, typically 1.5 PPM).
Sync is good until power is interrupted to either transmitter or receiver. Sync will drift due to clock error, typically accumulating errors at one to two meters per hour.
New commanded syncs can be done at any time and any interval to keep clocks synced. ROVL operation is interrupted for about 3 seconds each time a sync is commanded.
Operating and accuracy considerations
Like all sonar systems, the ROVL system is affected by multipath. Reflections from the ROV body, the surface and bottom of the water body, environmental objects, launching platform body, thermoclines, etc. all can degrade accuracy and can cause ghost solutions. Multipath often manifests itself as random spurious solutions interspersed with good solutions. Spurious solutions can sometimes be filtered out.
Aquatic vegetation between the system elements can and will cause severe signal attenuation and phase disturbance of the signals.
Data and power are connected to Transmitter connector J1, or Receiver connector J2
The connector is a JST-GH 4-pin connector. Pins are wired as follows:
Serial-RX (from host, to ROVL)
Serial-TX (from ROVL, to host)
Ground (for power and serial)
Pinout is the same for both Transmitter and Receiver
Both units are supplied with a 4-conductor cable with a JST GH 4-pin connector on the unit end, suitable to connect to:
Blue Robotics BLUART USB to Serial and RS485 Adapter
transmitter wiring notes
For the transmitter, the simplest configuration is just supplying power to the transmitter. In operating scenarios, serial communication is only used for commanding sync and the serial data lines can be left unconnected.
simple wiring for either transmitter or receiver
SIMPLE ROV WIRING FOR EITHER TRANSMITTER OR RECEIVER
Standard cable supplied with units
math for computing remote latitude/longitude
Receiver & GPS at Topside and Transmitter Deepside
This configuration is best used when there is no tether between the topside and deepside, or when the ROV Locator is not integrated electronically into the tether.
latitude_rx :: from GPS co-located with receiver (in degrees that include minutes and seconds)
longitude_rx :: from GPS co-located with receiver (in degrees that include minutes and seconds)
bearing :: true bearing (not compass bearing) from $USRTH message
elevation :: elevation from $USRTH message
slant_range :: slant range from $USRTH message
depth (best, if available) :: from ROV depth sensor (minus depth of receiver unit)
depth (use if ROV depth sensor not available) = abs( sin(elevation) x slant_range ) [note 1]
map_radius = cos(elevation) x slant_range
CE = 40,074,000 m // Circumference of earth in meters
long_m_per_deg = CE / 360 // meters per degree of longitude
lat_m_per_deg = long_m_per_deg x cos(latitude_rx) // meters per degree of latitude [note 1]
Note 1: remember, most computer functions require you to convert degrees to radians
Note 2: the signs are needed in the computations
Note 3: longitude degrees that are West are negative, East are positive. Latitude degrees that are North are positive, South are negative.
Transmitter & GPS Topside and Receiver Deepside
In the case where the transmitter is topside with a co-located GPS, and the receiver is deepside, and the GPS data can be downlinked to the deepside system, the location of the receiver can be computed. The process is almost identical to the above case, with the positions inverted. The changes to the above case look like this:
latitude_tx :: from GPS co-located with transmitter (in degrees that include minutes and seconds)
longitude_tx :: from GPS co-located with transmitter (in degrees that include minutes and seconds)
lat_m_per_deg = long_m_per_deg x cos(latitude_tx) // meters per degree of latitude [note 1]
Cerulean Sonar provides a simple Windows application for the ROV-Locator that can be used to test your devices and to install firmware updates.
Connection and Configuration
The ROV-Locator app assumes the transmitter is connected to the deepside unit, and the deepside unit is supplying power to but may not be communicating with the transmitter. It also assumes the receiver is topside and is optionally co-located with a GPS unit.
The ROV-Locator application assumes the Receiver is connected to the Windows computer using an FTDI TTL 5V USB adaptor. The Blue Robotics BLUART device is equivalent to the FDI cable.
Either the BLUART or the FTDI cable will register with a PC when initially connected, and thereafter will try to always use the same COM port it was initially assigned. To be clear, the COM port assignment associates with the specific FTDI cable or BLUART board, not with the receiver. Keep track of the COM port number; it will make your life just a little easier.
Compatible GPS Devices
The ROV-Locator app is compatible with any GPS that:
plugs into a PC,
emulates a COM port
sends at 115,200 baud, 8 data bits, 1 stop bit
outputs the standard $GPRMC NMEA-0183 sentence
We have tested the GPS/GLONASS U-blox7 (115,200 baud) with the ROV-Locator application.
We have tested the GlobalSat BU-353S4 USB GPS Receiver (4800 baud) with the ROV-Locator application.
We have tested the VK-162 G-Mouse USB GPS Dongle (115,200 baud) with the ROV-Locator application.
Many other GPS units should also suitable.
The GPS is optional and is only used for the Map display. If no GPS is available, ROV-Locator map display assumes the receiver is located at (0,0) latitude-longitude and that the receiver does not move.
Known Points Database
If a GPS is used, you can load a database of known points into the ROV-Locator and known points will display on the map along with the receiver and transmitter location if they are with the bounds of the current map display. ROV-Locator finds the database by looking for the file “Known Points.txt” on the desktop, and if found, automatically loads it.
ROV-Locator Main Panel
ROV-Locator Map Display
The MAP display is a simple interface that shows the geographic relationship of the transmitter to the receiver. The display shows the receiver icon at the center of the dial (small blue square) and the relationship to the transmitter icon (purple square). The small red circles are the trail of the receiver. The lat/long of the transmitter (in degrees) is shown below the transmitter icon.
If no GPS is connected the receiver is assumed to be at lat/long (0,0). If a GPS is connected the center of the dial is the current GPS location. As the GPS moves (or the fix drifts), the display will show its trail as small blue circles.
Objects in the known points database described earlier will appear on the display if they are in range.