MoveIt2_tutorial-Examples-Planning Scene ROS API
先启动move_group节点,后启动任务节点
方式1: 直接传入参数文件的地址
from launch import LaunchDescription # 导入启动描述,用于描述启动文件的结构
from launch_ros.actions import Node # 导入Node,用于定义一个要启动的ROS节点
from moveit_configs_utils import MoveItConfigsBuilder # MoveIt配置工具,用于生成机器人相关的MoveIt配置
from launch.substitutions import PathJoinSubstitution # 用于路径拼接的替代变量
from launch_ros.substitutions import FindPackageShare # 用于找到ROS包共享目录
def generate_launch_description():
# 使用MoveIt配置(可选部分,未启用)
# moveit_config = MoveItConfigsBuilder("dual_ur5_ft_gripper_base", package_name="dual_moveit_config").to_moveit_configs()
# 定义机器人描述文件的路径(未启用)
# robot_description = PathJoinSubstitution(
# [FindPackageShare("dual_moveit_config"), "config", "dual_ur5_ft_gripper_base.fake.urdf"]
# )
# 定义运动学配置的路径,pick_and_place功能中的运动组需要该配置
robot_description_kinematics = PathJoinSubstitution(
[FindPackageShare("dual_description"), "moveit2", "kinematics.yaml"]
)
# 定义关节限制配置的路径,用于规划时的关节限制参数
robot_description_planning_joint_limits = PathJoinSubstitution([
FindPackageShare("dual_description"), "moveit2", "joint_limits.yaml",
]
)
# 定义规划管道配置的路径,用于规划中不同的pipeline设置
planning_pipelines_config = PathJoinSubstitution([
FindPackageShare("dual_description"), "moveit2", "planning_pipelines_config.yaml",
]
)
# OMPL(Open Motion Planning Library)规划配置文件的路径,用于定义OMPL的参数
ompl_planning_config = PathJoinSubstitution([
FindPackageShare("dual_description"), "moveit2", "ompl_planning.yaml",
]
)
# 启动双臂demo节点,使用指定的配置文件
dual_arm_demo = Node(
package="dual_arm_demo", # 双臂demo的包名
executable="dual_arm_demo", # 可执行文件名称
parameters=[{
"use_sim_time":True, # 使用模拟时间
},
# robot_description, # 机器人描述文件路径(未启用)
robot_description_kinematics, # 运动学配置
robot_description_planning_joint_limits, # 关节限制配置
planning_pipelines_config, # 规划管道配置
ompl_planning_config, # OMPL规划配置
],
output='screen' # 输出到屏幕
)
# 返回包含节点的启动描述
return LaunchDescription([dual_arm_demo])
方式2:MoveItConfigsBuilder,第1个参数是机械臂名称,第2个参数是机械臂对应的moveit配置功能包
moveit_config = MoveItConfigsBuilder("dual_ur5_ft_gripper_base", package_name="dual_moveit_config").to_moveit_configs()