Skip to main content

AIによる人追跡ショッピングカートの開発 ~パート2: ハードウェアの設計~

人物追跡機能付きショッピングカートを作るために、構成部品を選定し、フレームの設計を行います。

Follow trolley frame design

はじめに

パート1では、Jetson Nanoや、人物追跡用のAIモデルについて調べ、人物追跡が成功しそうなモデルを実際に動かしてみました。今回の投稿では、システム構成部品を選定し、フレームの設計を始めていきます。

設計の検討事項

構成部品の選定を始める前に、ショッピングカートに搭載する機能について話し合いました。ここでは、対象物に対して安全な距離を保つため、前後に取り付ける近接センサー、状態表示のための積層信号灯、顔 (ロボットが起動するときは可愛くないと!)やロボットの運転状態を表示するためのディスプレイセットが挙げられました。

Measuring a bag to ensure size for trolley design

ショッピングカートは、いっぱいに物が入っている買い物袋2つを運ぶのにちょうど良い大きさにしました。Google検索では袋についての情報をあまり集められそうになかったので、実際に1つ分の大きさを測定してみることにしました。Lidlのエコバッグを見てみると、平らに広げた時に長さ、幅ともに約440mmありました。これはあくまで中身が空の状態の話なので、物を入れるとこれよりも全体的に小さくなると考えられます。

ショッピングカートには何らかの推進力が必要なので、最適なバッテリーやモーター、車輪を見つける必要がありました。今回はロボットが、人間の平均的な歩行速度である3.1mph(時速3.1マイル)程度か、それよりも少し速い速度で走行できるようにすることを目指します。

組み立てを簡単に、素早く行うために、フレームを20x20mm程度のアルミニウム押出材で設計することにしました。これを使うと、汎用性も確保できます。

人物追跡を設定する際、ショッピングカートとの通信には、ノートパソコンやスマホでの使用を想定し、WiFiを利用します。Jetson NanoにはオンボードWiFiがないため、WiFiドングルも必要ですね。

バッテリー電圧は、モーターが要求する作動電圧によって決まるので、後ほど検討します。他のオンボード用の電源については、バッテリー電圧から5V等の適切な電圧を抽出して、Jetson Nanoに供給します。

構成部品の選択肢

Choosing the wheels

はじめに、RSカタログから適切な車輪を探すことにしました。選択肢が多すぎるので、車輪の直径を125~400mm、内径8~13mmに絞って探していきます。車輪直径を125mm以上に制限したのは、小さな車輪を使うよりも低速の歯車付きモーターで、同じ速度にできるためです。

直径が160mmで、ボア径が12mmのゴム製の車輪 (253-5429) を選びました。モーターで駆動するので、ベアリングは付いていません。

Calculating RPM with online checker

車輪が決まったので、3.1mph以上を達成できるモーターの最小回転数(rpm)を計算しました。ここではオンライン計算機を使ってこれを求め、結果的に、直径160mmの車輪では最小で165rpmとなりました。

この基準を満たすモーター (773-6905) を選んだところ、24Vで駆動するタイプでした。ただ、他の電気系統については何も決めていないので、問題はありません。選択したモーターには1.6Nmと、十分なトルクがあり、いっぱいに荷物を載せたショッピングカートを動かすには十分すぎるトルクです。電動車いす用モーターの中には、トルク値が1.8Nmと低いものもありますが、それでも人と車いすを足した重量をやすやすと移動させることが可能です。

Selecting motor controller

モーター選びが済んだところで、今度は最適なコントローラーを探します。モーターが24Vで駆動して、2個の12Vバッテリーが電源を供給する、となると、バッテリーがフル充電されたときには最高27.4Vの電圧振幅があることになります。モーターコントローラーがこれに対応している必要があるので、ある程度電圧のヘッドルームを残しておくことが賢明でしょう。

最終的に、EM174 (510-1209) コントローラーを使うことにしました。これは12~32Vの電源で作動し、最大8Aを継続的に供給可能で、今回選定したモーターには十分です。このコントローラーの利点は、電流制限や、0~5Vか0~10Vを選択可能な速度制御入力と独立した方向制御入力を設定できることです。つまり、これを使えば、Jetson Nanoで容易に制御できるようになります。

Ultrasonic Sensor

ショッピングカートが周りの人や操作者にぶつからないために、2つのIFM超音波近接センサー (123-2440) を選択しました。感知範囲は60~800mmで、十分要件を満たしています。もう一つの安全装置として、カートの前後に取り付ける予定です。

電気系統が24Vで動作するので、2つの12V 12Ah 鉛蓄電池 (843-1314) を選びました。これは、頑丈で充電しやすく、両方のモーターを無理なく駆動するのに十分な電流が供給出来る、理想的なソリューションです。重量についても、ショッピングカートの重心を低く保つことが可能で、荷物を最大まで載せた際にロボットが不安定になるといった問題を回避することができます。

Signal Tower

ショッピングカートの状態を表示するために、3色の積層信号灯 (135-0688) を選択しました。WiFiのホットスポットがロボットの状態を監視してくれるので、ライトは3つ以上必要ないと考えました。

機械設計

構成部品をすべて選び終えたので、ショッピングカートの機械設計に取り掛かります。寸法は、前に測ったエコバッグの大きさをもとに、これが2個入るようなものにしました。

当初の予定では、ショッピングカートの重量を軽くするために、20x20mmの押出材を使用する計画でしたが、強度を確保するために、30x30mmのものに変更しました。

計算上、寸法が横1000mm、縦500mm程度であったため、端数を切り上げてキリの良い寸法にしました。高さは600mmにして、ショッピングカートの下のコントローラーやバッテリー用スペースの250mmセクションと、買い物袋を入れるためのかごとなる上部の350mmセクションにわけてあります。

Designing the frame

ここからは、ショッピングカートフレーム全体のモデリングを行います。はじめに、Rexroth社が提供するアルミニウム押出材のSTEPファイルを、ちょうどよい長さにトリミングしました。次にこれを、コーナーブラケットとアングルブラケットを用いてすべて組み立てました。

Designing the base plate

さらに、かごの底の部分となるベースプレートエリアをモデリングしました。ショッピングカートの寸法(1000x500mm)の板に、縦方向の押出材が収まるように切り目を入れるだけであったので、簡単な作業でした。

Designing the motor mounting bracket

次にモーター取り付け用のブラケットを設計しました。ここから、モーターの出力シャフト方向を逆にできないということに気づきました。左側のモーター部分が逆方向を向いてしまうため、多少の不都合が生じます。これに対処するべく、モーターの極性を逆に接続することで、両方のモーターが同じ方向に回転するようにします。

大型モーター、ギアボックス、ベアリング、押出材などを取り扱う工業部品メーカーは大抵、設計が楽になるように、CADファイルを標準的なフォーマットで提供してくれています。Mini Motor社のように登録が必要なメーカーもありますが、Rexroth社のように登録不要なメーカーもあります。また、公式以外にもCADファイルのオンラインソースが用意されていることが多々あります。例えば、TracepartsにはRSが販売する部品のオンラインカタログがあります。

Finalised trolley design

これで、ショッピングカートを作成するのに必要な構成部品のほとんどを発注することができます。たくさんのアルミニウム押出材(12メートルの円柱のものと、6メートルの四角形のものがほとんど)も発注をかけ、一緒にコーナーブラケットとガセット、鋭利な角から保護しなおかつ見た目を良くするためのコーナーカバーも発注しました。

次のステップへ

この投稿では、Nvidia Jetson Nanoを搭載した、人物追跡機能付きショッピングカートの設計について検討してきました。その中で、機械系統、電子系統、制御系統を製作するための部品を選定し、ショッピングカートの機械設計に取り組み始めています。

Engineer of mechanical and electronic things by day, and a designer of rather amusing, rather terrible electric "vehicles" by night.
DesignSpark Electrical Logolinkedin