根据 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目录下的例程。
sample_robot_state- 演示 RobotInterface 的基本使用
- 加载配置文件
- 读取并打印机器人的关节状态和TCP姿态
example_robot_control.cpp- 演示机器人关节运动控制
- 打印DH参数表
- 获取并打印TCP姿态
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
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 ----------------------------------------
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 :添加手眼标定相关的简单实现,包括眼在手上,眼在手外