6#ifndef _USE_MATH_DEFINES
7#define _USE_MATH_DEFINES
21using namespace std::chrono_literals;
62 std::lock_guard<std::mutex>
data_guard(m_mutex);
64 if (m_data_valid==
false)
66 m_minAngle = msg->angle_min;
67 m_maxAngle = msg->angle_max;
68 m_minDistance = msg->range_min;
69 m_maxDistance = msg->range_max;
70 m_resolution = msg->angle_increment;
71 m_data.
resize(msg->ranges.size());
74 if (msg->ranges.size() == m_data.
size())
76 for (
size_t i=0; i<m_data.
size(); i++)
78 m_data[i] = msg->ranges[i];
85 m_timestamp = (msg->header.stamp.sec + (msg->header.stamp.nanosec / 1000000000));
90 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
91 std::lock_guard<std::mutex>
data_guard(m_mutex);
92 *timestamp = m_timestamp;
98 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
99 std::lock_guard<std::mutex>
data_guard(m_mutex);
101 *timestamp = m_timestamp;
107 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
108 std::lock_guard<std::mutex>
data_guard(m_mutex);
114 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
115 std::lock_guard<std::mutex>
data_guard(m_mutex);
123 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
124 std::lock_guard<std::mutex>
data_guard(m_mutex);
131 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
132 std::lock_guard<std::mutex>
data_guard(m_mutex);
140 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
141 std::lock_guard<std::mutex>
data_guard(m_mutex);
148 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
149 std::lock_guard<std::mutex>
data_guard(m_mutex);
156 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
157 std::lock_guard<std::mutex>
data_guard(m_mutex);
164 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
165 std::lock_guard<std::mutex>
data_guard(m_mutex);
171 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
172 std::lock_guard<std::mutex>
data_guard(m_mutex);
179 if (!m_data_valid) {
return ReturnValue::return_code::return_value_error_generic;}
180 std::lock_guard<std::mutex>
data_guard(m_mutex);
const yarp::os::LogComponent & RANGEFINDER2D_NWC_ROS2()
#define YARP_METHOD_NOT_YET_IMPLEMENTED()
static rclcpp::Node::SharedPtr createNode(std::string name)
bool parseParams(const yarp::os::Searchable &config) override
Parse the DeviceDriver parameters.
yarp::dev::ReturnValue setHorizontalResolution(double step) override
get the angular step between two measurements (if available)
yarp::dev::ReturnValue getScanRate(double &rate) override
get the scan rate (scans per seconds)
bool close() override
Close the DeviceDriver.
yarp::dev::ReturnValue setScanRate(double rate) override
set the scan rate (scans per seconds)
void callback(sensor_msgs::msg::LaserScan::SharedPtr msg, std::string topic)
yarp::dev::ReturnValue getRawData(yarp::sig::Vector &data, double *timestamp=nullptr) override
Get the device measurements.
yarp::dev::ReturnValue setScanLimits(double min, double max) override
set the scan angular range.
yarp::dev::ReturnValue getScanLimits(double &min, double &max) override
get the scan angular range.
yarp::dev::ReturnValue getDeviceStatus(Device_status &status) override
get the device status
yarp::dev::ReturnValue getHorizontalResolution(double &step) override
get the angular step between two measurements.
yarp::dev::ReturnValue getLaserMeasurement(std::vector< yarp::sig::LaserMeasurementData > &data, double *timestamp=nullptr) override
Get the device measurements.
yarp::dev::ReturnValue setDistanceRange(double min, double max) override
set the device detection range.
bool open(yarp::os::Searchable &config) override
Open the DeviceDriver.
yarp::dev::ReturnValue getDistanceRange(double &min, double &max) override
get the device detection range
yarp::dev::ReturnValue getDeviceInfo(std::string &device_info) override
get the device hardware characteristics
void subscribe_to_topic(std::string topic_name)
A mini-server for performing network communication in the background.
A base class for nested structures that can be searched.
bool start()
Start the new thread running.
void resize(size_t size) override
Resize the vector.
#define yCInfo(component,...)
#define yCError(component,...)
#define yCTrace(component,...)
#define YARP_LOG_COMPONENT(name,...)
For streams capable of holding different kinds of content, check what they actually have.
An interface to the operating system, including Port based communication.