第 3.3 节

Launch与包依赖配置

作者:董佳辉

Launch与包依赖配置

修改launch重定向到咱们的模型,主要先看下面的launch:

  • pb2025_nav_bringup里的rm_navigation_reality_launch.py
    • 同功能包下的robot_state_publisher_launch.py
  • rmu_gazebo_simulator里的bringup_sim.launch.py
    • 同功能包下的spawn_robots.launch.py
    • 同功能包下的package.xml
  • robot_description里的robot_description_launch.py

robot_state_publisher_launch.py(机器人关节TF发布入口)

    pkg_pb2025_robot_description_dir = get_package_share_directory(
        "pb2025_robot_description"
    )

    declare_robot_name_cmd = DeclareLaunchArgument(
        "robot_name",
        default_value="pb2025_sentry_robot",
        description="The file name of the robot xmacro to be used",
    )

改成

    pkg_robot_description_dir = get_package_share_directory(
        "robot_description"
    )

    declare_robot_name_cmd = DeclareLaunchArgument(
        "robot_name",
        default_value="reality_robot",
        description="The file name of the robot xmacro to be used",
    )

spawn_robots.launch.py(生成仿真机器人)

    pkg_pb2025_robot_description = get_package_share_directory(
        "pb2025_robot_description"
    )

    robot_xmacro_path = os.path.join(
        pkg_pb2025_robot_description,
        "resource",
        "xmacro",
        "simulation_robot.sdf.xmacro",
    )

改成:

    pkg_robot_description = get_package_share_directory(
        "robot_description"
    )

    robot_xmacro_path = os.path.join(
        pkg_robot_description,
        "resource",
        "xmacro",
        "simulation_robot.sdf.xmacro",
    )

robot_description_launch.py(机器人模型加载入口)

def generate_launch_description():
    # Get the launch directory
    bringup_dir = get_package_share_directory("pb2025_robot_description")

改成

def generate_launch_description():
    # Get the launch directory
    bringup_dir = get_package_share_directory("robot_description")

pb2025_nav_bringup里的package.xml(导航启动包依赖)

这个包的 robot_state_publisher_launch.py 会加载 robot_description,因此补上运行依赖:

<exec_depend>robot_description</exec_depend>

robot_state_publisher_launch.py 的默认入口为 reality_robot;描述包自身的 robot_description_launch.py 默认仍为 simulation_robot。Gazebo 的 spawn_robots.launch.py 继续加载 simulation_robot.sdf.xmacro。

rmu_gazebo_simulator里的package.xml(仿真包依赖)

<depend>pb2025_robot_description</depend>

改成

<depend>robot_description</depend>

测试

rm -rf build install log
colcon build --symlink-install
source install/setup.bash
ros2 launch rmu_gazebo_simulator bringup_sim.launch.py
source install/setup.bash

ros2 launch pb2025_nav_bringup rm_navigation_simulation_launch.py \
  world:=rmuc_2025 \
  slam:=False

测试下Gazebo加载模型还正常不,如果正常则说明没毛病。

至此全部结束。