123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- from pathlib import Path
- from launch import LaunchDescription
- from launch.actions import DeclareLaunchArgument, OpaqueFunction
- from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
- from launch.conditions import IfCondition, UnlessCondition
- from launch_ros.actions import Node
- from launch_ros.substitutions import FindPackageShare
- from launch.actions import ExecuteProcess
- from ament_index_python.packages import get_package_share_directory
- from moveit_configs_utils import MoveItConfigsBuilder
- from launch_ros.actions import ComposableNodeContainer
- from launch_ros.descriptions import ComposableNode
- def generate_launch_description():
- declared_arguments = []
- return LaunchDescription(
- declared_arguments + [OpaqueFunction(function=launch_setup)]
- )
- def launch_setup(context, *args, **kwargs):
- current_file_path = Path(__file__).resolve()
- current_directory = str(current_file_path.parent)
- use_sim_time = { "use_sim_time": True}
- moveit_config = (
- MoveItConfigsBuilder("moveit_resources_panda")
- .robot_description(file_path="config/panda.urdf.xacro")
- .trajectory_execution(file_path="config/gripper_moveit_controllers.yaml")
- .planning_scene_monitor(
- publish_robot_description=True, publish_robot_description_semantic=True
- )
- .planning_pipelines(
- pipelines=["ompl", "chomp", "pilz_industrial_motion_planner"]
- )
- .to_moveit_configs()
- )
- # Start the actual move_group node/action server
- run_move_group_node = Node(
- package="moveit_ros_move_group",
- executable="move_group",
- output="screen",
- parameters=[moveit_config.to_dict() | use_sim_time],
- )
- rviz_base = LaunchConfiguration("rviz_config")
- rviz_config = PathJoinSubstitution(
- [current_directory, "panda_moveit_config_demo.rviz"]
- )
- # RViz
- rviz_node = Node(
- package="rviz2",
- executable="rviz2",
- name="rviz2",
- output="log",
- arguments=["-d", rviz_config],
- parameters=[
- moveit_config.robot_description,
- moveit_config.robot_description_semantic,
- moveit_config.robot_description_kinematics,
- moveit_config.planning_pipelines,
- moveit_config.joint_limits,
- ],
- )
- # Static TF
- static_tf = Node(
- package="tf2_ros",
- executable="static_transform_publisher",
- name="static_transform_publisher",
- output="log",
- arguments=["0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "world", "panda_link0"],
- )
- rgbd_pc = ComposableNodeContainer(
- name='container0',
- namespace='',
- package='rclcpp_components',
- executable='component_container',
- composable_node_descriptions=[
- ComposableNode(
- package='depth_image_proc',
- plugin='depth_image_proc::PointCloudXyzrgbNode',
- name='point_cloud_xyzrgb_node',
- remappings=[('rgb/camera_info', '/color_camera_info'),
- ('rgb/image_rect_color', '/camera_image_color'),
- ('depth_registered/image_rect','/camera_image_depth'),
- ('/points','/pointcloud')]
- ),
- ],
- output='screen',
- parameters=[{'use_sim_time': True}],
- )
-
- # Publish TF
- robot_state_publisher = Node(
- package="robot_state_publisher",
- executable="robot_state_publisher",
- name="robot_state_publisher",
- output="both",
- parameters=[moveit_config.robot_description],
- )
-
- nodes_to_start = [
- rviz_node,
- static_tf,
- robot_state_publisher,
- run_move_group_node,
- rgbd_pc,
- ]
- return nodes_to_start
|