
Jetson Nanoを使うのは、この程度のハードでも動くのか?ということを試すくらいの意味です。
Rvizでの動きのシミュレーションは問題なかったですが、Gazeboは厳しかったです。
本来はもっとパワーのあるPCでやりましょう。
ROSのRvizやGazeboの中で四足歩行ロボットを動かしてみましょう。
ここではRviz内のロボットをキーボードやPS4コントローラで制御してみます。
四つ足状のもの(Quadruped)を制御するROSパッケージとしてはCHAMPを使います。
ロボットのモデルはchvmp/robotsをインストールすれば以下のようなロボットを試せます(SpotやMini Pupperも用意されています)。
Anybotics’ ANYmal B
Anybotics’ ANYmal C
Boston Dynamic’s Spot
Unitree Robotics’ Aliengo
Unitree Robotics’ Go1
MIT Mini Cheetah
OpenDog V2
Open Quadruped
Stochlite
MangDang’s Mini Pupper
Stanford Pupper
その他
注:モジュールが不足していると動かないモデルもあります
独自に四つ足状のものを動かしたい場合は、ご自分でモデルと(SDFではなく)URDFファイルを準備して、CHAMPのsetup assistantを使って取り込めばいいようです。
キーボードから制御する場合はteleop_twist_keyboardを使いますが、PS4コントローラのようなJoystickデバイスも使いたい場合はCHAMPのchamp_teleopを使いましょう。
CHAMPはkinetic、melodic、noeticに対応しています。
ここではmelodicを使ってみます。
事前準備
Jetson Nano にROS (Melodic) をインストール
OSイメージはJetpack 4.6 (Ubuntu 18.04 LTS) を使います。
以下をご参照
Jetson Nano にROS1 (Melodic) をインストール(メモ)
CHAMPインストール
CHAMPを参照
事前準備のとおりだとすれば、ユーザー(jetson)ホームにワークスペースがあるので以下のようになります。
teleop_twist_keyboardインストール
Rvizでロボットをキーボード制御します。
ロボットモデルを使ってみる
chvmp/robotsをインストールします。
事前準備のとおりのディレクトリ構成だとします。
クローンしてインストールおきます。
ビルド
どのロボットを使うかは以下のディレクトリにあるconfigフォルダーを参照
~/catkin_ws/src/robots/configs
roslaunch <configフォルダー名> bringup.launch rviz:=true
Mini Pupper を使ってみます。
別ターミナルで teleop_twist_keyboardを起動
制御例(ターミナルウィンドウをアクティブにして、キーを長押し)
i(I):前進
、(<):バック
o、u:半径を取って旋回
j、l:その場で旋回
J、L:(カニみたいな)横歩き
O、U:斜めに移動
など
ちなみにk(K)キーは何もしないようです。
キーボード制御だとこんな動きになります。
キーボード制御は以下のコマンドでも実行できます。
このコマンドはオプションを追加して、PS4コントローラで制御する時に使います。
PS4コントローラで制御
Jetson Nano にコントローラ用ライブラリをインストール
以下参照
Mini Pupper をRvizで起動しておきます。
ジョイスティックデバイスを使うので、別ターミナルで以下を実行
キーボード制御の場合はターミナルウィンドウをアクティブにする必要がありましたが、PS4コントローラはBluetooth制御なので不要です。
ボタン等のアサイン
L2:ロボットがこけました。これを回復する方法が分かりません。使わない方がいい?
R2:立ち上がります(上を向くに近い?)。
A:直進
B:その場で左旋回
C:バック
D:その場で右旋回
E:ダウン(おすわり、というより前かがみ)
任意の方向にスムーズに移動させるには、かなり微妙なスティック操作が必要になります、難しいです。
Next
Gazebo でMapping やNavigation をやってみます。
Appendix
キーアサイン
Leave a Reply