Skip to content

Commit 85d70bc

Browse files
f/690 - Fixes
1 parent ba78cbf commit 85d70bc

File tree

10 files changed

+125
-131
lines changed

10 files changed

+125
-131
lines changed
Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,36 @@
11
cmake_minimum_required(VERSION 3.8)
2-
project(wika_pressure_sensor)
2+
project(pressure_sensor)
33

44
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
55
add_compile_options(-Wall -Wextra -Wpedantic)
66
endif()
77

88
find_package(ament_cmake REQUIRED)
99
find_package(rclcpp REQUIRED)
10-
find_package(sensor_msgs REQUIRED)
1110
find_package(std_msgs REQUIRED)
1211

13-
include_directories(
14-
include/
15-
)
12+
include_directories(include)
1613

17-
add_executable(wika_sensor_node
18-
src/wika_sensor_node.cpp
14+
add_executable(${PROJECT_NAME}
15+
src/pressure_sensor_impl.cpp
16+
src/pressure_sensor.cpp
1917
)
2018

21-
ament_target_dependencies(wika_sensor_node
22-
rclcpp
23-
sensor_msgs
19+
ament_target_dependencies(${PROJECT_NAME}
20+
rclcpp
2421
std_msgs
2522
)
2623

27-
install(TARGETS
28-
wika_sensor_node
24+
install(TARGETS ${PROJECT_NAME}
2925
DESTINATION lib/${PROJECT_NAME}
3026
)
3127

32-
install(
33-
DIRECTORY include/
28+
install(DIRECTORY include/
3429
DESTINATION include/
3530
)
3631

37-
install(
38-
DIRECTORY launch/
39-
DESTINATION share/${PROJECT_NAME}/launch
32+
install(DIRECTORY launch/
33+
DESTINATION share/${PROJECT_NAME}/
4034
)
4135

4236
if(BUILD_TESTING)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pressure_sensor_impl:
2+
ros__parameters:
3+
dump_param: 1.0 # FIXME remove in the future
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#pragma once
2+
3+
#include <rclcpp/rclcpp.hpp>
4+
#include <std_msgs/msg/float64.hpp>
5+
#include <std_msgs/msg/string.hpp>
6+
7+
#define DEFAULT_DUMP_PARAM 1.0
8+
9+
namespace stingray_core::pressure_sensor {
10+
11+
class PressureSensorNode {
12+
public:
13+
explicit PressureSensorNode(
14+
rclcpp::NodeOptions options = rclcpp::NodeOptions());
15+
16+
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr
17+
get_node_base_interface() {
18+
return node_->get_node_base_interface();
19+
}
20+
21+
rclcpp::Logger get_logger() const { return node_->get_logger(); }
22+
23+
private:
24+
void data_raw_callback(const std_msgs::msg::String::ConstSharedPtr& msg);
25+
void publish_depth(const double depth);
26+
27+
std::shared_ptr<rclcpp::Node> node_;
28+
29+
double dump_param_;
30+
31+
rclcpp::Publisher<std_msgs::msg::Float64>::SharedPtr depth_pub_;
32+
rclcpp::Subscription<std_msgs::msg::String>::SharedPtr data_raw_sub_;
33+
};
34+
35+
} // namespace stingray_core::pressure_sensor
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from launch import LaunchDescription
2+
from launch_ros.actions import Node
3+
from ament_index_python.packages import get_package_share_directory
4+
5+
import os
6+
7+
PRESSURE_SENSOR_PACKAGE = 'pressure_sensor'
8+
PRESSURE_SENSOR_NODE_NAME = 'pressure_sensor_impl'
9+
PRESSURE_SENSOR_NAMESPACE = 'stingray_core/pressure_sensor'
10+
11+
12+
def generate_launch_description():
13+
package_dir = get_package_share_directory(PRESSURE_SENSOR_PACKAGE)
14+
config_file = os.path.join(
15+
package_dir, 'config', 'pressure_sensor_params.yaml')
16+
17+
return LaunchDescription([
18+
Node(
19+
package=PRESSURE_SENSOR_PACKAGE,
20+
executable=PRESSURE_SENSOR_NODE_NAME,
21+
name=PRESSURE_SENSOR_NODE_NAME,
22+
output='screen',
23+
namespace=PRESSURE_SENSOR_NAMESPACE,
24+
parameters=[config_file],
25+
emulate_tty=True,
26+
)
27+
])
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
<?xml version="1.0"?>
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
4-
<name>wika_pressure_sensor</name>
4+
<name>pressure_sensor</name>
55
<version>1.0.0</version>
6-
<description>WIKA pressure sensor data parser node</description>
7-
<maintainer email="p.v.elesin@gmail.com">waspishraccoon</maintainer>
8-
<license>TODO: License declaration</license>
6+
<description>Pressure sensor data parser node</description>
7+
<maintainer email="p.v.elesin@gmail.com">Pavel Elesin</maintainer>
98

109
<buildtool_depend>ament_cmake</buildtool_depend>
1110

1211
<depend>rclcpp</depend>
13-
<depend>sensor_msgs</depend>
1412
<depend>std_msgs</depend>
1513

1614
<exec_depend>launch</exec_depend>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include <pressure_sensor/pressure_sensor_node.hpp>
2+
#include <rclcpp/rclcpp.hpp>
3+
4+
int main(int argc, char** argv) {
5+
rclcpp::init(argc, argv);
6+
auto sensor_node =
7+
std::make_shared<stingray_core::pressure_sensor::PressureSensorNode>();
8+
rclcpp::spin(sensor_node->get_node_base_interface());
9+
rclcpp::shutdown();
10+
return 0;
11+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <pressure_sensor/pressure_sensor_impl.hpp>
2+
#include <rclcpp/rclcpp.hpp>
3+
4+
namespace stingray_core::pressure_sensor {
5+
6+
PressureSensorNode::PressureSensorNode(rclcpp::NodeOptions options)
7+
: node_(rclcpp::Node::make_shared("pressure_sensor_impl",
8+
std::move(options))),
9+
depth_pub_(node_->create_publisher<std_msgs::msg::Float64>("depth", 10)),
10+
data_raw_sub_(node_->create_subscription<std_msgs::msg::String>(
11+
"/stingray_core/depth_link_node/data_raw", 10,
12+
[this](const std_msgs::msg::String::SharedPtr& msg) {
13+
this->data_raw_callback(msg)
14+
})) {
15+
node_->declare_parameter<double>("dump_param", DEFAULT_DUMP_PARAM);
16+
17+
dump_param_ = node_->get_parameter("dump_param").as_double();
18+
19+
RCLCPP_INFO(node_->get_logger(), "Pressure sensor node initialized");
20+
RCLCPP_INFO(node_->get_logger(), "dump_param: %.3f", dump_param_);
21+
}
22+
23+
void PressureSensorNode::data_raw_callback(
24+
const std_msgs::msg::String::ConstSharedPtr& msg) {
25+
const double depth = std::stod(msg->data) * dump_param_;
26+
publish_depth(depth);
27+
}
28+
29+
void PressureSensorNode::publish_depth(const double depth) {
30+
const auto depth_msg = std_msgs::msg::Float64::build().data(depth);
31+
depth_pub_->publish(depth_msg);
32+
RCLCPP_DEBUG(node_->get_logger(), "Published depth: %.3f m", depth);
33+
}
34+
35+
} // namespace stingray_core::pressure_sensor

src/wika_pressure_sensor/include/wika_pressure_sensor/wika_sensor_node.hpp

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/wika_pressure_sensor/launch/wika_pressure_sensor.launch.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/wika_pressure_sensor/src/wika_sensor_node.cpp

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)