University/Jetbot

Jetbot Teleporation

PrestoLive 2020. 11. 4. 19:20

참고 : https://github.com/NVIDIA-AI-IOT/jetbot/blob/master/notebooks/teleoperation/teleoperation.ipynb

 

NVIDIA-AI-IOT/jetbot

An educational AI robot based on NVIDIA Jetson Nano. - NVIDIA-AI-IOT/jetbot

github.com

WaveShare社의 키트를 사용하면, Gamepad가 딸려 온다. 이를 통하여 Jetbot을 조종하는 코드이다.

import ipywidgets.widgets as widgets

controller = widgets.Controller(index=0)  # replace with index of your controller

display(controller)

 - 컨트롤러를 불러온다.

  --> 단, 컨트롤러의 index값은 0이어야한다.(왜 인지는 모르겠음.)

컨트롤러의 이름과 현재 입력 상태를 나타낸다.

from jetbot import Robot
import traitlets

robot = Robot()

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

 - Robot을 import하고, robot 클래스를 선언한다.

 - left_link, right_link를 통하여 컨트롤러의 1, 3번 막대를 각각 좌, 우 모터에 할당한다.

  --> 이때, 람다식을 이용하여 역으로 변환하여 directional link를 한다. 

  --> transform=lambda x: -x 에서 -x에 속력을 곱하거나 나누어 바퀴가 움직이는 속도를 조절 할 수 있다.