更新时间:2026-09-24 GMT+08:00
分享

本地构建工程目录及配置文件

通过本地构建工程目录,用户构建完整的机器人描述包(如abc_description)、规划配置包(如abc_config)、夹爪控制包(如abc_gripper_controller)及必要的配置文件,以支持后续的轨迹生成任务和模型评测。

在本地构建工程目录及配置文件

  1. 进入https://github.com/huaweicloud-samples/cloudrobo-samples下载custom-robot工程,custom-robot工程中的robot_ur5e包含一款示例单臂机器人的全部配置文件,您可查看custom-robot的README.md了解各文件的功能。
  2. 初始化工程。

    假定您的机器人命名为“abc”,在本地环境进入custom_robot目录下执行python .\scripts\init_project.py abc,即会生成一个初始化的自定义机器人工程robot_abc,初始化工程中很多内容需要您补充,可参考文档解释和ur5e机器人的样例robot_ur5e。此处把scripts复制放到robot_abc下,方便后续进入开发环境执行脚本,目录结构如下图所示。

    图1 目录结构

  3. 进入robot_abc/Assets/robots/robot_abc/abc_description,将您的urdf放在robot_abc/Assets/robots/robot_abc/abc_description/urdf文件夹下,确保下面只有一个urdf,并且是abc.urdf这种格式,将您的机器人mesh文件放在robot_abc/Assets/robots/robot_abc/abc_description/meshes文件夹下。

    description是一个ROS2包,用来描述一个机器人的完整模型。它本身不含任何代码逻辑,只是把机器人的“定义文件”打包好,让RViz、O3DE、MoveIt 都能找到。可以将ur5e_description下的launch/display.launch.py和rviz/urdf.rviz放到abc的同级目录下,并且修改名字变成您的机器人如abc。

    可以把robot_abc\Assets\robots\robot_abc\abc_description\CMakeLists.txt下面的config删掉,大多数机器人在description中不需要config文件。

    install(
      DIRECTORY config launch meshes rviz urdf
      DESTINATION share/${PROJECT_NAME}
    )

    以UR5e为例,ur5e_description包的目录结构如下所示:

    ur5e_description/ 
    ├── CMakeLists.txt # 构建配置:告诉 colcon 把哪些目录安装出去 
    ├── package.xml # 包的"信息":包名、依赖、作者 
    ├── urdf/ # 机器人描述文件(核心) 
    │ └── ur5e.urdf 
    ├── meshes/ # 3D 外壳文件(STL 格式) 
    │ ├── base_link.STL 
    │ └── ... 
    ├── launch/ # 启动脚本 
    │ └── display.launch.py 
    └── rviz/ # RViz 配置 
     └── urdf.rviz 

  4. 书写metadata.json。

    • 如果是单臂,可仿照如下:
      { 
       "robot_type": "abc", //此处定义机器人名,务必和init_project.py使用同一个名字 
       "record_topic": [ 
       "/arm_controller/follow_joint_trajectory/_action/feedback", 
       "/arm_position_controller/commands", 
       "/joint_states", 
       "/hand_position_controller/commands", 
       "/hand_gripper_controller" 
       ] 
      } 
    • 如果是双臂,可仿照如下:
      { 
       "robot_type": "abc", //此处定义机器人名,务必和init_project.py使用同一个名字 
       "record_topic":[ 
       "/arm_controller/follow_joint_trajectory/_action/feedback", 
       "/left_arm_position_controller/commands", 
       "/right_arm_position_controller/commands", 
       "/joint_states", 
       "/left_gripper_position_controller/commands", 
       "/left_gripper_controller", 
       "/right_gripper_position_controller/commands" 
       "/right_gripper_controller", 
       "/torso_position_controller/commands" //此处是带躯干的双臂机器人 
       ] 
      } 

  5. 在本地初始化工程后,上传该工程到OBS(必须是绑定了工作空间OBS地址下的子路径)。本地工程建议使用OBS Browser+上传更方便,如下图所示。

    图2 OBS Browser+
    图3 通过OBS Browser+上传工程

相关文档