Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,24 @@
# limitations under the License.

from launch import LaunchDescription
from launch.substitutions import PathJoinSubstitution
from launch.substitutions import PathSubstitution
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare


def generate_launch_description():

position_goals = PathJoinSubstitution(
[
FindPackageShare("ros2_control_demo_example_1"),
"config",
"rrbot_forward_position_publisher.yaml",
]
)

return LaunchDescription(
[
Node(
package="ros2_controllers_test_nodes",
executable="publisher_forward_position_controller",
name="publisher_forward_position_controller",
parameters=[position_goals],
parameters=[
PathSubstitution(FindPackageShare("ros2_control_demo_example_1"))
/ "config"
/ "rrbot_forward_position_publisher.yaml"
],
output="both",
)
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,24 @@
# limitations under the License.

from launch import LaunchDescription
from launch.substitutions import PathJoinSubstitution
from launch.substitutions import PathSubstitution
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare


def generate_launch_description():

position_goals = PathJoinSubstitution(
[
FindPackageShare("ros2_control_demo_example_1"),
"config",
"rrbot_joint_trajectory_publisher.yaml",
]
)

return LaunchDescription(
[
Node(
package="ros2_controllers_test_nodes",
executable="publisher_joint_trajectory_controller",
name="publisher_joint_trajectory_controller",
parameters=[position_goals],
parameters=[
PathSubstitution(FindPackageShare("ros2_control_demo_example_1"))
/ "config"
/ "rrbot_joint_trajectory_publisher.yaml"
],
output="both",
)
]
Expand Down
154 changes: 70 additions & 84 deletions example_1/description/launch/view_robot.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,97 +15,83 @@
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.conditions import IfCondition
from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution
from launch.substitutions import Command, LaunchConfiguration, PathSubstitution

from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare


def generate_launch_description():
# Declare arguments
declared_arguments = []
declared_arguments.append(
DeclareLaunchArgument(
"description_package",
default_value="ros2_control_demo_description",
description="Description package with robot URDF/xacro files. Usually the argument \
is not set, it enables use of a custom description.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"description_file",
default_value="rrbot.urdf.xacro",
description="URDF/XACRO description file with the robot.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"gui",
default_value="true",
description="Start Rviz2 and Joint State Publisher gui automatically \
with this launch file.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"prefix",
default_value='""',
description="Prefix of the joint names, useful for \
multi-robot setup. If changed than also joint names in the controllers' configuration \
have to be updated.",
)
)

# Initialize Arguments
description_package = LaunchConfiguration("description_package")
description_file = LaunchConfiguration("description_file")
gui = LaunchConfiguration("gui")
prefix = LaunchConfiguration("prefix")

# Get URDF via xacro
robot_description_content = Command(
return LaunchDescription(
[
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
[FindPackageShare("ros2_control_demo_example_1"), "urdf", description_file]
DeclareLaunchArgument(
"description_package",
default_value="ros2_control_demo_description",
description=(
"Description package with robot URDF/xacro files. Usually the argument "
"is not set, it enables use of a custom description."
),
),
DeclareLaunchArgument(
"description_file",
default_value="rrbot.urdf.xacro",
description="URDF/XACRO description file with the robot.",
),
DeclareLaunchArgument(
"gui",
default_value="true",
description=(
"Start Rviz2 and Joint State Publisher gui automatically "
"with this launch file."
),
),
DeclareLaunchArgument(
"prefix",
default_value='""',
description=(
"Prefix of the joint names, useful for "
"multi-robot setup. If changed than also joint names in the controllers' configuration "
"have to be updated."
),
),
Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui",
condition=IfCondition(LaunchConfiguration("gui")),
),
Node(
package="robot_state_publisher",
executable="robot_state_publisher",
output="both",
parameters=[
{
"robot_description": Command(
[
"xacro",
" ",
PathSubstitution(FindPackageShare("ros2_control_demo_example_1"))
/ "urdf"
/ LaunchConfiguration("description_file"),
" ",
"prefix:=",
LaunchConfiguration("prefix"),
]
)
}
],
),
Node(
package="rviz2",
executable="rviz2",
name="rviz2",
output="log",
arguments=[
"-d",
PathSubstitution(FindPackageShare(LaunchConfiguration("description_package")))
/ "rrbot/rviz"
/ "rrbot.rviz",
],
condition=IfCondition(LaunchConfiguration("gui")),
),
" ",
"prefix:=",
prefix,
]
)
robot_description = {"robot_description": robot_description_content}

rviz_config_file = PathJoinSubstitution(
[FindPackageShare(description_package), "rrbot/rviz", "rrbot.rviz"]
)

joint_state_publisher_node = Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui",
condition=IfCondition(gui),
)
robot_state_publisher_node = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
output="both",
parameters=[robot_description],
)
rviz_node = Node(
package="rviz2",
executable="rviz2",
name="rviz2",
output="log",
arguments=["-d", rviz_config_file],
condition=IfCondition(gui),
)

nodes = [
joint_state_publisher_node,
robot_state_publisher_node,
rviz_node,
]

return LaunchDescription(declared_arguments + nodes)
Loading
Loading