文章目录
- 前言
- MoveItConfigsBuilder的功能作用
- 机器人resource文件样例
- 总结
前言
在学习moveit2的样例时发现加载机器人配置参数多使用MoveItConfigsBuilder
,它具体的功能和使用方法是什么呢。
这篇博文用来记录说明该函数的使用方法、作用和调用逻辑。
MoveItConfigsBuilder的功能作用
为了方便地从MoveIt配置包加载参数以用于ROS 2 launch,MoveIt提供了MoveItConfigsBuilder
函数,该函数是在moveit_configs_utils
包中。
如下是一个简单的例子,其中用到了moveit_resources_panda
这个名称对应的文件或者说包是moveit_resources_panda_moveit_config
。
from launch import LaunchDescription
from launch_ros.actions import Node
from moveit_configs_utils import MoveItConfigsBuilder
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("moveit_resources_panda").to_moveit_configs()
tutorial_node = Node(
package="moveit2_tutorials",
executable="robot_model_and_robot_state_tutorial",
output="screen",
parameters=[
moveit_config.robot_description,
moveit_config.robot_description_semantic,
moveit_config.robot_description_kinematics,
],
)
return LaunchDescription([tutorial_node])
我们可以将一些解析后机器人的配置参数传给Node
去运行。如:
tutorial_node = Node(
package="moveit2_tutorials",
executable="robot_model_and_robot_state_tutorial",
output="screen",
parameters=[
moveit_config.robot_description,
moveit_config.robot_description_semantic,
moveit_config.robot_description_kinematics,
],
)
或者手动设置加载的目标文件:
from moveit_configs_utils import MoveItConfigsBuilder
moveit_config = (
MoveItConfigsBuilder("moveit_resources_panda")
.robot_description(file_path="config/panda.urdf.xacro")
.robot_description_kinematics(file_path="config/kinematics.yaml")
.planning_pipelines(
pipelines=["ompl", "pilz_industrial_motion_planner"],
default_planning_pipeline="pilz_industrial_motion_planner",
)
.to_moveit_configs()
)
机器人resource文件样例
下边是panda和fanuc两款机器人的resource文件结构:
fanuc机械手:
panda 机械手:
总结
希望能给大家对于MoveItConfigsBuilder
的理解一些帮助。