首页 > 解决方案 > 使用用于 Jupyter 笔记本的 xbox 控制器,实时保持分配给操纵杆值的变量

问题描述

我在我的项目中使用 Jupyter 笔记本和 Xbox 控制器来实时控制机器人。

import ipywidgets.widgets as widgets用来

它可以使用 traitlets 直接将它们分配给滑块或电机,但我不知道如何事先对它们进行计算。

如果我将这些值分配给变量,它会在运行单元格时获取当前值。

这是直接分配给电机的工作代码:

left_link = traitlets.dlink((controller.axes[1], 'value'), (robot.left_motor, 'value'), transform=lambda x: -x)

但是,我需要计算我想走的角度,因此计算两个操纵杆值轴的 arctan2(transform: lambda我认为这还不够吗?)。

我不明白我应该如何处理这个问题,因为我从来没有使用过总是更新变量,比如 Xbox 控制器变量。如果您需要更多信息,请告诉我。

标签: pythonjupyter-notebooknvidia-jetson-nano

解决方案


我正在寻找的东西是 Observe() 像这里:

import ipywidgets.widgets as widgets

int_range = widgets.IntSlider()
display(int_range)
def on_value_change(change):
    print(change)
    print(change['new'])
int_range.observe(on_value_change, names='value')

这允许在每次控制器更改其值时重新分配变量值。


推荐阅读