We should use this as template, not just add to demo.launch.py.
def generate_demo_launch(moveit_config):
"""
Launches a self contained demo
Includes
* static_virtual_joint_tfs
* robot_state_publisher
* move_group
* moveit_rviz
* warehouse_db (optional)
* ros2_control_node + controller spawners
"""
ld = LaunchDescription()
ld.add_action(
DeclareBooleanLaunchArg(
"db",
default_value=False,
description="By default, we do not start a database (it can be large)",
)
)
ld.add_action(
DeclareBooleanLaunchArg(
"debug",
default_value=False,
description="By default, we are not in debug mode",
)
)
ld.add_action(DeclareBooleanLaunchArg("use_rviz", default_value=True))
# If there are virtual joints, broadcast static tf by including virtual_joints launch
virtual_joints_launch = (
moveit_config.package_path / "launch/static_virtual_joint_tfs.launch.py"
)
if virtual_joints_launch.exists():
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(str(virtual_joints_launch)),
)
)
# Given the published joint states, publish tf for the robot links
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(
str(moveit_config.package_path / "launch/rsp.launch.py")
),
)
)
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(
str(moveit_config.package_path / "launch/move_group.launch.py")
),
)
)
# Run Rviz and load the default config to see the state of the move_group node
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(
str(moveit_config.package_path / "launch/moveit_rviz.launch.py")
),
condition=IfCondition(LaunchConfiguration("use_rviz")),
)
)
# If database loading was enabled, start mongodb as well
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(
str(moveit_config.package_path / "launch/warehouse_db.launch.py")
),
condition=IfCondition(LaunchConfiguration("db")),
)
)
# Fake joint driver
ld.add_action(
Node(
package="controller_manager",
executable="ros2_control_node",
parameters=[
moveit_config.robot_description,
str(moveit_config.package_path / "config/ros2_controllers.yaml"),
],
)
)
ld.add_action(
IncludeLaunchDescription(
PythonLaunchDescriptionSource(
str(moveit_config.package_path / "launch/spawn_controllers.launch.py")
),
)
)
return ld