可否利用透镜组和光电鼠标构造测试移动方向和速度的系统
因为光电鼠标是利用影象来计算移动速度和方向的,利用透镜成像将地面转成图像投影到鼠标芯片上,非常简单。可否? 我有过这样的想法。 鼠标的成像像素很低,用在鼠标上合适,四轴上行不通你试试把鼠标拿起一定高度移动,有几个鼠标能动得了的
我试了下双飞燕的X7,即使把下面判断鼠标是否拉起的按键按下,一样动不了,激光引擎的 我也有想过。按照搜到的东西,有人做过,给鼠标芯片加个镜头,然后距离也就增加到最多1米。为什么不能更远不知道。 我可以赞助这个项目
walker_r 发表于 2011-12-21 12:31 static/image/common/back.gif
鼠标的成像像素很低,用在鼠标上合适,四轴上行不通
你试试把鼠标拿起一定高度移动,有几个鼠标能动得了的
...
这是因为没有对焦吧
要离开桌面一段距离,首先得改透镜 试过做平面的定位,把鼠标装到机器人底盘上,按到地面上。效果还是不错的。不过有个坎就哭了,再者久了镜头会变脏。
鼠标的分辨率还是相当高的,以前高端游戏鼠标都有3200dpi@1k fps,现在应该更强了。不过用在四轴上对焦是个问题,还得是动态对焦。 669911 发表于 2013-1-21 11:58 static/image/common/back.gif
我可以赞助这个项目
兄弟是什么用途的,我们可以聊下: qq 24453405 ilawp 发表于 2013-1-21 12:48 static/image/common/back.gif
试过做平面的定位,把鼠标装到机器人底盘上,按到地面上。效果还是不错的。不过有个坎就哭了,再者久了镜头 ...
你用的鼠标芯片型号是多少啊资料方便传一下吗? 谢谢 kang732816702 发表于 2013-8-26 22:46 static/image/common/back.gif
你用的鼠标芯片型号是多少啊资料方便传一下吗? 谢谢
用的是罗技的一款高端游戏鼠标,二手剪线的,型号忘了。
没资料,主控里面跑linux,有驱动,具体咋实现我不懂。 ilawp 发表于 2013-8-26 23:37 static/image/common/back.gif
用的是罗技的一款高端游戏鼠标,二手剪线的,型号忘了。
没资料,主控里面跑linux,有驱动,具体咋实现我 ...
哦跟我做的不一样我是要用鼠标的芯片做一个测位移的项目 去avago看看,貌似安捷伦部分业务与avago合并了,鼠标传感器算到avago。曾经看过一款传感器,spi接口的,有详细datasheet,应该可以用的起来 现在A3080 A9500 A9800等又成了原相的东西了 安华高把这些东西又转给原相了 去原相官网上只能找到datasheet 就是找不到固件 鼠标扫描速度慢,快速和低速移动得到的指不一样,不能计算速度,方向有可能是反的。 ilawp 发表于 2013-1-21 12:48
试过做平面的定位,把鼠标装到机器人底盘上,按到地面上。效果还是不错的。不过有个坎就哭了,再者久了镜头 ...
那你说怎么把鼠标输出的距离转变成实际距离的呢?这是怎么各对应关系? mbwhy 发表于 2014-4-2 09:29
那你说怎么把鼠标输出的距离转变成实际距离的呢?这是怎么各对应关系? ...
鼠标输出的应该是单位时间内的位移,xy两个方向。结合陀螺仪得到的角度信息(需要积分),用极坐标再积分
如果能保证机构没有旋转,只有平移的话,就不需要陀螺仪
单个鼠标没办法得到旋转的数据
置于鼠标数据和实际距离直接的关系,需要标定 ilawp 发表于 2014-4-2 09:38
鼠标输出的应该是单位时间内的位移,xy两个方向。结合陀螺仪得到的角度信息(需要积分),用极坐标再积分 ...
你说的标定是指 让鼠标移动一段已知的距离看鼠标的实际输出,然后算出这个对应关系?能不能用鼠标DPI这个信息,不是指鼠标移动一英尺的输出的点数吗? lizhijieli 发表于 2014-3-19 08:45
鼠标扫描速度慢,快速和低速移动得到的指不一样,不能计算速度,方向有可能是反的。 ...
你要看移动多快。
我试过,在比较理想的表面上,快速和慢速移动鼠标相同距离,数据相差极小。移动过快了,计算出来的就偏短,那是因为超出使用范围了。
以我当时用过的G9X为例,标称最大加速度30g,最大速度150英寸 (3.81米)/秒,当然理论值看起来要美好一点
现在avago 的a9800传感器应该算比较顶尖的,数据不详。 mbwhy 发表于 2014-4-2 09:49
你说的标定是指 让鼠标移动一段已知的距离看鼠标的实际输出,然后算出这个对应关系?能不能用鼠标DPI这 ...
那个dpi也不是很严格的。比如dpi设置成400,标定出来是390左右。毕竟给人用,只要线性度好就行了,人会适应实际的dpi。 可以,但是对高度要求很高,对地面的纹理要求也高,对环境光线的要求也高,这样飞着没多大实用价值了吧 我也有兴趣,可以一起做,我想要做一个手持打印机,用鼠标传感器获得喷头的移动位置信息来控制喷墨。, ilawp 发表于 2014-4-2 09:54
那个dpi也不是很严格的。比如dpi设置成400,标定出来是390左右。毕竟给人用,只要线性度好就行了,人会适 ...
嗯,官方说的这个DPI应该是在某个确定的高度下,还有如果每次高度变了就要重新标定对吧,我觉得这个应该有个关系在里面,看过APM的光流那段程序,当然他这里面有角度的变换,最后把高度信息也加进去了,还有一个系数,不过这个系数怎么来的没看明白。
void AP_OpticalFlow::update_position(float roll, float pitch, float sin_yaw, float cos_yaw, float altitude)
{
float diff_roll = roll- _last_roll;
float diff_pitch = pitch - _last_pitch;
float change_x, change_y; // actual change in x, y coordinates
// only update position if surface quality is good and angle is not
// over 45 degrees
if( surface_quality >= 10 && fabsf(roll) <= FORTYFIVE_DEGREES
&& fabsf(pitch) <= FORTYFIVE_DEGREES ) {
altitude = max(altitude, 0);
// change in position is actual change measured by sensor (i.e. dx, dy) minus expected change due to change in roll, pitch
change_x = dx - (diff_roll * radians_to_pixels);
change_y = dy - (-diff_pitch * radians_to_pixels);
float avg_altitude = (altitude + _last_altitude)*0.5f;
// convert raw change to horizontal movement in cm
// perhaps this altitude should actually be the distance to the
// ground?i.e. if we are very rolled over it should be longer?
x_cm = -change_x * avg_altitude * conv_factor;
// for example if you are leaned over at 45 deg the ground will
// appear farther away and motion from opt flow sensor will be less
y_cm = -change_y * avg_altitude * conv_factor;
}
_last_altitude = altitude;
_last_roll = roll;
_last_pitch = pitch;
} mbwhy 发表于 2014-4-2 10:15
嗯,官方说的这个DPI应该是在某个确定的高度下,还有如果每次高度变了就要重新标定对吧,我觉得这个应该 ...
没玩过四轴,只玩过单轴陀螺仪。
系数也有办法。。。标定。。。找规律。
特定距离下dpi也许可以这样解释。视场角一定的,距离越远看到的面积越大,计算出的位移越小。前提是得能聚焦,不然感光器件看到一团模糊是算不出来的
这不就是光流传感器吗,还用那么麻烦吗?
页:
[1]