LED条纹应该跟随一个人

时间:2017-08-29 17:09:08

标签: python ros led robot

我有一个与RasPi3相连的LED条纹。条纹应安装在自动引导车辆上作为人体机器接口。我想对条纹进行编程,使其上有“眼睛”(例如, 3个LED像素开 - 5个LED像素关闭 - 上的3个LED像素),它自动跟随一个人站在它前面。

其实我有方法:

“set_eye_position(msg)”能够以-99(完全左侧)到+99(完全右侧)的间隔设置LED像素作为输入参数(msg)和

“set_eyes_to_coord(msg)”获取两个输入参数:站在车辆旁边的人的x和y坐标。我的方法是在机器人中间设置一个坐标系(见Picture

我的问题是,如果有机会在给定的输入参数(x,y)下计算LED像素的确切位置?

我正在使用Python编写,我在编程方面相当新颖,所以如果我能够了解如何实现我的问题,我将非常感激。

提前致谢

编辑:

假设来自bendl THIS的方法是新设置,对吧?我真的不知道如何处理变量boe_left,boe_right和boe_dist。但也许我太愚蠢了解它。

1 个答案:

答案 0 :(得分:0)

这里有一些让你开始的事情:

def pixels_on(x, y):
    assert y > 0                                # person must be in front of robot
    boe_left, boe_right = -10, 10               # x location of back of eye left, back of eye right
    boe_dist = - 3                              # distance to back of eye

    m_left =  (x - boe_left) / (y - boe_dist)   # slope from back of left eye to person
    m_right =  (x - boe_right) / (y - boe_dist) # slope from back of right eye to person

    c_left = boe_left - m_left * boe_dist       # center of front of left eye
    c_right = boe_right - m_right * boe_dist    # center of front of right eye

    return list(map(int, [c_left - 1, c_left, c_left + 1, c_right - 1, c_right, c_right + 1]))

这可以通过在一个固定点之间绘制一条线,你可以将其视为机器人眼睛的假想背面和人。该线与LED条相交的点是眼睛应该居中的点。这个解决方案(假设)假设每单位距离有一个LED,因此您必须进行一些更改,但我们无法为您做任何事情;)