littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C++的机器人手臂控制系统

项目简介

本项目是基于C++的机器人手臂控制系统,用于控制“Jaco”六自由度机器人手臂。此系统作为轮椅“ZED evolution”的机器人手臂模块,主要实现轮椅与机器人手臂之间的通信和命令转换,达成轮椅控制器与机器人手臂间的命令转换及事件处理。

项目的主要特性和功能

  • 命令与事件转换:接收轮椅控制器命令,转换为机器人手臂可理解的命令,并处理手臂事件。
  • 通信协议:实现特定通信协议,用于轮椅控制器与机器人手臂的数据交换。
  • 目标管理:具备目标管理和控制功能,涵盖目标序列处理、原点坐标设置等。
  • 硬件接口:提供与机器人手臂硬件的接口,包括连接、断开连接、初始化、移动控制等操作。
  • 日志记录:采用spdlog库进行日志记录,便于调试和问题排查。
  • 集成测试:通过CUTE测试框架进行集成测试,确保系统在不同场景下的正确性。

安装使用步骤

准备环境

确保已安装C++编译器(如GCC或Clang)和C++开发环境。

编译项目

  1. 进入源码目录。
  2. 创建构建目录:mkdir build
  3. 进入构建目录:cd build
  4. 配置构建环境:cmake .. -DCMAKE_BUILD_TYPE=Release
  5. 返回上级目录:cd ..
  6. 编译项目:cmake --build build --target all -- -j4
  7. 安装项目:sudo cmake --build build --target install

启动和停止服务

  • 启动服务:systemctl --user start kinovazed.service
  • 停止服务:systemctl --user stop kinovazed.service
  • 启用自动启动:systemctl --user enable kinovazed.service
  • 禁用自动启动:systemctl --user disable kinovazed.service

修改目标

  1. 连接到Raspberry Pi。
  2. 停止服务:systemctl --user stop kinovazed.service
  3. 启动程序:kinovaZED
  4. 使用telnet连接:telnet 192.168.77.2 51717
  5. 初始化手臂: EStop QuitEStop Initialize
  6. 选择目标:SetActiveObjective:<Objective Name>
  7. 使用Kinova Joystick移动手臂到目标位置。
  8. 获取目标位置:GetObjectivePosition
  9. 将位置信息保存到目标文件中:~/Code/kinovazed/support/objectives/Cybathlon.json
  10. 重新安装项目并重启程序。
  11. 运行目标:RunObjective:<Objective Name>
  12. 确认更改后提交并推送更改。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】