質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1240閲覧

JetsonNano(Jetbot)の Robot class instance を初期化したい。

Taitan2020

総合スコア0

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/10/17 04:21

編集2021/10/17 08:11

前提・実現したいこと

NVIDIAのJetsonNanoでJetbotを作っています。JupyterNotebookのCollision AvoidanceでBasic MotionのScript(動作確認プログラム)を実行するとエラーが出るので、解決法を教えてください。
ちなみに、Motor DriverはAdafruitのものを利用しています。PiOLED displayは何も表示されなかったので、このディスプレイを外しJetson NanoとMotor Driverを直接接続した上で実行しました。

発生している問題・エラーメッセージ

まず、from jetbot import RobotでRobot クラスをインポートし、
次に、robot = Robot()と初期化しようとすると、以下のエラーメッセージが出ます。

Python3

1--------------------------------------------------------------------------- 2TimeoutError: [Errno 110] Connection timed out

該当のソースコード

Python3

1--------------------------------------------------------------------------- 2TimeoutError Traceback (most recent call last) 3<ipython-input-4-b418ad9f6ab3> in <module> 4----> 1 robot = Robot() 5 6/usr/local/lib/python3.6/dist-packages/jetbot-0.4.0-py3.6.egg/jetbot/robot.py in __init__(self, *args, **kwargs) 7 20 def __init__(self, *args, **kwargs): 8 21 super(Robot, self).__init__(*args, **kwargs) 9---> 22 self.motor_driver = Adafruit_MotorHAT(i2c_bus=self.i2c_bus) 10 23 self.left_motor = Motor(self.motor_driver, channel=self.left_motor_channel, alpha=self.left_motor_alpha) 11 24 self.right_motor = Motor(self.motor_driver, channel=self.right_motor_channel, alpha=self.right_motor_alpha) 12 13/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_MotorHAT_Motors.py in __init__(self, addr, freq, i2c, i2c_bus) 14 229 self.motors = [ Adafruit_DCMotor(self, m) for m in range(4) ] 15 230 self.steppers = [ Adafruit_StepperMotor(self, 1), Adafruit_StepperMotor(self, 2) ] 16--> 231 self._pwm = PWM(addr, debug=False, i2c=i2c, i2c_bus=i2c_bus) 17 232 self._pwm.setPWMFreq(self._frequency) 18 233 19 20/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py in __init__(self, address, debug, i2c, i2c_bus) 21 57 self.i2c = get_i2c_device(address, i2c, i2c_bus) 22 58 logger.debug("Reseting PCA9685 MODE1 (without SLEEP) and MODE2") 23---> 59 self.setAllPWM(0, 0) 24 60 self.i2c.write8(self.__MODE2, self.__OUTDRV) 25 61 self.i2c.write8(self.__MODE1, self.__ALLCALL) 26 27/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py in setAllPWM(self, on, off) 28 93 def setAllPWM(self, on, off): 29 94 "Sets a all PWM channels" 30---> 95 self.i2c.write8(self.__ALL_LED_ON_L, on & 0xFF) 31 96 self.i2c.write8(self.__ALL_LED_ON_H, on >> 8) 32 97 self.i2c.write8(self.__ALL_LED_OFF_L, off & 0xFF) 33 34/usr/local/lib/python3.6/dist-packages/Adafruit_GPIO-1.0.4-py3.6.egg/Adafruit_GPIO/I2C.py in write8(self, register, value) 35 114 """Write an 8-bit value to the specified register.""" 36 115 value = value & 0xFF 37--> 116 self._bus.write_byte_data(self._address, register, value) 38 117 self._logger.debug("Wrote 0x%02X to register 0x%02X", 39 118 value, register) 40 41/usr/local/lib/python3.6/dist-packages/Adafruit_PureIO-1.0.4-py3.6.egg/Adafruit_PureIO/smbus.py in write_byte_data(self, addr, cmd, val) 42 266 # Send the data to the device. 43 267 self._select_device(addr) 44--> 268 self._device.write(data) 45 269 46 270 def write_word_data(self, addr, cmd, val): 47 48TimeoutError: [Errno 110] Connection timed out

試したこと

正常と思われる項目

  • Program環境:Collision AvoidanceのTrain Modelは完了
  • モーター単体の動作
  • モータードライバへの電源供給:緑のランプ点灯
  • カメラ(他カーネル)の正常動作:Collision AvoidanceのData Collectionは完了

疑わしい項目

  • リストPiOLED displayは表示されなかった。(このディスプレイを外しJetson NanoとMotor Driverを直接接続した上で実行しました。)
  • i2cdetectコマンド:結果は下記の通り。i2c通信に異常があるようです。

jetbot@jetson-4-3:~$ sudo i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

補足情報(FW/ツールのバージョンなど)

①Motor Driverは下記です。
メーカー名:Adafruit
型番:DC Motor + Stepper Featherwin G A 【2927】
https://www.marutsu.co.jp/pc/i/10560550/

②i2c通信に原因がありそうですが、カメラは正常に動作しています。

③写真
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問