nn_dynamics 学习笔记二

trajectories.py

生成路径

def make_trajectory(shape, starting_state_NN, x_index, y_index, which_agent):

    curr_x = np.copy(starting_state_NN[x_index])
    curr_y = np.copy(starting_state_NN[y_index])

    my_list = []

    if(shape=="left_turn"):
        if(which_agent==1):
            my_list.append(np.array([curr_x, curr_y]))
            my_list.append(np.array([curr_x+2, curr_y]))
            my_list.append(np.array([curr_x+4, curr_y]))
            my_list.append(np.array([curr_x+6, curr_y]))
            my_list.append(np.array([curr_x+6, curr_y+2]))
            my_list.append(np.array([curr_x+6, curr_y+3]))
            my_list.append(np.array([curr_x+6, curr_y+4]))
            my_list.append(np.array([curr_x+6, curr_y+5]))
            my_list.append(np.array([curr_x+6, curr_y+6]))
            my_list.append(np.array([curr_x+6, curr_y+7]))
        else:
            my_list.append(np.array([curr_x, curr_y]))
            my_list.append(np.array([curr_x+1, curr_y]))
            my_list.append(np.array([curr_x+2, curr_y]))
            my_list.append(np.array([curr_x+3, curr_y]))
            my_list.append(np.array([curr_x+4, curr_y+1]))
            my_list.append(np.array([curr_x+4, curr_y+2]))
            my_list.append(np.array([curr_x+4, curr_y+3]))
            my_list.append(np.array([curr_x+4, curr_y+4]))

    if(shape=="right_turn"):
        if(which_agent==1):
            my_list.append(np.array([curr_x, curr_y]))
            my_list.append(np.array([curr_x, curr_y+1]))
            my_list.append(np.array([curr_x, curr_y+2]))
            my_list.append(np.array([curr_x, curr_y+3]))
            my_list.append(np.array([curr_x, curr_y+4]))
            my_list.append(np.array([curr_x+2, curr_y+4]))
            my_list.append(np.array([curr_x+3, curr_y+4]))
            my_list.append(np.array([curr_x+4, curr_y+4]))
            my_list.append(np.array([curr_x+6, curr_y+4]))
            my_list.append(np.array([curr_x+7, curr_y+4]))
        else:
            my_list.append(np.array([curr_x, curr_y]))
            my_list.append(np.array([curr_x, curr_y+1]))
            my_list.append(np.array([curr_x, curr_y+2]))
            my_list.append(np.array([curr_x+2, curr_y+3]))
            my_list.append(np.array([curr_x+3, curr_y+3]))
            my_list.append(np.array([curr_x+4, curr_y+3]))
            my_list.append(np.array([curr_x+5, curr_y+3]))
            my_list.append(np.array([curr_x+6, curr_y+3]))
            my_list.append(np.array([curr_x+7, curr_y+3]))
            my_list.append(np.array([curr_x+8, curr_y+3]))

    if(shape=="u_turn"):
        my_list.append(np.array([curr_x, curr_y]))
        my_list.append(np.array([curr_x+2, curr_y]))
        my_list.append(np.array([curr_x+4, curr_y]))
        my_list.append(np.array([curr_x+4, curr_y+1]))
        my_list.append(np.array([curr_x+4, curr_y+2]))
        my_list.append(np.array([curr_x+2, curr_y+2]))
        my_list.append(np.array([curr_x+1, curr_y+2]))
        my_list.append(np.array([curr_x, curr_y+2]))

    if(shape=="straight"):
        i=0
        num_pts = 40
        while(i < num_pts):
            my_list.append(np.array([curr_x+i, curr_y]))
            i+=0.7

    if(shape=="backward"):
        i=0
        num_pts = 40
        while(i < num_pts):
            my_list.append(np.array([curr_x-i, curr_y]))
            i+=0.5

    if(shape=="forward_backward"):
        my_list.append(np.array([curr_x, curr_y]))
        my_list.append(np.array([curr_x+1, curr_y]))
        my_list.append(np.array([curr_x+2, curr_y]))
        my_list.append(np.array([curr_x+3, curr_y]))
        my_list.append(np.array([curr_x+2, curr_y]))
        my_list.append(np.array([curr_x+1, curr_y]))
        my_list.append(np.array([curr_x+0, curr_y]))
        my_list.append(np.array([curr_x-1, curr_y]))
        my_list.append(np.array([curr_x-2, curr_y]))

    if(shape=="circle"):
        num_pts = 10
        radius=2.0
        speed=-np.pi/8.0
        for i in range(num_pts):
            curr_x= radius*np.cos(speed*i)-radius
            curr_y= radius*np.sin(speed*i)
            my_list.append(np.array([curr_x, curr_y]))

    return np.array(my_list)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值