目录
目录README.md

节卡机械臂与因时灵巧手开发

项目概述

本项目实现了节卡机械臂与因时灵巧手的协同控制,通过统一的C++接口实现了机械臂运动控制、灵巧手操作以及二者的协调动作。

项目结构

  • actions 动作相关数据和记录文件

  • build 编译中间产物和最终可执行文件

  • c&c++ 节卡提供的C++ SDK

    • inc_of_c++ C 定义的头文件,是抽象的接口

    • inc_of_c++ C++ 定义的头文件,是抽象的接口(使用)

    • x86_64-linux-gnu linux平台的静态和动态库,是接口的具体实现。使用的是.so

  • coordinated_actions 同时用到机械臂和灵巧手的动作定义,主要是最外层菜单功能

  • example 应用与测试

    • main.cpp 当前含有上层功能的系统

    • test_semo.cpp 测试读灵巧手寄存器:信号量

    • test.cpp 测试写灵巧手寄存器:TIO设置与发送RS485帧

  • inspire_hand 仅与灵巧手相关的操作

    • inspire_hand_driver

      • inspire_hand_driver.h 发送接口定义

      • rh56_frame.h .c 帧构造

    • hand_actions.h .cpp 动作封装,收发接口定义

  • jaka_robot 仅与机械臂相关的操作

    • error_codes.h .cpp 机械臂错误码

    • robot_action .h .cpp 机械臂高层动作API(被系统逻辑调用,调用controller)

    • robot_controller.h .cpp 机械臂低层功能API(被action调用,调用SDK中的接口)

  • references 参考的开发手册

  • robot_control_hand 机械臂操纵灵巧手的TIO相关

    • communication_bridge.h .cpp 发送接口的实现,以及初始化TIO

    • semophore.h .cpp 信号量,读取接口的实现

  • tools 用到的工具函数

    • config_loader.h .cpp json配置文件的读取函数

    • tools.h .cpp 机械臂与灵巧手应用所需的工具函数

  • config.json json配置文件

  • CMakeLists.txt 编译文件

快速开始

环境要求

项目 最低要求 已验证
操作系统 Linux x86_64 Ubuntu 22.04
CMake ≥ 3.7.2 3.22.1
编译器 GCC/G++ ≥ 9 gcc 11.4.0 · g++ 11.4.0
C++ 标准 C++17 C++17
依赖库 JAKA SDK (libjakaAPI.so) 路径:c&c++/x86_64-linux-gnu/shared/

提示:

  • 若使用 GCC ≤ 8,需在链接阶段额外加入 stdc++fs(已在 CMake 中自动处理老版本)。
  • Linux 环境需链接 pthread;若在 Windows 构建,请替换为对应平台库,建议使用 Threads::Threads 做跨平台处理,并将 .so 改为 .lib 路径。

编译步骤

  1. 清理并创建构建目录
  2. 生成构建文件(Release 配置)
  3. 并行编译
rm -rf build
mkdir build
cd build
cmake ..
make -j4

运行示例

./robot_menu         # 主菜单示例
./hand_tio_example   # RS485 帧发送测试
./test_semo          # 信号量读取测试

配置说明

config.json 关键字段:

  • 连接与通信:robot_ip 机器人 IP;vout_*pin_moders485_channelslave_idbaudratedatabitstopbitparity 为 RS485/IO 电气与串口参数。
  • 运动参数:joint_speed_deg_s / joint_acc_deg_s2 关节速度加速度;line_speed_mm_s / line_acc_mm_s2 直线速度加速度;pose_speed_deg_s / pose_acc_deg_s2 姿态速度加速度。
  • 回零位:home_joint_deg0~5 关节回零姿态。
  • 手指动作默认值:hand_angle* 目标角度;hand_speed* 速度;hand_force* 夹持力。
  • 抓取通用参数:grasp_joint_speed_deg / grasp_joint_acc_deg 抓取时关节运动参数;grasp_descend_mm 抓取下降距离。
  • 抓取策略:grasp_a_* / grasp_b_* 抓取时两个点的关节位置;grasp_strategy* 一系列拇指弯曲/旋转/平移预设,用于不同物体抓取。
关于
4.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号