# 铁憨憨(code) **Repository Path**: jrobot/Fe-Fool ## Basic Information - **Project Name**: 铁憨憨(code) - **Description**: 铁憨憨的源码 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: linux - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 21 - **Created**: 2023-04-17 - **Last Updated**: 2023-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 铁憨憨——人人都能复刻的下棋&分拣机器人 > 功能:五子棋、象棋、分拣(可自定义识别物体与目标坐标) > > 视频介绍:[铁憨憨](https://www.bilibili.com/video/BV1js4y1K7cf) > > exe可执行文件:https://cloud.189.cn/t/zYjiimeMbiQ3 (访问码:4afq) # 1、硬件清单 [表格下载](https://gitee.com/Kkoutianwu/Fe-Fool/blob/linux/%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6/%E7%A1%AC%E4%BB%B6%E6%B8%85%E5%8D%95.xlsx) # 2、软件运行要求: Linux、Windows、MacOS均可,运行内存大于等于**4G**。 ## GPU版本(有英伟达独立显卡) 先要查看显卡驱动cuda版本([图文教程](//blog.csdn.net/qq_39777417/article/details/128163109))。 如果版本高于11.3,可直接使用。 若版本低于11.3,更新最新版的显卡驱动([图文教程](https://blog.csdn.net/qq_39777417/article/details/128163480) ),更新后,如果cuda版本大于11.3,就可以使用了,若更新后还是低于11.3,那么就只能使用CPU版本。 ## CPU版本(Intel、AMD、苹果芯片都支持) CPU版本运行速度较慢,无强迫症的朋友可以考虑。 # 3、软件运行 GPU版本:`pip install -r requirements_gpu.txt` CPU版本:`pip install -r requirements_cpu.txt` 入口程序:main.py ps:如果需要自行安装其他版本torch,[pytorch官网](https://pytorch.org/get-started/previous-versions/) # 4、硬件安装: ## (1)机械臂安装 选取一张桌子,桌面颜色与棋盘不一样即可,颜色与棋盘相近的可以贴一张桌面贴纸。将机械臂放置于桌面左上角,距离上边缘18厘米左右(一本16K书的宽度),距离左边缘40厘米左右(两卡长),书一侧与桌面上边缘对齐,书另一侧与机械臂的底座边缘对齐,保证机械臂与桌面上边缘大致平行,即可用热熔胶或自攻螺钉固定好机械臂。 ## (2)相机安装 然后距离机械臂左边5CM左右放一本书,书大致对齐机械臂的中点。以书能出现在相机视野中心的原则,去预安装相机支架。(打开显示屏)然后USB插上电脑,打开相机,然后从电脑中查看相机视野,调整相机角度、支架等,以保证A4纸大致位于相机中心且A4纸全部在相机视野内。然后固定好相机与相机支。 ## (3)接线 ![image](https://gitee.com/Kkoutianwu/Fe-Fool/raw/linux/%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6/%E6%8E%A5%E7%BA%BF%E7%A4%BA%E6%84%8F%E5%9B%BE.png) ## (4)连接机械臂 ### USB连接(推荐) 使用usb转ttl模块连接机械臂与电脑,电脑安装串口驱动,机械臂上电,在《设备管理器的端口(COM和LPT)》中出现**UsbSerialPort**说明安装成功,记录下该端口号。然后运行exe或源码,点击`机械臂控制`,在新窗口中,端口号选择上述端口号,点击`打开串口`,点击`下棋&抓取`,若机械臂运动,说明连接成功。 ### 蓝牙连接(不建议使用,蓝牙容易丢包) 电脑安装串口驱动,机械臂上电,电脑蓝牙搜索ZL-BT2.0,连接蓝牙,密码1234,在设备管理器的端口(COM和LPT)中出现**蓝牙链接上的标准串行**说明安装成功,然后操作同上。 ## (5)校准机械臂: 画好辅助线,放入校准板,装好后可用透明胶暂时粘住校正板的4个角,打开软件,连接机械臂,点击`机械臂校准`,点击`开始9点校准`,此时机械臂会移动到第一个校准点上,然后通过加减3个轴的运动使机械臂的吸头正好处于校准点处,点击`确定该点已校准`。重复上述步骤把9个点都校准完成即可,然后点击9点测试,可测试校准结果,如果结果不好需重新校准。 需提前用A4纸打印出校准板[(在准备文件中)](https://gitee.com/Kkoutianwu/Fe-Fool/blob/linux/%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6/%E6%A0%A1%E5%87%86%E6%9D%BF.pdf),无法打印的也可以自己根据尺寸画 ## (6)安装棋盘 ### 五子棋 先用铅笔标记一下棋盘的两个中心点,然后给铁憨憨的执行器吸嘴上涂上面粉糊糊,打开铁憨憨控制软件连接上机械臂,点击`棋盘定位`,然后点击`五子棋棋盘定位`,机械臂会开始运动,面粉糊糊会在桌面上标记出两点;最后将这两个点对齐棋盘的中心点,放入棋盘,如果这两个点与棋盘的中心点对不齐,误差很大,需再次校准机械臂 ### 象棋: 同理,不过象棋会有三个点 ### 杂物分拣模式: 可使用在机械臂运动范围内的任意尺寸的矩形作为工作台,我例子中用的A4纸。若用A4纸作为工作台时点击`A4工作台定位`;若用其他自定义矩形作为工作台,需输入自定义矩形的长度(y轴方向),单位毫米 ## (7)安装滑轨(不需要五子棋功能无需安装) 滑槽是装填五子棋用的、是使用窗户的安装滑槽改装的,先根据视频中处理滑轨。 然后给铁憨憨的执行器吸嘴上涂上面粉糊糊,打开铁憨憨控制软件,连接机械臂,点击`棋盘定位`,然后点击`取子点定位`,机械臂会开始运动,面粉糊糊会标记出一点;将滑槽的一端取子位对准取子点,另一端贴上相机支架,调整倾斜角度,保证棋子能顺利下落,然后热熔胶固定。 装好后,点击`取子点定位`测试机械臂吸盘能否正对棋子,如不能,微调取子点坐标直至点击`取子点定位`后机械臂吸盘能正对棋子。 # 5、开始下棋&抓取 1、运行程序; 2、点击`机械臂控制`,在新窗口中,端口号选择2中所述端口号,点击`打开串口`,然后点击`下棋&分拣`,机械臂此时会运动到一个初始点; 3、找到上一层窗口,点击`下棋&抓取`,选择模型路径(使用默认路径即可),选择相机,开始检测,选择对应模式,然后整个系统就开始运行了。 **需要注意,象棋只能用户用红子,五子棋只能用户用黑子** ==物体抓取模式中,可以自定义工作台与放置点,在params.yaml中修改配置即可实现。== # 6、训练自己的数据集流程 1、制作样本(要注意手动剔除不好的数据)->2、一键生成数据集->3、一键训练神经网络 ==注意:训练新数据时,如果不想覆盖老的数据集,一定要params.yaml中最下面的data_name新增一个文件夹名,新生成的数据集会存在这个文件夹下;== 注意:训练时报错 **页面文件太小,无法完成操作**,请参考: # 7、二次开发 ## 机械臂串口助手中发送坐标指令 | 模式 | 指令 | 例子 | | --------------------------- | ------ | ----------------------------------------------- | | 坐标模式:控制机械臂运动到坐标(x,y,z) | x,y,z | 100,105,10 | | 角度模式:控制机械臂的三个电机分别转到到α,β,γ角度 | :α,β,γ | :0,30,45 | | 直连模式:直接发送串口命令至机械臂 | {cmd} | {#000P1300T1000!#001P1300T1000!#002P1300T1000!} | ps:指令中符号必须是英文符号 ## socket发给机械臂串口助手的指令 | 模式 | 指令 | 例子 | | ------------ | ---------- | --------------- | | 移动到坐标(x,y,z) | move,x,y,z | move,100,105,10 | | 吸取物体 | pick | | | 放下物体 | down | | | 机械臂急停 | pause | | | 机械臂恢复 | resume | | ## 定义新的抓取方式 继承robot/robot_master中的RobotMaster类,重写work函数即可。 # 8、常见问题自助: **需要注意,象棋只能用户用红子,五子棋只能用户用黑子** ## 定位不准 1、下棋时机械臂位置不准(下歪或取不到棋子):可以先微调棋盘去附和机械臂。如果无论怎么附和,还是有部分位置不准,需要重新使用校准板校准机械臂; 2、五子棋模式取不到棋子:点击机械臂控制,点击“棋盘定位”,点击“取子点定位”,测试机械臂吸盘能否正对棋子,如不能,修改取子点坐标直至点击“取子点定位”后,机械臂吸盘能正对棋子。 ## 滑槽不好使 1、滑轨角度不合适会导致棋子跌落或者棋子不下滑,需调整, 2、五子棋模式棋子下滑后会上翻:可用热熔胶建立一横杠挡住,如图 ![image](https://gitee.com/Kkoutianwu/Fe-Fool/raw/linux/%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6/%E6%BB%91%E6%A7%BD%E6%A8%AA%E6%9D%A0.jpg) ## 识别问题 1、棋盘/工作台需与桌面颜色有差异,且桌面最好是纯色(可以贴桌面贴纸); 2、运行时,棋盘边缘不能有杂物; 3、不能光线太强或太弱 ## 软件报错 1、训练时报错 页面文件太小,无法完成操作,参考链接: 2、**源码用户需注意**:在windows下播放音频的模块`playsound`会抛出异常,是由于windows下utf-16编码的原因,需修改playsound源码,参考链接: