chore: 框架科学优化前的完整基线

在开始'设备契约层 + 目录重构 + 通止规装配'改造之前,先钉住当前可运行状态,
使后续任何删除/重构都可回退。

本基线包含:
- 现有 ROS 2 工作区全部源码(arm_application / arm_control / arm_bringup 等)
- 官方 flexiv_ros2 栈(含 flexiv_hardware / flexiv_controllers 等符号链接)
- 设备契约层 src/arm_interfaces(新增,46 项单测通过)
- devices/ 设备选型与品牌清单(新增)
- scripts/gen_site_example.py 与由它生成的 config/site.example.yaml

按 .gitignore 排除:build/ / install/ / log/ / config/site.yaml / 模型权重二进制。
This commit is contained in:
arm_dev
2026-09-23 10:53:06 +08:00
commit 6edb8d39ab
635 changed files with 1165230 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
from setuptools import find_packages, setup
import os
from glob import glob
package_name = 'arm_application'
def _data_files():
entries = [
('share/ament_index/resource_index/packages', ['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
(os.path.join('share', package_name, 'launch'), glob('launch/*.py')),
(os.path.join('share', package_name, 'trajectories'), glob('trajectories/*')),
]
for root, _dirs, files in os.walk('config'):
if not files:
continue
dest = os.path.join('share', package_name, root)
srcs = [os.path.join(root, name) for name in files]
entries.append((dest, srcs))
return entries
setup(
name=package_name,
version='0.1.0',
packages=find_packages(exclude=['test']),
data_files=_data_files(),
install_requires=['setuptools'],
zip_safe=True,
maintainer='arm_dev',
maintainer_email='dev@example.com',
description='High-level arm application nodes.',
license='Apache-2.0',
entry_points={
'console_scripts': [
# Bringup helpers
'demo_named_poses = arm_application.demo_named_poses:main',
'move_to_pose_client = arm_application.move_to_pose_client:main',
'run_joint_trajectory = arm_application.run_joint_trajectory:main',
'goto_ee_plane = arm_application.goto_ee_plane:main',
# Camera
'realsense_color_pub = arm_application.realsense_color_pub:main',
'realsense_view = arm_application.realsense_view:main',
# Hand-eye
'handeye_teach = arm_application.handeye_teach:main',
'handeye_waypoints = arm_application.handeye_waypoints:main',
'handeye_calibrate = arm_application.handeye_calibrate:main',
# Visual servo (current stack)
'perception_node = arm_application.perception_node:main',
'servo_node = arm_application.servo_node:main',
# Gripper
'dh_pgea = arm_application.dh_pgea_node:main',
'dh_pgea_cli = arm_application.dh_pgea:main',
'dual_gripper = arm_application.dual_gripper_node:main',
'dual_gripper_cli = arm_application.dual_gripper_cli:main',
# Hole detect (no insert motion)
'hole_detect = arm_application.hole_detect_node:main',
# Stage-2 one-shot hole localization (k1/k2) + gauge alignment
'stage2_locate = arm_application.stage2_locate_node:main',
# Stage-3 compliant hole search (Orisys tactile spiral + insert)
'stage3_search = arm_application.stage3_search_node:main',
# Three-stage assembly pipeline (track → locate → search, one process)
'assembly_pipeline = arm_application.pipeline_node:main',
'tactile = arm_application.tactile_node:main',
'tactile_cli = arm_application.tactile_cli:main',
],
},
)