程序聚合 软件案例 机械臂控制程序

机械臂控制程序

2026-06-03 15:28:26
行业:物流仓储、人工智能
载体:框架或代码包
技术:C++、Python

业务和功能介绍

机械臂抓取系统

场景:机械臂从车上抓取 杆件/钩子,放到货架上。

核心业务流程

抓取任务 (catch_kfs, task_id=2):
1. 移动到 catch_gan_ready 准备位
2. 视觉伺服逼近目标(RealSense 检测红色杆 → TF → 视觉伺服收敛)
3. 气泵吸附 → 夹爪抓取
4. 沿脱离路径 detach_gan_ready → detach_gan_1 → detach_gan_2 移动
5. 向下戳杆(Z - 0.27m 直线运动)
6. 通知 driver 抓取完成

放置任务 (place_kfs, task_id=3):
1. 移动到 kfs{N}_touch_pos 触摸位
2. 打开气泵吸附
3. 退到 place_interim_pos_0
4. 笛卡尔空间移动到货架前方(x - 0.40m)
5. 直线插入货架位
6. 关闭气泵 → 放杆
7. 退到 ready 位

移动任务 (move_kfs, task_id=1):
- 支持关节空间(6轴+duration)和笛卡尔空间(xyz+rpy+duration)两种模式
- 可选气泵开关

视觉伺服

vision 节点检测红色杆 → 发布 camera_link → target_camera TF → arm_task 实时转换到 base_link → 持续发布 visual_target_pose 给 arm_calc 做闭环控制。

距离 < 0.35m 锁定目标位姿,位置误差 < 0.05m 判定收敛。

项目实现

架构

ROS2 多节点系统,8个包,C++20。

节点数据流

vision_node ──TF──→ arm_task ──visual_target_pose──→ arm_calc ──myjoints_target──→ dog_controller
│ │ │
│ └──joint_states←───────────────┘
└──joint_space_target(命名位姿)

任务调度

Robot 类维护 task_table_(map),porcess_task() 线程循环执行当前任务的 process(),返回下一个任务名实现状态机切换。

idel ──(grasp_it=1 或 task_id=2)──→ catch_kfs ──→ idel
idel ──(task_id=1)────────────────→ move_kfs ──→ idel
idel ──(task_id=3)────────────────→ place_kfs ──→ idel

运动控制

arm_calc 节点提供4种模式(参数 motion_mode):
- mode 1:关节空间轨迹
- mode 2:笛卡尔空间轨迹
- mode 3:视觉伺服(arm_task 持续发布目标位姿)

arm_task 通过 AsyncParametersClient 远程设置 arm_calc 参数,通过 execute_trajectory 布尔量触发执行并等待完成。

视觉伺服

独立线程 100Hz 运行:
1. TF 查找 camera_link → target_camera
2. 坐标变换到 base_link + 偏置(grasp_x_run, grasp_y_run)
3. Z 强制为 grasp_height,姿态强制 RPY(0, 0.3, 0)
4. 距离 < 0.35m 锁定位姿
5. 位置误差 < 0.05m 收敛

硬件接口

robot_driver 通过 USB CDC 与 STM32 通信,发布 myjoints_state,接收 myjoints_target。气泵和抓取状态通过参数服务控制。

TF 坐标系

world → base_link → Link1~7(机械臂)
Link4 → c

示例图片视频


kangy
30天前活跃
方向: 后端-C++、人工智能-计算机视觉与图像处理、
交付率:100.00%
相似推荐
Java 应用集群迁移与 Elasticsearch 数据同步
一、背景与目标 客户因业务调整,需要将现有生产环境的网站服务及数据完整迁移至新服务器。涉及约 10 个 Java 网络应用程序及配套的搜索、消息队列服务。目标是在保证数据完整性的前提下,实现业务的平滑割接,确保迁移后服务可正常访问。 二、功能模块 1.全量服务迁移: 涵盖 Elasticsearch 7.8.0 搜索引擎、Nginx 反向代理、RabbitMQ 消息队列及 Redis 缓存服务的部署与配置还原。 2.Java 应用部署: 迁移并配置 10 个左右的 Java 后端应用,恢复其 JVM 参数及配置文件。 3.数据一致性保障: 执行数据库与索引数据的导出导入操作,确保新旧环境数据一致。
CentOS7 Docker 基础运行环境搭建与组件部署
客户需要在单台 CentOS 7 服务器上快速构建一套标准化的后端开发与运行环境。目标是替代繁琐的手动安装过程,通过容器化技术统一部署 MySQL、MongoDB、Redis、Kafka、Zookeeper、MinIO 等中间件,并预置 GoLang 开发环境,确保环境的一致性和可移植性。 功能模块: 1.中间件容器化: 集成 MySQL 5.7+、MongoDB 6.0+、Redis 7.0+、Kafka 及 Zookeeper 等核心组件,通过 Docker Compose 进行统一编排启动。 2.对象存储服务: 部署 MinIO 对象存储,用于非结构化数据的存储测试。 3.环境初始化: 编写初始化脚本,自动完成各组件的用户名密码配置(如 mysql/mongodb/redis/minio 统一认证),并安装 GoLang 1.18 及 Git 工具链,交付即可用的基础镜像环境。
考霸APP
面向小学、初中、高中学生,主打本地名校真题、同步教材、AI 智能刷题,题库超 350 万道,适配人教版、北师大版等主流教材版本。 核心功能 本地真题资源:名校月考、联考、教研室统考、分班考试卷,贴合本地考情 视频讲解:试卷、难题配套名师视频,支持投屏观看 AI 错题本:自动归集错题,按知识点分类;AI 举一反三推送同类变式题,做一道通一类;学情统计,定位薄弱知识点 音频磨耳朵:语文、历史、道法等文科考点音频,通勤碎片时间背诵记忆 同步教材练习:同步课本章节预习、课后巩固,试卷支持下载打印 PDF 备考计划:寒暑假提分计划、一轮二轮复习、中考真题专项训练
微信小程序商城
本项目围绕微信小程序商城及服务业务场景进行开发,集商品展示、在线预约、订单管理、微信支付、用户中心、服务管理和数据统计等功能于一体。用户可通过小程序完成商品浏览、服务预约、订单提交、在线支付及订单查询等操作,企业则可通过管理后台统一管理商品、服务、用户、订单、支付记录及运营数据,并可根据后续业务需求扩展会员、优惠券、积分、物流配送、消息通知及第三方系统接口等功能。
山姆拼团小程序
一、立项背景和目标 山姆会员店商品多为大容量家庭装,个人/小家庭用户常面临单品分量过大、不易储存或单独购买起送门槛高的问题。本项目旨在打造一款专为山姆商品设计的“社区/同城拼单与分装小程序”,支持用户快速发起拼单、凑单分装、分摊会员优惠与配送费,降低购买门槛,提升商品流通与履约效率。 二、软件功能与核心功能模块 1. 商品与拼团管理模块:支持山姆商品目录展示、拼单发起(支持按份数/按件拆分拼团)、拼团时效倒计时与成团状态流转。 2. 订单与支付分账模块:集成微信支付与预授权机制,支持成团自动扣款、拼团失败自动原路退款及差额多退少补。 3. 履约配送与自提核销:支持团长代收分装、同城配送对接、社区自提点选择及到货动态取件码核销。 4. 社交裂变与通知提醒:提供拼团海报一键生成、微信群转发分享及基于模板消息的成团/发货进度实时提醒。 三、业务流程与功能路径 团长/用户选择山姆商品并发起拼单 -> 设定拼团规则(成团人数/件数/有效时间)并分享至微信群或好友 -> 参团成员加车支付参团 -> 满员触发成团事件与采购通知(未满员超时自动退款) -> 商品到货团长分装/核销自提 -> 完成订单闭环。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服