Skip to content

Commit

Permalink
Fix #133
Browse files Browse the repository at this point in the history
Signed-off-by: Caio Amaral <caioaamaral@gmail.com>
  • Loading branch information
caioaamaral committed Mar 26, 2021
1 parent a4bc25f commit 05fcc87
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
33 changes: 28 additions & 5 deletions ros_ign_gazebo/launch/ign_gazebo.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,51 @@

"""Launch Ignition Gazebo with command line arguments."""

from os import environ
import os

from ament_index_python.packages import get_package_share_directory,
from catkin_pkg.package import parse_package

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.actions import ExecuteProcess
from launch.substitutions import LaunchConfiguration
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
from launch_ros.substitutions import FindPackageShare


def generate_launch_description():
env = {'IGN_GAZEBO_SYSTEM_PLUGIN_PATH':
':'.join([environ.get('IGN_GAZEBO_SYSTEM_PLUGIN_PATH', default=''),
environ.get('LD_LIBRARY_PATH', default='')])}
':'.join([os.environ.get('IGN_GAZEBO_SYSTEM_PLUGIN_PATH', default=''),
os.environ.get('LD_LIBRARY_PATH', default='')])}

return LaunchDescription([
DeclareLaunchArgument('ign_args', default_value='',
description='Arguments to be passed to Ignition Gazebo'),
ExecuteProcess(
cmd=['ign gazebo',
LaunchConfiguration('ign_args'),
__get_ign_args(LaunchConfiguration('ign_args')),
],
output='screen',
additional_env=env,
shell=True
)
])


def __get_ign_args(ign_args):
if '--force_version' not in ign_args:
ign_args += '--force_version {}'.format(__IGN_GAZEBO_DEFAULT_VERSION)

return ign_args


def __get_ign_gazebo_default_version(): # this will fail if the package build was performed with '--merge-install'
this_pkg = parse_package(os.path.join(*[get_package_share_directory('ros_ign_gazebo'), 'package.xml']))
this_pkg.evaluate_conditions(os.environ)
lookup_name = next(dep.name for dep in this_pkg.exec_depends
if dep.evaluated_condition
if 'ignition-gazebo' in dep.name)

return lookup_name.replace('ignition-gazebo', '')

__IGN_GAZEBO_DEFAULT_VERSION=__get_ign_gazebo_default_version()
3 changes: 3 additions & 0 deletions ros_ign_gazebo/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
<depend>rclcpp</depend>
<depend>ignition-math6</depend>

<exec_depend>ament_index_python</exec_depend>
<exec_depend>python3-catkin-pkg-modules</exec_depend>

<!-- Dome -->
<exec_depend condition="$IGNITION_VERSION == dome">ignition-gazebo4</exec_depend>
<depend condition="$IGNITION_VERSION == dome">ignition-msgs6</depend>
Expand Down

0 comments on commit 05fcc87

Please sign in to comment.