From b6c467ed52d103bb9b7d596f5e9b217cfb33a7da Mon Sep 17 00:00:00 2001 From: robofob Date: Wed, 8 Jul 2026 21:00:07 +0300 Subject: [PATCH] base gesture --- launch/base_gesture_control.launch.py | 66 +++++++++++++++++++ setup.py | 3 +- .../base_gesture_control_node.py | 17 +++++ 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 launch/base_gesture_control.launch.py create mode 100644 wave_rover_controller/base_gesture_control_node.py diff --git a/launch/base_gesture_control.launch.py b/launch/base_gesture_control.launch.py new file mode 100644 index 0000000..19b9b39 --- /dev/null +++ b/launch/base_gesture_control.launch.py @@ -0,0 +1,66 @@ +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.substitutions import ( + PathJoinSubstitution, + LaunchConfiguration, + TextSubstitution, +) +from launch_ros.substitutions import FindPackageShare +from launch_ros.actions import Node +from launch_ros.descriptions import ParameterFile + +def generate_launch_description(): + pkg_unity_robot_controller = FindPackageShare(package="").find("unity_robot_controller") + + + # Launch arguments + launch_args = [ + DeclareLaunchArgument( + "use_sim_time", + description="Use clock from simulation", + default_value="True", + ), + DeclareLaunchArgument( + "namespace", default_value="sirius_bot", description="Top-level namespace" + ), + ] + + base_gesture_control_node = Node( + package="wave_rover_controller", + executable="base_gesture_control_node", + name="base_gesture_control", + namespace=LaunchConfiguration("namespace"), + output="both", + parameters=[ + {"fire_ext_max_capacity": 5}, + ], + remappings=[ + ('image', '/camera_node/image_raw') + ] + ) + + camera_node = Node( + package='camera_ros', + executable='camera_node', + name='camera_node', + #namespace='camera', + output='screen', + parameters=[{ + # Camera selection index (0 for the first detected libcamera device) + 'camera': 0, + # Image streams configuration + 'width': 640, + 'height': 480, + 'frame_rate': 10.0, + # Available options depend on your camera (e.g., 'sensor', 'video', 'still') + 'role': 'video', + }] + ) + + return LaunchDescription( + launch_args + + [ + base_gesture_control_node, + camera_node + ] + ) diff --git a/setup.py b/setup.py index eef754e..f2655a8 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,8 @@ setup( entry_points={ 'console_scripts': [ 'joy_control_node = wave_rover_controller.joy_control_node:main', - 'wave_rover_node = wave_rover_controller.wave_rover_node:main' + 'wave_rover_node = wave_rover_controller.wave_rover_node:main', + 'base_gesture_control_node = wave_rover_controller.base_gesture_control_node:main' ], }, ) diff --git a/wave_rover_controller/base_gesture_control_node.py b/wave_rover_controller/base_gesture_control_node.py new file mode 100644 index 0000000..92c0837 --- /dev/null +++ b/wave_rover_controller/base_gesture_control_node.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import rclpy +from wave_rover_controller.wave_rover_controller2 import WaveRoverController +from unity_robot_controller.base_gesture_control_node import BaseGestureControlNode + +def main(args=None): + rclpy.init(args=args) + + node = BaseGestureControlNode(WaveRoverController) + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + + +if __name__ == "__main__": + main()