Skip to content

Commit 137802a

Browse files
committed
🎉 feat: boiler plate
1 parent 2cee34d commit 137802a

File tree

4 files changed

+89
-34
lines changed

4 files changed

+89
-34
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class GripperFeedback:
2+
pass
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env python3
2+
# ROS2 Libraries
3+
import rclpy
4+
from rclpy.node import Node
5+
from rclpy.logging import get_logger
6+
from std_msgs.msg import Float32MultiArray
7+
8+
# Custom Libraries
9+
import internal_status_auv.gripper_feedback_lib
10+
11+
12+
class GripperFeedbackPublisher(Node):
13+
def __init__(self):
14+
# Gripper feedback sensor setup ----------
15+
self.GripperFeedback = (
16+
internal_status_auv.gripper_feedback_lib.GripperFeedback()
17+
)
18+
19+
# Node setup ----------
20+
super().__init__("gripper_feedback_publisher")
21+
22+
# Create publishers ----------
23+
# Shoulder, wrist, grip
24+
self.gripper_feedback_publisher = self.create_publisher(
25+
Float32MultiArray, "/auv/gripper_feedback", 5
26+
)
27+
28+
29+
def main(args=None):
30+
rclpy.init(args=args)
31+
32+
gripper_feedback_publisher = GripperFeedbackPublisher()
33+
34+
rclpy.spin(gripper_feedback_publisher)
35+
36+
gripper_feedback_publisher.destroy_node()
37+
rclpy.shutdown()

mission/internal_status_auv/internal_status_auv/pressure_sensor_node.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,48 @@ class PressurePublisher(Node):
1313

1414
def __init__(self):
1515
# Pressure sensor setup ----------
16-
self.Pressure = internal_status_auv.pressure_sensor_lib.PressureSensor(
17-
)
16+
self.Pressure = internal_status_auv.pressure_sensor_lib.PressureSensor()
1817

1918
# Node setup ----------
20-
super().__init__('pressure_sensor_publisher')
19+
super().__init__("pressure_sensor_publisher")
2120

2221
# Create publishers ----------
23-
self.publisher_pressure = self.create_publisher(
24-
Float32, '/auv/pressure', 5)
22+
self.publisher_pressure = self.create_publisher(Float32, "/auv/pressure", 5)
2523

2624
# Data gathering cycle ----------
2725
self.pressure = 0.0
2826

2927
self.declare_parameter(
3028
"internal_status.pressure_read_rate", 1.0
3129
) # Providing a default value 1.0 => 1 second delay per data gathering
32-
read_rate = self.get_parameter("internal_status.pressure_read_rate"
33-
).get_parameter_value().double_value
30+
read_rate = (
31+
self.get_parameter("internal_status.pressure_read_rate")
32+
.get_parameter_value()
33+
.double_value
34+
)
3435
timer_period = 1.0 / read_rate
3536
self.timer = self.create_timer(timer_period, self.timer_callback)
3637

3738
# Watchdog for anomalies ----------
3839
self.logger = get_logger("pressure_sensor")
3940

40-
self.declare_parameter("internal_status.pressure_critical_level",
41-
1000.0)
42-
self.pressureCriticalLevel = self.get_parameter(
43-
"internal_status.pressure_critical_level").get_parameter_value(
44-
).double_value
41+
self.declare_parameter("internal_status.pressure_critical_level", 1000.0)
42+
self.pressureCriticalLevel = (
43+
self.get_parameter("internal_status.pressure_critical_level")
44+
.get_parameter_value()
45+
.double_value
46+
)
4547

4648
self.declare_parameter("internal_status.pressure_warning_rate", 0.1)
47-
warning_rate = self.get_parameter(
48-
"internal_status.pressure_warning_rate").get_parameter_value(
49-
).double_value
49+
warning_rate = (
50+
self.get_parameter("internal_status.pressure_warning_rate")
51+
.get_parameter_value()
52+
.double_value
53+
)
5054
warning_timer_period = 1.0 / warning_rate
51-
self.warning_timer = self.create_timer(warning_timer_period,
52-
self.warning_timer_callback)
55+
self.warning_timer = self.create_timer(
56+
warning_timer_period, self.warning_timer_callback
57+
)
5358

5459
# Debuging ----------
5560
self.get_logger().info('"pressure_sensor_publisher" has been started')
@@ -65,7 +70,7 @@ def timer_callback(self):
6570

6671
def warning_timer_callback(self):
6772
# Check if Pressure is abnormaly to high, if so print a warning
68-
if (self.pressure > self.pressureCriticalLevel):
73+
if self.pressure > self.pressureCriticalLevel:
6974
self.logger.fatal(
7075
f"WARNING: Internal pressure to HIGH: {self.pressure} hPa! Drone might be LEAKING!"
7176
)
@@ -85,5 +90,5 @@ def main(args=None):
8590
rclpy.shutdown()
8691

8792

88-
if __name__ == '__main__':
93+
if __name__ == "__main__":
8994
main()

mission/internal_status_auv/launch/internal_status_auv.launch.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,47 @@ def generate_launch_description():
1010
get_package_share_directory("internal_status_auv"),
1111
"../../../../", # Navigate to the workspace root
1212
"src/vortex-auv/auv_setup/config/robots/", # Directory containing YAML files
13-
'orca.yaml' # Configuration file for the orca robot
13+
"orca.yaml", # Configuration file for the orca robot
1414
)
1515

1616
# Power Sense Module Node
1717
power_sense_module_node = Node(
18-
package='internal_status_auv',
19-
executable='power_sense_module_node.py',
20-
output='screen',
18+
package="internal_status_auv",
19+
executable="power_sense_module_node.py",
20+
output="screen",
2121
parameters=[yaml_file_path],
2222
)
2323

2424
# Pressure Sensor Node
2525
pressure_sensor_node = Node(
26-
package='internal_status_auv',
27-
executable='pressure_sensor_node.py',
28-
output='screen',
26+
package="internal_status_auv",
27+
executable="pressure_sensor_node.py",
28+
output="screen",
2929
parameters=[yaml_file_path],
3030
)
3131

3232
# Temperature Sensor Node
3333
temperature_sensor_node = Node(
34-
package='internal_status_auv',
35-
executable='temperature_sensor_node.py',
36-
output='screen',
34+
package="internal_status_auv",
35+
executable="temperature_sensor_node.py",
36+
output="screen",
37+
parameters=[yaml_file_path],
38+
)
39+
40+
# Gripper feedback Node
41+
gripper_feedback_node = Node(
42+
package="internal_status_auv",
43+
executable="gripper_feedback_node.py",
44+
output="screen",
3745
parameters=[yaml_file_path],
3846
)
3947

4048
# Launch Nodes
41-
return LaunchDescription([
42-
power_sense_module_node,
43-
pressure_sensor_node,
44-
temperature_sensor_node,
45-
])
49+
return LaunchDescription(
50+
[
51+
power_sense_module_node,
52+
pressure_sensor_node,
53+
temperature_sensor_node,
54+
gripper_feedback_node,
55+
]
56+
)

0 commit comments

Comments
 (0)