Ubuntu 20.04 + ROS Noetic

はじめに

新製品のテスト環境を用意することで、Ubuntu 20.04 + ROS Noeticを「Raspberry 3 Model B v1.2 (2015 Made in Japan)」にインストールしてみた。2015年製のRaspberry Pi旧型機種なのに、テストに都合が良く、インストールの手順をメモしておく。

Ubuntu 20.04

Raspberry Pi向けUbuntu Server 20.04.2 LTSをダウンロードしてSDに書き込む。

$xz -dv ubuntu-20.04.2-preinstalled-server-arm64+raspi.img.xz
$sudo dd if=ubuntu-20.04.2-preinstalled-server-arm64+raspi.img of=/dev/mmcblk0 status=progress

SDカードを抜き差しすると、

$df -k

SDカードをRaspberry Piに挿すと、ubuntu:ubuntuでログインする。

$ip -a
$sudo nano /etc/network/interfaces
$auto eth0
$iface eth0 inet dhcp
$sudo ifup eth0
$sudo apt-get update
$sudo apt-get upgrade

ROS Noetic

$sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$sudo apt update
$sudo apt install ros-noetic-desktop-full
$echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$source ~/.bashrc
$sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
$sudo rosdep init
$rosdep update
$mkdir -p ~/catkin_ws/src
$cd ~/catkin_ws/
$catkin_make
$echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$source ~/.bashrc
$roscore

参考資料

Install Ubuntu on a Raspberry Pi
Ubuntu install of ROS Noetic

0

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

コマンドラインでリポジトリ作成

はじめに

Windows Github APPより、ときにUBUNTUでリポジトリをプッシュしたほうが都合がよいので、至って簡単にできたのでメモしておく。

プッシュ手順

1. https://github.com/github_idでNEWリポジトリを新規作成しておく。

2. コマンドラインで新しいリポジトリをプッシュする。

cd reposity_folder
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/github_id/reposity_name.git
git push -u origin main

続いて、github_id、passwordを入力しておくと、完成となる。

もしgitファイルはローカルに存在して、initとaddが省いてコマンドラインから既存のリポジトリをプッシュして良い。

cd reposity_folder
git remote add origin https://github.com/github_id/reposity_name.git
git branch -M main
git push -u origin main

続いて、github_id、passwordを入力しておくと、完成となる。

以上

1+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

9軸IMUセンサ 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応

V2.5 NEW主な変更点

【V2.4】令和5年3月にリリース済み
較正モードの追加により、ジャイロスコープ、加速度センサ、地磁気センサの初期バイアスは出荷時の測定のみならず、ユーザー様のもとでも測定することはできる。 ※ ユーザー様のお手元にある旧バージョン製品のファームウェアのバージョンアップは、ユーザー様のもとで実施可能なので、詳細については、別途順次ご案内する。

【V2.5】令和5年12月にリリース済み
TDK Smart Motion DMPコードリビジョンに伴うファームウェアのアップデート、ROSパッケージ更新なし。
※ ユーザー様のお手元にある旧バージョン製品のファームウェアのバージョンアップは、ユーザー様のもとで実施可能なので、令和5年12月末までご案内済み。

はじめに

9軸IMU(型番hayate_imu)は、コロナ禍の中で開発した新商品、令和3年3月まで開発~製造、令和3年4月上旬の出荷と予定して、皆さんの学術研究にお役に立てるようと願って、どうぞご検討ご利用のほど宜しくお願い申し上げます。

製品紹介

9軸センサhayate imu、低消費電力プロセッサーCortexM0+、TDK MPU-9250後継機種である、1.71V低電圧で動作可能なICM-20948使用、6軸/9軸融合クォータニオン(四元数)はFPGA on chip(DMP3)から低遅延出力、別途ソフトでフュージョン必要なし、最大出力レート225Hz、同時に加速度(アクセル)3軸データ225Hz、角速度(ジャイロ)3軸データ225Hz、地磁気(コンパス)3軸データ70Hzまで出力可能、補正済み、ROS対応。ロボット、ドローンなど低遅延が必要とされる科学研究、電子機械の検証試作ヘの活用が期待される。

主な仕様

・ 型番 hayate_imu rev.C 6軸フュージョン or ver.B 9軸フュージョン切替可能
・ 内蔵チップ Cortex-M0+、TDK Invensense ICM-20948(9軸)実装 ※1
・ 外部接続 USB Type-Cコネクタ、USB +5V給電 ※2 ※3
・ 最大出力レート ※4
  - 6軸フュージョン or 9軸フュージョン回転ベクトル四元数 225Hz
  - 加速度(アクセル)3軸センサ  225Hz
  - 角速度(ジャイロ)3軸センサ  225Hz
  - 地磁気(コンパス)3軸センサ  70Hz

・ 測定レンジ
  - 加速度(アクセル)センサ  ±16g
  - 角速度(ジャイロ)センサ  ±2000dps
  - 地磁気(コンパス)センサ  ±4900µT

・ 消費電力 50mW以下(環境温度21℃の実測値)
・ 寸法 30mm × 31.4mm × 4.8mm(突起物含む)
・ 重量 4g以下
・ 取付穴 M3x4、隣り合う穴の中心間距離24.4mm

※1 内蔵Cortex-M0+とICM-20948間インターフェースはSPI(4Mbps)使用、加速度センサ(消耗)、角速度センサ(温度、ドリフト)、地磁気センサ(磁気変動)にダイナミック補正。
※2 USB対向装置OS環境 Ubuntu 16.04以降推奨。
※3 USB対向装置ROS環境 Kinetic以降推奨。
※4 最大出力レートはhayate imuの実力値、IMU対向装置(USB接続先)での実効値はその装置のリソース(CPUクロック周波数、メモリ容量・スピード)に関わる。

デモ情報

hayate_imu ROSパッケージ | Githubリポジトリ

9軸IMUセンサ ICM-20948内蔵 6軸/9軸シュージョン 出力レート225Hz 低遅延 USB出力 ROS対応 | YouTube

9dof_hayate_imu_youtube
9dof_hayate_imu_youtube

販売情報

【製品名称】hayate_imu rev.C 6軸フュージョン or ver.B 9軸フュージョン
【開発会社】ROBOT翔(株式会社翔雲)
【発売時期】令和3年4月上旬頃
【取扱店舗】9軸IMUセンサ 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応 | ROBOT翔

後継機種

9軸センサーICM-42688+MMC5983 6軸&9軸回転ベクトル&3軸オイラー角 MAX1000Hz同時出力 ROS/ROS2対応 USB接続

参考資料

Migrating from MPU-9250 to ICM-20948-InvenSense
http://wiki.ros.org/ja/9dof_hayate_imu

関連記事

エンコーダ付きDCモータPID制御の実験-hayte_imu応用例
9軸IMUセンサ ICM-20948をロボットに組み込もう
オイラー角~ジンバルロック~クォータニオン
ROS・Unity・ロボット・ドローン姿勢制御に関わるクォータニオン

2+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

SAMDへファームウェアを書き込む

はじめに

Micrpchip SAMDシリーズMCUへUSB(Windows CMDプロンプトまたは、Ubuntu ターミナル)/J-Link(Micochip Studio)経由でサードパティツールbossacを利用して、ファームウェアの書き込みの例を以下に記す。※USBポート番号とBIN/HEXファイルのパスに実際に使用中のものを入れ替える。

bossacインストール

Arduino IDE ツール→ボード→ボードマネージャ→ボード検索(ボード名を検索ボックスに入れる)→インストールの順で、bossacをインストールしておく。

Ubuntuターミナルから

sudo ~/snap/arduino/50/.arduino15/packages/arduino/tools/bossac/1.7.0-arduino3/bossac -i -d --port=ttyACM0 -U true -i -e -w -v path_to_sample.bin -R 

関連して、USBポートに関わるコマンドは以下のとおり。

lsb -l /dev/ttyACM0
sudo chmod 777 /dev/ttyACM0
sudo adduser $USER dialout

Windows CMDプロンプトから

C:\Users\user\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0-arduino3/bossac.exe -i -d --port=COM5 -U true -i -e -w -v path_to_sample.bin -R 

Microchip Studioから

Microchip Studio立ち上げ → J-Link接続 → Device Programing → Fuses → Memoriesの順に書き込んでいく。

amtel_studio_bin_fuses
amtel_studio_bin_fuses

amtel_studio_bin_upload
amtel_studio_bin_upload

参考情報

Use verbose output in the Arduino IDE
bossac@github/shumatech

1+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

PCBAをAllpcbに発注してみた

概況

テスト用サンプルを作成することで、品質かねてコストの面から海外PCB生産を試してみたいと思ったので、旧正月休まず営業と宣伝していたAllpcb(Jiepei、捷配)に依頼した。今回はPCBのみならず、試しに部品調達、実装も頼むことにした。

allpcbにpcbaを発注してみた
allpcbにpcbaを発注してみた

ミッション

PCBサイズ5cm x 5cm+、かつMOQが5枚+のハードルから、PCB 5枚大きいサイズPCB 5枚(6cm x 6cm)、小さいサイズPCB 20枚(3cm x 3cm)、面付2枚x2枚、つまり大きいサイズPCBに小さいサイズPCBが4枚入るので、大PCB 5枚=小PCB 20枚と注文した。また、小さいサイズPCB 4枚に部品調達に実装も依頼した。Allpcbが一旦図面、部品調達確認を終えたものの、のち、Allpcb営業から面付のVスロット加工は8cm x 8cm+にしないとできないと、Vスロットの代わりに、0.5mmの穴開けをすると提案した。Allpcb営業曰く回路と外観に影響なしと言い切ったので、今回限り見栄えを犠牲するかもしれないことを覚悟してGo aheadと穴あけ提案を承認した。

これまでの流れ

2月10日にAllpcb営業にWEBメッセージを送って、ユーザ登録を済ませてGerb&BOMファイルをUpload、2月12日旧正月を挟んで、2月19日にAllpcb営業が確認完了、3月2日までに作成完了と伝えて、2月19日にクレジットでお支払いを済ませて、いよいよ生産をスタートさせることに。これで、旧正月を挟んだとはいえ、ほとんど毎日メッセージかメールの往来で生産に必要な図面確認してもらって9日間もかかった。料金は、166.56USDと表示して、実際の支払い+5USD(3%)、カード会社の手数料だろうか。DHL送料は28USDとの見積もりで、クーポン30USDで免除となった。残りのクーポン2USDが破棄か行方不明。

PCBA工程

Allpcb営業が作成したスケジュールは上記添付画像のとおり。

Parts

5日(2月19日~2月25日)、冗長分含む部品代75.80USD。すべての部品の数がPCB図面必要数以上に調達したようで、生産時のムダが発生した際に必要だそうだ。最後余った分を完成品とともに必ず送るように要望した。

PCB

5日(2月19日~2月25日)、製造費用17.00USD。

SMT

2日(2月26日?~2月27日?)、実装費用70.69USD、開始、完成時間がよく分からない。

オーダー~届くまで

今回PCBA生産依頼したものが届くまでの進捗を以下のとおり記録しておくので、ご参考にしてください。

・2月10日(水) 見積依頼、注文オーダー、2月12日(金)旧正月、2月15日(月)旧正月連休明け

→2月19日(金) やっとAllpcb技術が確認完了、2月25日にPCB完了、3月2日に発送の予定が知らせたので、支払い済ませた

→2月25日(木) PCB予定完了日、完了せず、Allpcbに連絡して返事なし

→2月26日(金) 返事なし

→2月27日(土) 再度連絡、2月25日にPCB完了予定だったが、完了せず、部品到着済み、SMT未着手と返事くれた。予定日3月2日の出荷に間に合うか、遅れるならいつ送るか不安、やっと19時19分にPCB Packing完了

→2月28日(日) PCBAに入ったらしい、予定の3月2日出荷に間に合いそう

→3月2日(火) Allpcb営業に本日出荷可能かと確かめると、本日出荷できない、いつ出荷するかわからないと返事してくれた。予定日出荷不能のことを事前予告なし、いきなり出荷しないとの事態になった。再度遅延の理由を聞いたところ、注文が立て込んで生産が追い付かない状況?との回答だった。予定とおりに出荷するようと要望して工場が調整した結果、日暮れ時今夜DHL発送可能との回答あった。

allpcb-message
allpcb-message

→3月3日(水) DHL画面で荷物を検索したところ、Allpcbが荷物データを作成したが、DHLへの引渡しは完了してないと。やはり宣言通りに3月2日(火)に出荷できなかった。クレームを出して早く出荷するよう求めた。13時すぎDHL集荷した。

allpcb_dhl
allpcb_dhl

→3月5日(金) DHL配達予定日。

→3月6日(土) 予定日より1日遅れて、届いた。関税&DHL通関手数料→1900円、制作総額→およそ2万円。早速PCBA=4枚、動作確認していずれも設計通りに動いたので主な目標が達成したとの判断。ステンシルの添付を忘れたみたいなので、別途送付するようと要望した。

pcba_動作確認
pcba_動作確認

→3月8日(月) Allpcb営業はステンシルが工場の判断で破棄したと返事、おかしいと感じた。情報セキュリティへ不安が残る。

結び

注文~届くまでほぼ1ヶ月経った。品質に不安があったが、幸いに動作確認済みなので、今回の制作が目標達成とした。反省として、PCBAよりPCBを発注したほうが良いことが分かった。また海外配送のほうがDHLでも3~4日かかるので、早く作りたいのであれば、国内へ発注したほうが良い。なお、Allpcbの場合、本社と営業は杭州市におき、工場は安徽省のどこかにあるか、外注したためか、キャッチフレーズに書いたように「世界最速生産」は、残念ながら実力を見せられなかった。PCBAの場合、部品が揃わないと長い時間かかるため、国内へ発注か、部品を調達して自社で実装したほうが良いだろう。良いところとしては、価格と、営業は平日、休日にも関わらず連絡すると返事してくれた。日本製含む部品の価格は、中国現地で調達したほうが圧倒的に安い。もちろん正規ルートから購入するのが前提。恐らくほとんどの部品は東南アジアで製造されて、まして大量購買による単価の引き下げが当然なことだ。ステンシルを送ったらお客がSMTを頼まないとか、送料はお客が払うから高いほうを選ぶとか考え方がおかしい、嘘やんと思われた時に大人の辛抱が必要でまだ進化の余地が多々あると感じさせられた。この経験を生かして、これからは評判のよいJLCPCBに発注することに。

関連記事

PCBをJLCPCBに発注してみた

2+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア