Skip to content

Commit f0ef644

Browse files
committed
Filter ranges grater than max in sf11 driver
1 parent 08972d9 commit f0ef644

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

sf11_driver/src/sf11_driver_node.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,12 @@ class SF11Range {
3838

3939
sensor_msgs::Range get() {
4040
// TODO: Use strength_/voltage_?
41-
data_.header.stamp = ros::Time::now();
42-
data_.range = distance_;
41+
if (distance_ < data_.max_range) {
42+
data_.header.stamp = ros::Time::now();
43+
data_.range = distance_;
44+
} else {
45+
ROS_WARN("Detecteted sf11 glitch!");
46+
}
4347
has_new_data_ = false;
4448
return data_;
4549
}
@@ -97,7 +101,7 @@ int main(int argc, char** argv) {
97101
ros::param::param<std::string>("~frame_id", frame_id, "sf11");
98102
ros::param::param<std::string>("~serial_path", serial_path, "/dev/ttyUSB0");
99103
ros::param::param<int>("~serial_baudrate", serial_baudrate, 115200);
100-
ros::param::param<double>("~publish_rate", publish_rate, 20);
104+
ros::param::param<double>("~publish_rate", publish_rate, 20); // TODO: Deceiving name, should be max_publish_rate!
101105

102106
int serial_port = open(serial_path.c_str(), O_RDWR | O_NOCTTY | O_SYNC);
103107
if (serial_port == -1) {

0 commit comments

Comments
 (0)