本地构建工程目录及配置文件
通过本地构建工程目录,用户构建完整的机器人描述包(如abc_description)、规划配置包(如abc_config)、夹爪控制包(如abc_gripper_controller)及必要的配置文件,以支持后续的轨迹生成任务和模型评测。
在本地构建工程目录及配置文件
- 进入https://github.com/huaweicloud-samples/cloudrobo-samples下载custom-robot工程,custom-robot工程中的robot_ur5e包含一款示例单臂机器人的全部配置文件,您可查看custom-robot的README.md了解各文件的功能。
- 初始化工程。
假定您的机器人命名为“abc”,在本地环境进入custom_robot目录下执行python .\scripts\init_project.py abc,即会生成一个初始化的自定义机器人工程robot_abc,初始化工程中很多内容需要您补充,可参考文档解释和ur5e机器人的样例robot_ur5e。此处把scripts复制放到robot_abc下,方便后续进入开发环境执行脚本,目录结构如下图所示。
图1 目录结构
- 进入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
- 书写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" //此处是带躯干的双臂机器人 ] }
- 如果是单臂,可仿照如下:
- 在本地初始化工程后,上传该工程到OBS(必须是绑定了工作空间OBS地址下的子路径)。本地工程建议使用OBS Browser+上传更方便,如下图所示。 图2 OBS Browser+
图3 通过OBS Browser+上传工程