1 #ifndef __BASE_SAMPLES_SONAR_HPP__ 2 #define __BASE_SAMPLES_SONAR_HPP__ 5 #include <base/Float.hpp> 6 #include <base/Time.hpp> 7 #include <base/Angle.hpp> 8 #include <base/Deprecated.hpp> 10 #include <base/samples/SonarBeam.hpp> 11 #include <base/samples/SonarScan.hpp> 14 namespace base {
namespace samples {
76 std::vector<base::Time> timestamps;
111 std::vector<base::Angle> bearings;
114 float speed_of_sound;
132 std::vector<float> bins;
134 static float getSpeedOfSoundInWater() {
return 1497.0; }
137 : speed_of_sound(getSpeedOfSoundInWater())
143 , bin_duration(bin_duration)
144 , beam_width(beam_width)
145 , beam_height(beam_height)
146 , speed_of_sound(getSpeedOfSoundInWater())
147 , bin_count(bin_count)
153 int beam_count,
bool per_beam_timestamps)
155 , bin_duration(bin_duration)
156 , beam_width(beam_width)
157 , beam_height(beam_height)
158 , speed_of_sound(getSpeedOfSoundInWater())
159 , bin_count(bin_count)
160 , beam_count(beam_count)
162 resize(bin_count, beam_count, per_beam_timestamps);
165 void resize(
int bin_count,
int beam_count,
bool per_beam_timestamps);
171 float speed_of_sound = getSpeedOfSoundInWater());
176 base::Time getBinRelativeStartTime(
unsigned int bin_idx)
const;
180 base::Time getBeamAcquisitionStartTime(
unsigned int beam)
const;
184 base::Time getBinTime(
unsigned int bin,
unsigned int beam)
const;
188 float getBinStartDistance(
unsigned int bin)
const;
207 void pushBeam(std::vector<float>
const& bins);
211 void pushBeam(std::vector<float>
const& bins,
base::Angle bearing);
215 void pushBeam(
base::Time const& beam_time, std::vector<float>
const& beam_bins);
220 void pushBeam(
base::Time const& beam_time, std::vector<float>
const& beam_bins,
base::Angle bearing);
230 void pushBeamBins(std::vector<float>
const& beam_bins);
238 void setBeam(
unsigned int beam, std::vector<float>
const& bins);
242 void setBeam(
unsigned int beam, std::vector<float>
const& bins,
base::Angle bearing);
246 void setBeam(
unsigned int beam,
base::Time const& beam_time, std::vector<float>
const& beam_bins);
250 void setBeam(
unsigned int beam,
base::Time const& beam_time, std::vector<float>
const& beam_bins,
base::Angle bearing);
260 void setBeamBins(
int beam, std::vector<float>
const& beam_bins);
267 base::Angle getBeamBearing(
unsigned int beam)
const;
270 std::vector<float> getBeamBins(
unsigned int beam)
const;
273 void getBeamBins(
unsigned int beam, std::vector<float>& beam_bins)
const;
276 Sonar getBeam(
unsigned int beam)
const;
283 explicit Sonar(SonarScan
const& old,
float gain = 1);
285 explicit Sonar(SonarBeam
const& old,
float gain = 1);
Definition: SonarScan.hpp:14
#define BASE_TYPES_DEPRECATED_SUPPRESS_STOP
Definition: Deprecated.hpp:22
Definition: LinearAngular6DCommand.hpp:8
#define BASE_TYPES_DEPRECATED_SUPPRESS_START
Definition: Deprecated.hpp:14
Definition: SonarBeam.hpp:10