# eliteRobot_cpp_sdk **Repository Path**: B_CK/eliteRobot_cpp_sdk ## Basic Information - **Project Name**: eliteRobot_cpp_sdk - **Description**: 艾利特CS系列机械臂cpp版本的SDK(非官方,使用官方的SDK根据自己使用需要进行过修改)以及自己的一些简单功能实现 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2025-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # eliteRobot_cpp_sdk ## 艾利特CS系列机械臂cpp版本的SDK ### 简介 根据 Elite 官方的部分零散cpp文件,自己组合构建了一个软件工具包。 目前主要功能能够获取相关相关参数以及驱动机械臂运动,包括joint运动和直线运动。 读取机器人相关参数部分主要来源是官方零散的cpp文件,驱动机械臂运动部分是根据官方的[脚本手册](./docs/CS_脚本手册_Ver2.13.0.pdf)自己做通信实现。 RTSI (Real-Time System Interface) 接口读取相关参数部分,在原来零散文件基础上做了二次封装,增加了同步和异步获取参数的[接口](./include/rtsiReceive.h),具体使用可见[二次封装后的使用例程](./examples/example_RtsiReceiveDemo.cpp),[最初的官方例程](./examples/RtsiMain.cpp)。 ### 编译标准与依赖 + 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 :添加手眼标定相关的简单实现,包括眼在手上,眼在手外