ページ

2018年9月1日土曜日

Ali ExpressのBest Carbonにカーボン加工を外注してみた

Project C.G.S.では、現在次期大会に向けてドローンの機体制作を行っています。

ベースには市販のフレームを使用しているのですが、限られたスペースになるべく多くのセンサを搭載するため、汎用品で対応できない部分は独自に設計した自作パーツを使用します。

負荷がかからない部分は3Dプリンタなどで成型したパーツで十分なのですが、力がかかるところ、壊れると致命的な部分は、軽くて丈夫なカーボンでパーツを作るのが理想的です。

前年までは、カーボンの切り出しはメイカースペースのCNCを使って自分たちの手で行っていたのですが、

- カーボンの材料費が高い
- エンドミルがすぐ摩耗して切れなくなるので、エンドミルの費用も馬鹿にならない
- 切子が飛ばないように切削油に沈めて加工するので、加工に手間と時間がかかる

という問題があったので、今回はカーボンの加工を外注することにしました。

作成したパーツ

外注先は(国内よりは中国の会社のほうが安いイメージがあったので)、Ali ExpressのBest CarbonにCarbon Fiber Plate CNC Cutting Serviceをお願いすることにしました。



--

ページの冒頭にも書いてあるのですが、注文方法がちょっと特殊になっています。

注文するにはAli Expressで商品をカートに入れる前に、

carbonfiber (AT) foxmail.com

にメールします。

本文には材料のカーボンの厚み、織り方、表面処理方法、発送方法を記入して、作りたいパーツの図面をdxfで添付します。

Hello BEST CARBON team,

I have looked at your "Carbon Fiber Plate CNC Cutting service" page on AliExpress.
I would like to order cutting 4 pieces of plate of attached DXF file,
using plain mat carbon plate of 2mm thickness.
I also would like to use 7 days arrival shipping method to Japan.

Could you give me an estimate of the total cost for this?

Best regards,
xxx

すると、こんな感じで返信が返ってきます。

Hi xxx ,

USD 12/pcs
4 pcs
EMS shiping - USD 20

Total USD 68

この時点で、Ali Expressのページに行くと、単価がUS $1.00 / pieceになっているので
指定された金額なるようにQuantityを入力して(この場合は68個)、Ali Expressから購入します。
※注文時に選択するShipping MethodはFree Shippingで大丈夫です

購入が済んだらメールで連絡

Hello xxx,

OK, I would like to place an order with that price.
I have purchased on AliExpress page.

Thank you.

すれば、注文から1週間ぐらいで発送してくれます。

--

EMSで発送された荷物はAli ExpressのMy OrdersからTrack Orderで追跡することができるのですが、更新が遅くてイマイチ使いにくいので、日本郵便のページにトラッキング番号を入力して調べたほうが確実です。
※中国側のトラッキング番号(EVBxxxxxxxxxCN)を入力してもちゃんと結果が出てきます。

商品はこんな感じで梱包されて届きました。


端面はちょっとバリが出ていますが、2mmの細溝も綺麗に切削できていますし、品質には満足です。


注文から到着まで2週間かかるので、自分で加工するのと比較すると少し時間はかかりますが、このような形で簡単にカーボン加工を簡単に依頼することができるので、ぜひ利用してみてはいかがでしょうか。

2018年8月6日月曜日

海外プロポ Taranis Q X7Sを日本で合法に使用する

ドローンを飛ばし始めたときからずっとプロポにはTurnigyの9XR PRO(これも海外プロポです)を使ってきたのですが、定期的に電源スイッチが固着したりして電源が入らなくなるのに悩まされていました。

先日、また9XR PROの電源が入らなくなったので、良い機会だと思い、Taranis Q X7Sを購入しました!



9XR PROの頃からファームウェアにはOpen TXを使っていてとても便利なので、それに対応したプロポの中で候補を探していました。といっても、OpenTXが対応している新しいプロポはFrskyのTaranisかHorusしかなく、その中でお手頃価格で買えるものとなると結構数が絞られてきます。その中で、磁気式のジンバルが面白そうだったのでこの機種にしました。
※ジンバル単体でも購入できるので、X7などのプロポを購入してジンバルを交換しても良かったのですが、見た目が気に入ったのでX7Sにしました

ところが、このプロポは技適を通っておらず、そのまま日本で使った場合には電波法違反になってしまいます。

※電波法違反のプロポを使用した場合、事故が発生したときにラジコン保険が下りない可能性があります

そこで、Taranis Q X7Sを日本で合法で使用するために、以下の作業を行いました。

  • アンテナの取り外し
  • 技適取得済みの外部送信モジュールを装着
  • 外部送信モジュールを使用するように設定

アンテナの取り外し


まず、バッテリと外部送信モジュール用の蓋を外したら、ネジを4つ外して裏蓋を開けます。



※詳細な分解方法はこの動画などが参考になると思います

裏蓋を開けたらアンテナの配線を外し、


アンテナを筐体から外します。



設定からInternal RFを無効にすることもできるので、アンテナを無理に外さなくても良いと思います。
※かなり固いので、もし外す場合は筐体を割らないように注意してください

ラジオペンチを2本使って、筐体ごと挟んでアンテナの根本押し込むようにすると外れやすいかもしれません。

ついでに、必要であればジンバルのフィーリングの調整も行います。Taranis Q X7Sはデフォルトではスロットルスティックを動かすとカチカチとクリック感があるので、それが不要な場合はこのネジを少し緩めます。



隣のネジで摩擦も調整できるので、好みの硬さに合わせます。

技適取得済みの外部送信モジュールを装着


配線を挟まないように裏蓋を戻したら、技適マークがついた送信機モジュールをはめ込みます。


この外部送信モジュールはWorld RCから購入したFrsky D8Tです。

JR PROPOに対応したものであれば使えると思いますが、もうあまり取り扱っている店舗はないかもしれませんね...
合法で使用する上で一番難易度が高いのが、この外部通信モジュールの入手かもしれません…

外部送信モジュールを使用するように設定


次に、メインスイッチを長押しして起動します。

これ、短く押すと一瞬だけ電源が入って落ちるように見えるので、買った直後は何が起きているのかわからず困りました。

  • 長押しで起動、長押しでシャットダウン
  • ヨーとロールのトリム内側にして短押しでファームウェア書き込みモードで起動

のようです。

プロポが起動したら、オプションボタンを短押しして、Page 2の設定から

Internal RFOFF
External RFPPM

にします。使用する外部送信モジュールによって、PPM以外のモードを選択しても良いと思います。
※External RFを有効にした時点でモジュールへの電源供給が行われるようです





この設定はモデルごとにする必要があるので、新規にモデルを作った際には忘れずに変更する必要があります。

ここまでで、Taranis Q X7Sを合法で使用するために必要な作業は終わりです。

おまけ1 - ファームウェアの更新とmicro SDのセットアップ


とりあえずファームウェアは最新のものに更新しておきます。また、micro SDカードを用意して必要なデータを書き込むと、プロポがしゃべるようになるので、そちらの設定も行います。

ファームウェアの更新はOpenTX Companionから行うので、まずは自分のOSで動作するOpenTX Companionをインストールします。

UbuntuならLaunchpadからamd64のパッケージをダウンロードしてインストール して、

companion22

で起動します。
※Write Firmwareの前に必ずRead Firmwareして、今のファームウェアのバックアップを取っておきましょう

microSDカードに書き込んで、Taranis Q X7Sの下面についているスロットに入れればOKです。

おまけ2 - FPVシミュレータでTaranis Q X7Sを使用する


Taranis Q X7Sの大きなメリットとして、USBでPCに接続するとジョイスティックとして使うことができるというものがあります。


9XR PROではこの機能がなく、今までシミュレータでプロポを使うときにはTrainer信号を変換するUSBアダプタ経由でPCに接続していたのですが、Taranis Q X7Sではその煩わしさから開放されます!

USBコントローラーでプレイできるクアドコプターのシミュレータの中で、安価で楽しめるものの筆頭にFPV Freeriderがあると思います。
FPV FreeriderでTaranis Q X7Sを使用する際には、プロポ側で設定を変更しないとController Calibrationがうまくいかないので注意が必要です。

まず、プロポ側に適当なモデルを作ったらRFをOFFにして、


カーブの設定で値が50 - 100にマップされるようなものを作ったら、


それをすべてのミキサーの出力に割り当てます。


これで、すべてのスティックの値が、50から100にマップされます。
※ミキサーをひとつずつ開いて、オフセットとウェイトを50に変更しても大丈夫です。
※詳細な設定については、この動画が詳しいです



このモデルを使用してFPV Freeriderをプレイすれば、きちんとUSB Calibrationができるようになります。FPV Freeriderで実際にFPVでプレイすると、こんな感じになります。


※残念ながら、まだ全然うまくないです…

とてもリアルでおすすめですし、カメラ画角等も自分の(実際の)機体に合わせて変更することができるので練習に役立ちます!

2018年7月26日木曜日

MavESP8266をESP-WROOM-02に焼いてPixhawkとWifiで通信する

Project C.G.S.は、MBZIRC 2020年度大会も無事に書類選考を追加しました!

2017年度大会に参加した機体ではペイロードが小さく、今より処理能力の高いボードを載せたり、重い物体を運搬したりするのは難しいので、現在Project C.G.S.では、2020年度大会用の機体を作成しています。

一般的にドローンを自作する場合には、機体を組み立てた後に、機体がうまく飛行できるようにパラメータを調整する作業が待っています。これには機体を手で持ってぐるぐる回したり、少しずつパラメータを変えながら実際に飛ばしたりする作業が必要なのですが、大きいドローンになると指示に従って機体をぐるぐる回すのも一苦労ですし、パラメータ調整のたびにいちいちUSBケーブルを接続するのは非常に面倒です。

なので、やはりパラメータの設定などは無線で通信したいものです。少し前にPX4ファミリーに加わったPixracerはなんとESP8266を使ったWifiモジュールがバンドルされており、これを使えばそのままWifiでQGCと接続することができちゃいます。また、このモジュールを接続すれば、Pixracerに限らずPixhawkなどでもWifi経由で接続することができるようになっています。

ところがここで問題がひとつ... 付属のモジュールは技適認証を受けておらず、日本国内で自由に使うことはできないのです!

そこで、この記事ではESP8266用のファームを技適認証を受けているESP-WROOM-02に書き込み、合法にWifi接続する方法を紹介します(と言っても普通に書き込むだけなのですが...)。

ファームウェアの書き込み

まずは、ESP-WROOM-02(スイッチサイエンスで扱っているピッチ変換基板に実装したもの)を書き込みモードにしてPCと接続します。接続には秋月電子のFT232RL USBシリアル変換モジュールを使いました。

ESP-WROOM-02への書き込み

ESP-WROOM-02は3.3Vで動作しますので、変換モジュールの出力が3.3Vになるようにジャンパピンを設定するのを忘れないでください。


J11-2間ショート
J2ショート

※念の為、ESP-WROOM-02に接続する前にVIOの電圧が3.3Vになっていることを確認してください

ESP-WROOM-02のピンと、変換モジュールとの結線はこちらのスライドの情報を参考に行い、ESP-WROOM-02がUART Download Modeになるように行います。

IO0をGNDにショートしています


ESP-WROOM-02AE-UE232R
3V3VIO
IO15GND
IO2VIO
IO0GND
TXRX
RXTX
GNDGND

この状態で、Githubレポジトリの手順に従ってファームウェアのビルドと書き込みを行います。
※ビルド済みバイナリをesptoolで書き込んでみたのですが、残念ながら動作しませんでした… esp12e向けにビルドしたものでないと動作しないのかもしれません

まずは


sudo pip2 install platformio


でplatformioをインストールしたら、mavesp8266のレポジトリで


platformio run -e esp12e -t upload


でファームウェアのビルドと書き込みをします。
書き込みが終わったらIO0をプルアップに変えて、

IO0をVCCにショートしています

※MavESP8266はGPIO2がGNDに落ちていると設定されているコンフィグをリセットしますので、IO2はGNDに落とさないように注意してください。

PixhawkのTELEM2に繋ぎます。

Pixhawkとの接続

このとき、PixhawkのTELEM2の電源は5Vになっているので、間にレギュレータを挟んでESP-WROOM-02に供給される電圧が3.3Vになるようにしてください。

ボーレートの設定


Pixracerの場合はESP8266用のWifi Serialは921600ボーに設定されているのでこのままで通信できますが、Pixhawkの場合は使うTELEMのボーレートを921600に変更する必要があります。

PixhawkをUSBでQGroundControlと接続し、この公式ページを参考にPARAMETERのSYS_COMPANIONの値を`ESP8266 (921600 baud, 8N1)`に変更します。
※MavESP8266側のWebUIでボーレートをPixhawk側に、合わせる方法もありますが、57600ボーだとQGCでのパラメータのグラフ表示が残念なカクカク具合になるので、こちらの方法をおすすめします。

Pixhawkの電源を入れるとESP-WROOM-02のアクセスポイント(Pixracer)が見えるので、ノートパソコンでアクセスポイントに接続し、QGroundControlを立ち上げると自動で無線で接続されます。😄

その他


今回は、


PX4Firmware v1.8.0
MavESP8266610f4be5
QGroundControlv3.3.2

で動作することを確認しました。

2018年4月24日火曜日

技術書典4で頒布した「Do It Ourselves: 社会人サークルによる自律移動ロボット開発」をBOOTHで再販開始しました

先日開催された技術書オンリーイベント 技術書典4に、社会人サークル「Project C.G.S.」として出展しました!

当日は「Do It Ourselves: 社会人サークルによる自律移動ロボット開発」という、Project C.G.S. がつくばチャレンジを始めとするロボットコンテストへの参加に向けて行ってきた、地上を走る自律移動ロボット(UGV) とドローン(UAV) の開発に関する様々な記事を集めた内容の本を頒布していました。



ところが、初参加ということもあり印刷部数を絞りすぎてしまって、入場開始早々に完売してしまいました… せっかくブースに来ていただいたのに買えなかった方には、本当に申し訳ありませんでした…

当日もアナウンスしていましたが、この度

PDF版をBOOTHにて頒布開始致しました!

ので、買い逃してしまった方は是非、BOOTHから購入をご検討ください。
Project C.G.S.では今後共、ロボットに関するホットな情報発信を続けてまいりますので、引き続きよろしくお願いいたします。

2018年4月19日木曜日

技術書オンリーイベント 技術書典4で「Do It Ourselves: 社会人サークルによる自律移動ロボット開発」を頒布します!

技術書オンリーイベント 技術書典4に社会人サークル「Project C.G.S.」として出展します!

技術書典4は、4/22の11時から、秋葉原UDX アキバ・スクエアで開催される技術書オンリーの同人誌即売会です。Project C.G.S.は「け23」にブースを構えてます。
技術書典4のサークルページはこちらにありますので、もし良かったら当日ブースに来ていただけると嬉しいです。

頒布物は「Do It Ourselves: 社会人サークルによる自律移動ロボット開発」という薄い本で、表紙はこんな感じになってます。


内容はProject C.G.S. がつくばチャレンジを始めとするロボットコンテストへの参加に向けて行ってきた、地上を走る自律移動ロボット(UGV) とドローン(UAV) の開発に関する様々な記事を集めた内容になっています。章ごとに著者が異なり、コンテストの参加録のようなものから、ハードウェア、ソフトウェアの実装に関する少し込み入った内容まで、雑多に詰め込まれたオムニバス形式になっております。


私は主に最初の導入と、「第3章 実環境で動かすTensorFlow Object Detection API」を執筆しました。第3章では、市街地を自律走行する移動ロボット(※表紙のロボットです)にTensorFlow Object Detection APIを使った物体検出機能を実装して、つくばチャレンジ 2017というロボットコンテストで実際に走行させるまでの話を紹介しています。

もしよければお手にとっていただけると嬉しいです!




2017年9月28日木曜日

Ubuntu 16.04.3 LTSでROBOTIS Dynamixel SDKが通信に失敗する

3行まとめ

  • Ubuntu 16.04.3を再インストールすると、Kernel 4.10が使用されます
  • Linux Kernel 4.10からFTDI USBシリアルドライバのデフォルトレイテンシタイマが1msから16msに変更されました
  • ROBOTIS Dynamixel SDKではシリアルドライバの設定値によらず、タイムアウトが固定値(1.x系では5ms)になっているので、通信に失敗します
--

Project C.G.S.というチーム名で、毎年自律移動ロボットコンテストつくばチャレンジに参加しています。

我々のチームでは環境の3次元マップを取得するためにTopURGというレーザーセンサを前後に振っているのですが、3年ほど前からそこの機構にRobotis Dynamixel MX-28というサーボを利用しています。

Capybara J.V. (つくばチャレンジ '16)

ところが先日、機体で使用しているUbuntuを再インストールしたところ、突然このMX-28が動かなくなるという問題が発生しました。

--

Dynamixel SDK からは

Dynamixel communication error : There is no status packet!

のようなエラーが返ってきており、どうもこれはタイムアウトが発生した際に返るエラーのようです。サーボや電気系統に問題はなく、またWindowsのツールからは正常に通信できていたので、Ubuntu側に何らかの問題があると判断しました。

このタイムアウトの値はDynamixel SDKのここで設定されており、3.x系のSDKではLATENCY_TIMER定数値をもとに設定されているようです。

USBシリアルのLatencyTimer設定値を疑い、setserialコマンドを使って

setserial /dev/ttyUSB0 low_latency

としたところ、通信エラーがなくなり、無事サーボが動くようになりました。

--

少し調べてみると、どうやらLinux Kernel 4.10で、FTDIのUSBシリアルドライバftdi_sioに、low latencyフラグを外すパッチが取り込まれていることがわかりました。

これにより、デフォルトのUSBシリアルのポーリングレートが1msから16msに変更されます。

Ubuntu 16.04.3からはLinux Kernel 4.10が使用されるので、この変更によりタイムアウトが発生するようになってしまった可能性が高そうです。

ROBOTISのgithubでもこの問題について言及されていて、udevルールに

ACTION=="add", SUBSYSTEM=="usb-serial", DRIVER=="ftdi_sio", ATTR{latency_timer}="1"

を、追加する対応が提案されています。

--

ロボット系ではUSBシリアルを使ってセンサ/アクチュエータと通信することが多いので、特にROSユーザーで心当たりのある方はudevルールへの追記を考えたほうが良いかもしれません…

--

追記 20170929

どうも、ROBOTIS Dynamixel SDKにLatency Timer関係でUbuntu 16.04.2の時も修正が入っているようですね…
我々は1.x系の古いSDKを使っていたので、こちらの方に引っかかっていたのかもしれません。いずれにせよudevルールの修正で解決できると思います。



2017年5月20日土曜日

かっこいいU199ドローンを作ってみた

先日のアブダビでの事故で操縦技術の不足を痛感したので、ドローンの操縦技術を磨かねばと思いました。
で、どうせ練習するならドローンレース参戦に向けてやってみようとなったわけです。

日本で屋外でドローンを飛ばそうと思ったときには、改正航空法の規制を満たす必要があります。改正航空法では飛行禁止区域などの取り決めに加えて、目視外飛行(ゴーグルを覗いて操縦するなど)にも申請と許可が必要であると定められています(参考ページ)。

ただし、200g未満の機体に関してはこの制約を受けず、事前申請無しで目視外飛行を行うことができます。
※もちろん法律の規制を受けないからと言って、好き放題飛ばしてよいわけではありません
※土地の権利者が飛行を禁止していない区域で、周囲の安全に十分に配慮して飛行する必要があります。

この法律をうけて、日本では重量を200g未満に抑えたU199というカテゴリが誕生しました。

--

早速ですが、今回組み立てたU199はこんな感じになりました。頭が光ってます。
実はU199を組み立てるのは2機目で、今回はFPVの画質を頑張る方向で組んでみました。

組み立てたU199の写真


構成は以下の通りです。

Frame Realacc Belix-3 130MM Banggood
FC HGLRC F4 FLAME Banggood
ESC Favourite FVT LittleBee-Spring 6A Banggood
Motor DYS BX1306 3100kv Banggood
Prop Gemfan Bull Nose 3030 Hobbyking
RX FD800 Tiny FrSky receiver Banggood
Camera RunCam Owl Plus Banggood
Battery Turnigy BOLT V2 500mAh 3S Hobbyking

この構成でeCalcでシミュレーションするとこんな感じです。

eCalc シミュレーション結果


フルスロットルのThrust-Weightは2:1なんでレース用って感じではないですけど、飛ばしやすいパラメータだと思います。カメラとVTXを軽くすればESCを変えて4sにできそうなので、慣れてきたら変えてみるかもしれません。

--

フレームは130クラスではかなり軽い方だと思います。
組み立てには付属のネジは全く使わず、超低頭のM3ネジと樹脂スペーサを使っています。

FCが面白くて、30mm規格のボードにPDB、BEC、OSDが一緒に載ってます。四隅にESC用の電源と信号が出ていて、使い勝手がいいですね。

FCと配線

このFCにXT30コネクタとブザーを直付けして、四隅からESCの配線、RXとカメラとVTXとLEDはコネクタを生やしてます。
※この線はもっと細くても良いかもしれないですね...

ESCにはDSHOT600に対応したBLHeli_Sが焼かれたものを使っています。Betaflightと組み合わせて使うと、FC経由でESCの設定が変更できるので非常にありがたいです。組み立て時にはひと通りESCとモーターを配線した後に回してみて、逆に回ったやつのESCをBLHeli Configuratorを使って逆転しています。

で、この上に、RX、カメラ、VTX、LEDを取り付けたものがくっつきます。

完成したU199

LEDについてなのですが、CleanFlightやBetaFlightはWS2812BというシリアルLEDに対応しています。なるべく小さいものを探していたところ、秋月電子にちょうどいいボード(マイコン内蔵RGBLEDモジュール)があったので購入してみたのですが、そのまま繋いだだけでは全く点灯しませんでした...

抵抗を外した秋月電子のWS2812B基板

どうもLEDのDINの前に入っている100Ω抵抗が悪さをしているようなので、ハンダごてで剥がしてジャンパを繋いだところ無事に点灯するようになりました。
やっぱりLEDがあるとエラーやARM/DISARMの状態が視覚的にわかるので良いですね。

上面と背面のところのパーツは、3Dプリンタを使ってABSで作りました。(STLファイル

3Dプリンタでつくったマウンタ

LED、RX、VTXを載せた状態

ネジ穴のところにはM3インサート(HSB-304530)をハンダごてで押し込んでいます。3Dプリンタで作ったものにネジどめするときはだいたいこんな感じにしてるんですが、まぁまぁしっかり固定出来るのでおすすめです。

また、線材をはんだ付けした部分やコネクタの根本はBONDICで固めています。エポみたいに練らなくて良いし、4秒でカチカチに硬化するので、めっちゃ便利でおすすめです。

めっちゃ便利なBONDIC

--

最後にDVRで撮った初飛行動画を貼っておきます。



特に障害物もないところをぐるぐる回ってるだけなので、あんまり面白みもないですが...
今度はどこかのコースにお邪魔して、ゲートくぐりとかしたいですね。

P.S. 一緒に飛ばしてくれる人募集中です!