-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathManual.txt
119 lines (103 loc) · 8.24 KB
/
Manual.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/**
* @brief 视觉机器人项目使用手册
*
* @author 黄坚
* @copyright 乐聚机器人(深圳)技术有限公司
* @date 2017年09月05日
*/
简介:
该项目是通过识别颜色位置自动控制机器人进行一系列动作(包括走到目标面前,进行避障动作,回走,识别足球并执行射门动作)。
操作流程:
客户端连接上服务端以后,以HSV格式为例:
先把机器人放置目标附近的位置,不要太近(以免机器人做避障动作的时候撞到目标),在图像中用鼠标选取目标,如果识别正确,会有绿色
的标记框选中目标,为提高识别颜色的准确率,接下来应该选中"Transform"按钮显示转换的后图像,通过手动调试滚动条,过滤其它颜色,
识别正确的目标颜色,目标颜色选定后,点击Add按钮,会在列表中添加一项识别这个颜色的信息,关于列表后面会有介绍。识别多个目标,
需要重复之前的操作,设置完毕后,把机器人放到起点,点击"Auto"按钮后,机器人会自动朝着这些目标前进,完成所有目标后机器人会停
止动作,如果需要再次执行一次之前的设置,只需要把机器人放回起点,然后点击"Again"按钮。
YUV的操作基本和HSV的操作一致,不过YUV不需要手动去调试颜色范围,只需要用鼠标选取目标颜色后,根据标记框的位置判断这次选取
是否够"好",'好"的标准应该是标记框包围目标颜色的范围越大越好(这个最大范围是能够标记目标颜色的最小矩形),至少标记框的宽度应该
接近目标的宽度,这个宽度是用来判定机器人是否到达指定位置的重要参数,这也是为什么要把机器人放到目标附近进行颜色采集,就是为了
记录这个宽度,判定是否到达指定位置。
详解:
项目由两部分组成,一个是服务器放在机器人nanopi开发板上运行,一个是客户端在windows PC机上运行(也可以在其它系统上运行)。
服务端:
负责采集摄像头图像信息,通过opencv进行图像处理,目前支持两种格式(分别是YUV,HSV)识别颜色,处理后的结果中图片是由UDP
协议发送给客户端,字符串信息是通过TCP协议发送。
客户端:
可以显示机器人摄像头采集到的图像信息,选取目标,设置避障方向等。
现在开始介绍如何在客户端进行设置:
首先通过wifi连接机器人(具体连接readme.md文件中有介绍),目前程序默认显示的图像格式是RGB格式,默以HSV进行颜色识别。
以下是各个组中的控件功能:
[1]"Display"组
/********************************************************************************************************/
"Original"按钮是显示RGB格式的原图,"Transform"按钮显示的是转换成HSV或者YUV格式的识别颜色的效果图。
"Brightness"滚动条是调节图片亮度
"Contrast"滚动条时调节图片对比度
备注:目前亮度和对比度在识别颜色中没有被使用。
/********************************************************************************************************/
[2]"Extend"组
/********************************************************************************************************/
用来扩展其他的功能。
选中“Go back”,支持回走功能。
备注:颜色识别容易受光线影响,如果一面光线太强,一面太弱,通过之前保存的颜色信息,很有可能识别不到。
/********************************************************************************************************/
[3]"Detection"组
/********************************************************************************************************/
目前有HSV和YUV两种格式识别颜色。
选择颜色的方法都是在摄像头图像中用鼠标选取目标颜色,其中YUV格式下每次选取后服务端会返回一个标记框在客户端显示,如果识别的框效果不好,
可多次选取。而HSV目前通过鼠标选取颜色还做的不是很好,建议通过鼠标选取后,再通过6个滚动条微调一下。
YUV: 设置图片在YUV格式下Y通道的值,是将图片上每个像素点的Y通道的值都设为指定的这个值,可以在"Transform"转换后的图像后观看效果,这
个值会影响YUV格式下识别颜色,默认设置为128。
HSV: 通过HSV颜色范围设定去查找颜色,可通过转换后的图像查看识别的二值效果图。
以下给出一些基本颜色的颜色范围的模糊设定:
黑 灰 白 红 橙 黄 绿 青 蓝 紫
MinH: 0 0 0 0 | 156 11 26 35 78 100 125
MaxH: 180 180 180 10 | 180 25 34 77 99 124 155
MinS: 0 0 0 43 43 43 43 43 43 43
MaxS: 255 43 30 255 255 255 255 255 255 255
MinV: 0 46 221 46 46 46 46 46 46 46
MaxV: 46 220 255 255 255 255 255 255 255 255
以上资料来源于http://blog.csdn.net/taily_duan/article/details/51506776
关于HSV的颜色范围设定,目前还未找到很好的方法去确定颜色范围,更多的是需要我们自己去手动调试设置一个相对较好的颜色范围。
/********************************************************************************************************/
[4]"Control"组
/********************************************************************************************************/
"Add"按钮: 添加一个需要识别的颜色目标。
"Reset"按钮: 重置已设置的颜色信息。
"Again"按钮: 完成所有目标后,把机器人放回起点,再点击这个按钮,可以再次去完成这些目标。
"Auto"按钮: 自动模式,设置好目标后,点击这个按钮,机器人开始自动查找颜色。
"Mannual"按钮: 手动模式,设置这个模式后,机器人会停止自动模式,该模式下,可以通过"Quick walk, Turn left(s)等按钮控制机器人"
"Quick walk": 快走(左右脚前进3步)
"Quick back": 快退
"Turn left(s)": 小幅度左转
“Turn right(s)”: 小幅度右转
"Turn left(L)": 大幅度左转
"Turn right(L)":大幅度右转
"Left shift": 左移
"right shift": 右移
"Move on": 持续前进
"Move stop": 停止持续前进
"Stoop down": 弯腰
"Right kick": 右踢
/********************************************************************************************************/
[5]目标列表
/********************************************************************************************************/
目前列表设定只能添加6个,这个值可以改,不过目前没有设置这样的接口,需要重新改写程序。
通过Add按钮添加的颜色信息会保存在这个列表中,目前列表中可以设置"Type"(目标类型)和"Turn"(避障动作的转向)
其中目标类型有3种,分别是"目标","障碍物","足球"。
"目标": 机器人到达"目标"指定位置后会停止下来。
"障碍物": 机器人到达"障碍物"后会执行避障动作。
"足球": 机器人会寻找足球并在找到足球后进行射门动作。
/********************************************************************************************************/
[6]信息显示框
/********************************************************************************************************/
这里会打印出和服务端之间的通信内容。
/********************************************************************************************************/
[7]"Setting"菜单栏
/********************************************************************************************************/
其中各个选项的功能如下:
"Port":设置UDP和TCP的端口,这个是防止端口被占用,服务端需要在setup.ini配置文件中更改对应的端口号。
"Debug view": 显示中间区域范围的划定以及是小幅度还是大幅度转到的界限。
"Service wifi": 设置机器人连接的wifi账号密码。
"Param setting": 参数设置,目前修改这些值后,如果服务端重启,不会保存。
/********************************************************************************************************/