Skip to content
Snippets Groups Projects
Commit cb849b52 authored by Galambos Mihály's avatar Galambos Mihály
Browse files

Separate simulation and description bringup

parent 8f1dc0ff
No related branches found
No related tags found
No related merge requests found
import os
from launch_ros.actions import Node
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import Command, LaunchConfiguration
from ament_index_python.packages import get_package_share_directory
def generate_launch_description():
# Get package dirs
package_dir = get_package_share_directory('hollander_description')
# Default values
default_model_path = os.path.join(package_dir, 'src/description/rollende_hollander.urdf')
configurable_parameters = [
{'name': 'model', 'default': default_model_path, 'description': 'Absolute path to robot urdf file'},
{'name': 'namespace', 'default': 'hollander', 'description': 'Namespace to avoide conflicts'},
{'name': 'log_level', 'default': 'info', 'description': 'debug log level [DEBUG|INFO|WARN|ERROR|FATAL]'},
]
def declare_configurable_parameters(parameters):
return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters]
""" NODES """
robot_state_publisher_node = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
namespace=LaunchConfiguration("namespace"),
parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}],
arguments=['--ros-args', '--log-level', LaunchConfiguration('log_level')],
emulate_tty=True,
)
joint_state_publisher_node = Node(
package='joint_state_publisher',
executable='joint_state_publisher',
name='joint_state_publisher',
namespace=LaunchConfiguration("namespace"),
arguments=['--ros-args', '--log-level', LaunchConfiguration('log_level')],
emulate_tty=True,
)
return LaunchDescription(declare_configurable_parameters(configurable_parameters) + [
robot_state_publisher_node,
joint_state_publisher_node,
])
\ No newline at end of file
import os import os
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, ExecuteProcess
from launch_ros.actions import Node from launch_ros.actions import Node
from launch.substitutions import Command, LaunchConfiguration from launch import LaunchDescription
from launch.conditions import IfCondition
from launch.substitutions import LaunchConfiguration
from launch.actions import DeclareLaunchArgument, ExecuteProcess, IncludeLaunchDescription
from ament_index_python.packages import get_package_share_directory from ament_index_python.packages import get_package_share_directory
from launch.launch_description_sources import PythonLaunchDescriptionSource
def generate_launch_description(): def generate_launch_description():
# Get package dirs # Get package dirs
launch_dir = get_package_share_directory('hollander_bringup') launch_dir = get_package_share_directory('hollander_bringup')
package_dir = get_package_share_directory('hollander_description')
# Default values # Default values
default_model_path = os.path.join(package_dir, 'src/description/rollende_hollander.urdf')
default_rviz_config_path = os.path.join(launch_dir, 'rviz/urdf_config.rviz') default_rviz_config_path = os.path.join(launch_dir, 'rviz/urdf_config.rviz')
# Parameters # Parameters
configurable_parameters = [ configurable_parameters = [
{'name': 'model', 'default': default_model_path, 'description': 'Absolute path to robot urdf file'},
{'name': 'need_rviz', 'default': 'False', 'description': 'Whether launch or not rviz'}, {'name': 'need_rviz', 'default': 'False', 'description': 'Whether launch or not rviz'},
{'name': 'rvizconfig', 'default': default_rviz_config_path, 'description': 'Absolute path to rviz config file'}, {'name': 'rvizconfig', 'default': default_rviz_config_path, 'description': 'Absolute path to rviz config file'},
{'name': 'use_sim_time', 'default': 'True', 'description': 'Flag to enable use_sim_time'}, {'name': 'use_sim_time', 'default': 'True', 'description': 'Flag to enable use_sim_time'},
...@@ -28,19 +27,12 @@ def generate_launch_description(): ...@@ -28,19 +27,12 @@ def generate_launch_description():
def declare_configurable_parameters(parameters): def declare_configurable_parameters(parameters):
return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters] return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters]
""" NODES """ description = IncludeLaunchDescription(
robot_state_publisher_node = Node( PythonLaunchDescriptionSource(os.path.join(get_package_share_directory('hollander_bringup'), 'launch', 'description.launch.py')),
package='robot_state_publisher', condition=IfCondition(LaunchConfiguration('need_description'))
executable='robot_state_publisher',
parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}]
)
joint_state_publisher_node = Node(
package='joint_state_publisher',
executable='joint_state_publisher',
name='joint_state_publisher',
) )
""" NODES """
rviz_node = Node( rviz_node = Node(
package='rviz2', package='rviz2',
executable='rviz2', executable='rviz2',
...@@ -56,21 +48,12 @@ def generate_launch_description(): ...@@ -56,21 +48,12 @@ def generate_launch_description():
output='screen' output='screen'
) )
robot_localization_node = Node(
package='robot_localization',
executable='ekf_node',
name='ekf_filter_node',
output='screen',
parameters=[os.path.join(launch_dir, 'config/simulation.ekf.yaml'), {'use_sim_time': LaunchConfiguration('use_sim_time')}]
)
return LaunchDescription(declare_configurable_parameters(configurable_parameters) + [ return LaunchDescription(declare_configurable_parameters(configurable_parameters) + [
ExecuteProcess(cmd=['gazebo', '--verbose', '-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so'], output='screen'), ExecuteProcess(cmd=['gazebo', '--verbose', '-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so'], output='screen'),
robot_state_publisher_node, description,
joint_state_publisher_node,
spawn_entity, spawn_entity,
robot_localization_node,
rviz_node, rviz_node,
]) ])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment