机器人位姿反馈控制开发日志

概要

这篇帖子记录了我开发机器人位姿反馈控制系统所碰到的问题

硬件

  • KUKA KR 16 R1610机器人
  • KUKA KR_C4控制柜
  • API Radian激光跟踪仪
  • 1.5英寸靶球
  • Windows电脑
  • 网线

前情提要

API部分开发
KUKA部分开发
Eigen文档学习

验证机器人和激光跟踪仪的属性页是否兼容

按照激光跟踪仪的属性页设置机器人的属性页,看看是否报错

结论:没问题

关于交互界面

可以用一个switch结构外加一个整形路径变量来做交互界面

apidevice.h与WinSock2.h冲突

由于apidevice.h中用到了winsock.h,会与WinSock2.h冲突,故需要把WinSock2.h放在前面

apidevice.h与WinSock2.h冲突

环境变量

API部分需要用到动态链接库,故需要设置环境变量

设置环境变量

熟悉函数编写的一些规范

看其他人写的库大量会用到const,故了解了一下

函数编写的一点规范

Eigen代码编码保存问题

Eigen库使用中文编码保存时会报C4819警告,我用的解决方案如下

C4819

项目路径设置

由于项目每天都会备份一次,为了不每次都修改路径,于是了解了一点VS中宏的用法

API的库中connect函数用到的函数指针必须为static

对应的,函数内部的变量也需要为static

API的库导致的bind函数冲突

API库的头文件中不知道为什么用了

using namespace std

导致后面使用bind的时候其实用的是std::bind,导致问题

目前把头文件中的前述语句删了,貌似还可以正常用

bind冲突

线程控制需要给socket通讯的recv函数设置超时时间

由于控制线程是否结束是通过每次循环的开始处检查标志位实现的,因此如果recv函数一直卡着的话线程没法正确退出

所以这里给他设置了一个超时时间,主线程修改标志位之后,即使卡在了recv处,也会因为超时进入到下一个循环,并检查标志位

recv函数超时设置

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据