休眠機材を働かせる計画とスキリング
きっかけ
裏の目標
?とハサミはなんかです!
目的
- ROSのホスト機づくり
- 休眠機材活用
- ホンモノは動いているのでシミュレーションなら動くかな
ネタ
- Jetson OSに Anaconda
- 変態仕様で苦労する
- スキリング。ゆえに実力が測れればそれでヨシ
ネタ元はこのワンコ Unitree – Go 1 Pro 機器狗
Qiitaで詳しいと言えば @devemin さんの記事
正しく安全にインストールされているので安心してリファレンスとして活用できます。
まずはROSのホスト機づくり
今時18.04LTSつかうのは~
- Jetsonから足を洗っているので、軽く確認
- 昔ならこうしただろうなぁ
python 3.6はアレなので
公式を見るともう、クラゲさんでも使えるんですね。
- JetPack4.xはあきらめてUbuntu20でいくか・・・
- 今回はSDK Managerの鬼の世話にはならん
- インストール先はNVMeでね
AGXやらOrinやらバラスのは難しくないと思うので、図は略します
- 但し、書き込み先を選択するときは慎重に!ボーっとしているとeMMCに入れられちゃうので。
JetPack5xxに何なくともAnacondaインストール
余談
- もう、Jetsonは使わない人なので、モジュールではまるのを避けようと・・・
- Anacondaをインストール自体がちょっと酔狂だったもよう
- Xavierはポートが少ないのと無線ドングルが使えないというUbuntu20の面倒な点を受け継いでいるので素直に信頼と実績の優先で以下は実施しておきます。
ターミナル
sudo apt update
sudo apt upgrade -y
ターミナル
# updateに失敗する場合こちらから
sudo apt install dkms
# こちらも準備しておきます
sudo apt install curl
無線ドングル、その他モジュールを入れるための準備です。
ターミナル
sudo make dkms_install
上の下ごしらえができないとドライバが入らないです…
Arm64 機向け Anacondaインストール
ターミナル
curl -O https://repo.anaconda.com/archive/Anaconda3-2021.04-Linux-aarch64.sh
古そうですが、シェルが最新のバージョンに置き換えてインストールしていきます
- 設定例
- つかうかなぁとおもったらつかわなかったです・・・(今回)
- プロンプトに仮想環境名が出る様になったら取り合ずOK.
ターミナル
conda create -n ross
# conda activate ross
conda install numpy
conda install opencv
ROSのインストール
‐ 20.04が最後のROS1対応になってくるので、Noeticになってきますね。
‐ 上記の @devemin さんのインストール手順をほぼ踏襲していきます。
違う点
- Arm機
- Unitree SDKは3.8.6(再びGO1対応になっている)
Anacondaパワーでコンパイラ系はインストール不要
トラブルの元をpipやaptで適宜インストールしていきます。
- pyem
ターミナル
pip install empy
- ビルドでエラーが出る場合のみインストールしてください。
Unitree 環境インストール
ホームにいる前提
ターミナル
mkdir -p catkin_ws/src
cd src
git clone https://github.com/unitreerobotics/unitree_legged_sdk.git
git clone https://github.com/unitreerobotics/unitree_ros_to_real.git
# キモですね
sudo apt install liblcm-dev
cd ./unitree_legged_sdk/
mkdir build
cd build
cmake ../
make
ちょっと変えたところ
ターミナル
cp -r devel ~/catkin_ws/
cd ~/catkin_ws/
catkin build
source devel/setup.bash
この後の手順は丸写しになってしまうので参照元をご覧ください。
要注意
全部を一気にビルドしない点に注意です。
Arm64 機はunitree_rosをビルド前に下記を直しておきましょう
- unitree_ros/unitree_legged_control/CMakeLists.txtの最終行をArm仕様にしてあげます
ターミナル
target_link_libraries(unitree_legged_control ${catkin_LIBRARIES} unitree_joint_control_tool)
# 上の行を下の行の様にする
target_link_libraries(unitree_legged_control ${catkin_LIBRARIES} unitree_joint_control_tool_arm64)
ビルド完了と表示例
注意
- bashrcの編集をしてパスを通しておきます。
- GazeboとGO1
- Rvizにlaikago
振り返り
GPUありのLinux(x86系)でホストを構築した方がいいです!
- Anacondaをインストールすることでコンパイラ系のインストール蹴られなく進めた(ソースビルドしなくても良い)
- CPUがパワー不足か、やはりホストには向かないです(重い)