【Raspberry Pi ロボットキット】Freenove Big Hexapodレビュー

【Raspberry Pi ロボットキット】Freenove Big Hexapodレビュー

ついに買いました。すべての始まりはこのツイートでした。

まさに一目ぼれでした。「気持ち悪さ」と「かわいさ」が共存する不思議な魅力のロボット。この動きが脳裏から離れることはありませんでした。

そして僕はAmazonで発見してしまったのです。

投稿者さんのロボットとは同じではありませんが、これなら同じ動きができるはず!そして6脚ロボットを迎え入れることに。

今回はラズベリーパイで操作するFreenove Big Hexapodをレビューします。

こちらはメーカー公式の紹介動画です。

到着から開封まで

Big Hexapodを販売しているFreenoveは中国のメーカーですが、Amazon発送なので2日後に到着しました。

箱は意外とコンパクトですがズッシリと重いです。

開封

まず箱を開くと2枚の紙が入っています。1枚はチュートリアル(取説)とサポートのURL案内で、もう1枚は校正用シートです。校正用シートは脚の角度の調整時に使用します。

ネジなどは小分けされています。

脚用のサーボモーターは18個入っています。

ボディパーツは保護シールが付いているので、シールをはがす作業が必要です。部品数が多いので面倒に感じました。所要時間は50分。地道な作業です。

ラズパイは別売り

Big Hexapodはラズベリーパイという小型コンピュータをコントローラーとして使用します。

ラズベリーパイはキットに付属していません。僕は手持ちのRaspberry Pi 4を使用しました。搭載できるラズパイの種類は以下の通りです。

  • Raspberry Pi 4B
  • Raspberry Pi 3B
  • Raspberry Pi 3B+
  • Raspberry Pi 3A

バッテリー(電池)は別売り

Big Hexapodは18650と呼ばれるサイズのリチウムイオン電池を4本使用します。キットには含まれていないため別途購入する必要があります。写真で見ると単3電池のように見えますが、サイズも電圧も全く別物です。

メーカーが推奨するバッテリーは保護回路無しのタイプですが、安全面を考慮して以下の保護回路付きのものを選びました。

充電器も別途購入が必要です。

バッテリー選びは電流に注意

保護回路付きのものは電流が制限されている製品もあります。僕は最初、以下の電池を購入しました。しかし電流が足りず、モーターを動かすことができませんでした。

保護回路付き電池は長い

保護回路付き電池は保護回路なしと比べて5mm程度長くなります。この5mmは保護回路部分の長さです。このため電池ホルダーの端子金具をペンチなどで押しつぶして、電池の長さを確保する必要があります

取説はダウンロードする

紙面の取説は入っておらず、案内に表記されたURLからzipファイルをダウンロードして使用します。チュートリアル(取説)のPDFファイルは英語ですが、Google翻訳を使って日本語に変換できます。変換する方法はこちらを参考にしてください。注意点は翻訳するとレイアウトが崩れてわかりにくい部分ができてしまうことです。

そぞら
そぞら

僕は英語版と日本語版の取説を見比べながら、作業を進めました。

ソフトウェアの設定

まずはラズベリーパイでロボットを動かすためのソフトウェア使える状態にします。チュートリアルの順番通りに設定を進めていけば問題ありませんが、ラズベリーパイに慣れてない方は、少し難しく感じるかもしれません。

ラズベリーパイのOSは「Raspberry Pi OS 32-bit Full」版が推奨されています。僕は再インストールするのが面倒だったので、Raspberry Pi OS(32-bit)のFullではない通常版を使いました。

コードのダウンロード

ターミナルで以下のコマンドを入力してコード(プログラム)をまとめてダウンロードします。

git clone https://github.com/Freenove/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi.git

必要なライブラリのインストール

セットアップ用のプログラムを実行すると、必要なライブラリを自動でインストールしてくれます。

インストールが成功したら、ラズベリーパイを再起動します。これでソフトウェアの準備は完了です。

ロボットの組み立て

ロボットの組み立てには約5時間かかりました。部品が多いので時間はかかりますが、特に難しいと感じることはありませんでした。

動画を見ながら組み立てると、より分かりやすいです。

足回りのパーツです。左側と右側でサーボモーターの向きを間違えやすいので要注意です。

ラズパイをセットします。

サーボモーター接続

ラズパイを起動して、プログラムを実行した状態でサーボの配線をします。

コネクターを接続すると、モーターが初期開度まで動きます。

完成

組み立てが完了しました。存在感抜群です。かっこいい!

ロボットを動かす

組み立てが完成したら、いよいよロボットを動かしていきます。

ロボットはパソコンから操作する

ロボットはパソコンからWi-Fi経由で操作します。接続イメージは以下の通りです。

パソコンから操作するためのソフト(クライアントソフト)はチュートリアルのフォルダに同封されています。Windows用ソフトはダブルクリックするだけで簡単に起動できます。Macの場合はPythonの環境構築が必要です。

チェックポイント

androidとiOSのアプリも用意されています。無料アプリをダウンロードすれば、スマホからのロボット操作も可能です

スマホアプリの操作画面
スマホアプリの操作画面

アプリの操作画面にはカメラの映像が表示されるので、別の部屋からロボットを遠隔操作することも可能です。

校正(キャリブレーション)

ロボットを動かす前に6本の脚の角度を正確に調整する必要があります。この調整作業のことを校正(キャリブレーション)と呼びます。校正はロボットの動作を安定させるために重要な作業です。

ロボットを歩かせる

ロボットを移動させるときは、オペレーションボードのポイントをマウスでドラッグします。

ロボットが立ち上がり、指定した方向に歩き始めます。

6脚ロボットの独特な歩き方がシビレます。買ってよかった。そう思えた瞬間です。

歩くだけでなく、体をねじるような動きもできます。

超音波距離センサー

正面の目の部分は超音波距離センサーが付いています。超音波距離センサーは超音波を使ってセンサー前面から物体までのまでの距離を測定できます。

プログラミングが得意な方は、「障害物を避けながらロボットを自動で動かす」といったアレンジもおすすめです。

カメラ映像を映す

ロボットの口の部分にカメラが付いています。カメラ映像を見ながらロボットを歩かせることも可能です。

サポートが親切

取説(チュートリアル)のいたるところに記載されている「不明な点があったらお問い合わせください」という表示。プログラムの実行方法を間違えて、エラーが出ていたのでメールで問い合わせてみました。

中国のメーカーですが、問い合わせは日本語で問題ありません。メール送信後、1時間で返信がありました。内容は以下の通りです。

返信内容は英語ですが、翻訳機能を使えば十分理解できました。この他にも何度かメーカーとやりとりをしていますが、平日の昼間ならすぐに返信してくれます。

アレンジ次第で楽しみ方は無限大

付属のソフトから動かすだけでも、ロボットを楽しさを存分に満喫できます。しかしラズパイ愛好家としては独自の遊び方を追求したくなるものです。そこで僕が試してみた遊び方を紹介します。

SwitchのJoy-Conでロボットを動かす

ラズベリーパイはBluetoothの信号を受信できます。このため、任天堂Switchのコントローラー「Joy-Con」の信号も読み取れます。ということでJoy-Conからロボットを動かせるように改造してみました。

自作したPythonのプログラムを載せておきます。

import pygame
from pygame.locals import *
import time
import logging
from Control import *

def main() :
    pygame.init()
    joys = pygame.joystick.Joystick(0)
    joys.init()
    c=Control()
    status = 0
    while True:
        #前進ループ
        if status == 1:
            if event.value==(0,0):
                print("stop")
                time.sleep(0.2)
                c.relax(1)
                status = 0
                continue
            print("前進")
            data=['CMD_MOVE', '1', '0', '35', '10', '0']
            c.run(data)
            time.sleep(0.1)
        #後退ループ
        if status == -1:
            if event.value==(0,0):
                print("stop")
                time.sleep(0.2)
                c.relax(1)
                status = 0
                continue
            print("後退")
            data=['CMD_MOVE', '2', '0', '-35', '10', '10']
            c.run(data)
            time.sleep(0.1)    
        #右ループ
        if status == 2:
            if event.value==(0,0):
                print("stop")
                time.sleep(0.1)
                c.relax(1)
                status = 0
                continue
            print("右")
            data=['CMD_MOVE', '1', '35', '0', '10', '0']
            c.run(data)
            time.sleep(0.1)    
        #左ループ    
        if status == 3:
            if event.value==(0,0):
                print("stop")
                time.sleep(0.1)
                c.relax(1)
                status = 0
                continue
            print("左")
            data=['CMD_MOVE', '1', '-35', '0', '10', '0']
            c.run(data)
            time.sleep(0.1)
            
        events = pygame.event.get()    
        for event in events:
                if event.type == pygame.JOYHATMOTION:
                    logging.debug('Joy-con Stick event catched : ',event)
                    print(event.value)
                    # 前進
                    if event.value==(1,0):
                        status = 1
                    #後退
                    if event.value==(-1,0):
                        status = -1    
                    #右
                    if event.value==(0,-1):
                        status = 2    
                    #左
                    if event.value==(0,1):
                        status = 3    
                        
        time.sleep(0.1)
        
if __name__ == '__main__':
    pygame.joystick.init()
    try:
        main()
    except pygame.error:
        print('error has occured')        

実際に動かしている様子は以下のツイートをご覧ください。

ロボットに荷物を運んでもらう

ロボット掃除機や車を作るロボットなど、ロボットといえば人の仕事をサポートしてくれるのが一般的です。そこでロボットに荷物を運んでもらうことにしました。

ロボットの上部は平面の部分があるものの、荷物を載せるには面積が狭いです。荷物を落とさずに運ぶには適度な大きさの荷台が必要。ということで3Dプリンターを使って荷台(白いパーツ)を作成しました

加速度センサーで動きを検知

ロボットには加速度センサーが搭載されています。加速度センサーの信号を読み取れば、ロボットの動きを検知できます。

上のツイートでは加速度センサーの数値が変化したときに足を動かすプログラムを組んでいます。

まとめ 買ってよかった

ラズパイユーザーにとってロボット制作は憧れであり、究極といえます。完成度の高いロボットを手軽に作成できるのがキットの魅力です。強烈な個性を放つ6脚ロボットの動きは、ずっと見ていても飽きません。

そぞら
そぞら

少し高い買い物でしたが大満足です。

今後もいろいろなアレンジをして、自分だけの楽しみ方を発掘していきます。

コメントを残す

メールアドレスが公開されることはありません。