Skip to content

Balcher/eliteRobot_cpp_sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eliteRobot_cpp_sdk

艾利特CS系列机械臂cpp版本的SDK

简介

根据 Elite 官方的部分零散cpp文件,自己组合构建了一个软件工具包。

目前主要功能能够获取相关相关参数以及驱动机械臂运动,包括joint运动和直线运动。

读取机器人相关参数部分主要来源是官方零散的cpp文件,驱动机械臂运动部分是根据官方的脚本手册自己做通信实现。

RTSI (Real-Time System Interface) 接口读取相关参数部分,在原来零散文件基础上做了二次封装,增加了同步和异步获取参数的接口,具体使用可见二次封装后的使用例程,最初的官方例程

编译标准与依赖

  • C++14标准
  • boost1.82 中的 asio
  • eigen 3.4.0

目录结构

  • config:配置目录

    • CS_UserManual_Robot_State_Message.txt:定义了上位机(PC 或控制程序)如何解析机器人发送过来的状态信息
  • docs:文档目录

    包括用户手册和脚本手册以及API参考,自己添加功能可以根据脚本手册按照协议要求自己增加功能。

  • examples : 例程目录

  • include :头文件

  • src : 源文件

  • tools:工具目录,目前添加了手眼标定的参考代码

  • UserUseDemo :编译安装本sdk之后,用户使用的例程参考。

如何编译

在当前目录下打开终端

mkdir build && cd build
cmake ..
make -j2
sudo make install

如何使用

目前相关程序是在CS620机械臂测试能够正常使用,也可使用艾利特的虚拟机进行调试,相关参考如:https://blog.csdn.net/weixin_44602865/article/details/144912808

通过sdk如何构建程序见:./UserUseDemo目录下的例程。

examples下程序说明

  1. sample_robot_state
    • 演示 RobotInterface 的基本使用
    • 加载配置文件
    • 读取并打印机器人的关节状态和TCP姿态
  2. example_robot_control.cpp
    • 演示机器人关节运动控制
    • 打印DH参数表
    • 获取并打印TCP姿态
  3. example_robot40011Port.cpp
    • 演示40011端口使用
    • 查询逆解
    • 输出
      IK Degrees: 1.01361     -2.94391        2.57486 -4.34468        1.56995 -0.557185
      FK Pose: 0.300001       0.199999        0.499998        3.14001 -9e-06  -1e-06
      
  4. example_realTime_fkik.cpp
    • 实时循环获取关节状态
    • 计算FK位姿
    • 求解IK并统计计算时间和频率
    • 输出
      ----------------------------------------
      Current Joint: 1.10138  -1.28604        0.721918        -4.21653        1.01709 0.615466
      FK Pose: -0.077051      -0.802946       1.35268 -2.85814        -0.486725       -1.1363
      IK Degrees: 1.10138     -1.28604        0.721931        -4.21654        1.01709 0.615464
      IK Time: 0.0200946 s, Frequency: 49.7647 Hz
      ----------------------------------------
      Current Joint: 1.10138  -1.28604        0.721918        -4.21653        1.01709 0.615466
      FK Pose: -0.077051      -0.802946       1.35268 -2.85814        -0.486725       -1.1363
      IK Degrees: 1.10138     -1.28604        0.721931        -4.21654        1.01709 0.615464
      IK Time: 0.0200834 s, Frequency: 49.7923 Hz
      ----------------------------------------
      
  5. example_RtsiReceiveDemo.cpp
    • 使用RTSI接口高速获取数据
    • 打印joint角度和TCP位姿
    • 计算时间和频率
    • 输出
      Joints: 1.101383 -1.290462 0.721918 -4.216525 1.017086 0.615466 | TCP: -0.074809 -0.798532 1.355995 -2.862075 -0.489457 -1.134453 | Time: 0.000046 s, Freq: 21882.316900 Hz
      Joints: 1.101383 -1.290462 0.721918 -4.216525 1.017086 0.615466 | TCP: -0.074809 -0.798532 1.355995 -2.862075 -0.489457 -1.134453 | Time: 0.000058 s, Freq: 17225.341923 Hz
      Joints: 1.101383 -1.286540 0.721918 -4.216525 1.017086 0.615466 | TCP: -0.076795 -0.802447 1.353061 -2.858583 -0.487034 -1.136091 | Time: 0.000048 s, Freq: 20692.794769 Hz
      

手眼标定工具包

2025.1.24 :添加手眼标定相关的简单实现,包括眼在手上,眼在手外

About

艾利特CS系列机械臂cpp版本的SDK(非官方,使用官方的SDK根据自己使用需要进行过修改)以及自己的一些简单功能实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors