diff --git a/humanoid_robot_intelligence_control_system_controller/launch/bellande_controller.launch.py b/humanoid_robot_intelligence_control_system_controller/launch/bellande_controller.launch.py new file mode 100644 index 0000000..17fdc78 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/launch/bellande_controller.launch.py @@ -0,0 +1,83 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import sys +import subprocess +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration + +def ros1_launch_description(): + # Get command-line arguments + args = sys.argv[1:] + + # Construct the ROS 1 launch command + roslaunch_command = ["roslaunch", "humanoid_robot_intelligence_control_system_controller", "bellande_controller.launch"] + args + + roslaunch_command.extend([ + "ros_web_api_bellande_adaptive_continuious_controller", "bellande_controller.py", "name:=bellande_controller_node" + ]) + + roslaunch_command.extend([ + "humanoid_robot_intelligence_control_system_controller", "BellandeController.py", "name:=bellande_controller_class_node" + ]) + + # Execute the launch command + subprocess.call(roslaunch_command) + +def ros2_launch_description(): + nodes_to_launch = [] + + nodes_to_launch.append(Node( + package='ros_web_api_bellande_adaptive_continuious_controller', + executable='bellande_controller.py', + name='bellande_controller_node', + output='screen', + parameters=[{ + 'gains': LaunchConfiguration('gains'), + 'name': LaunchConfiguration('name'), + 'output_limits': LaunchConfiguration('output_limits') + }] + )) + + nodes_to_launch.append(Node( + package='humanoid_robot_intelligence_control_system_controller', + executable='BellandeController.py', + name='bellande_controller_class_node', + output='screen', + parameters=[{ + 'gains': LaunchConfiguration('gains'), + 'name': LaunchConfiguration('name'), + 'output_limits': LaunchConfiguration('output_limits') + }] + )) + + return LaunchDescription([ + DeclareLaunchArgument('gains', default_value='[1.0, 0.1, 0.05]'), + DeclareLaunchArgument('name', default_value='BellandeController'), + DeclareLaunchArgument('output_limits', default_value='[-1000.0, 1000.0]'), + ] + nodes_to_launch) + +if __name__ == "__main__": + ros_version = os.getenv("ROS_VERSION") + if ros_version == "1": + ros1_launch_description() + elif ros_version == "2": + ros2_launch_description() + else: + print("Unsupported ROS version. Please set the ROS_VERSION environment variable to '1' for ROS 1 or '2' for ROS 2.") + sys.exit(1) diff --git a/humanoid_robot_intelligence_control_system_controller/launch/ros1/bellande_controller.launch b/humanoid_robot_intelligence_control_system_controller/launch/ros1/bellande_controller.launch new file mode 100644 index 0000000..5bfe982 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/launch/ros1/bellande_controller.launch @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + +