犬ロボ Unitree Go1 の SDK & ROS パッケージ
現在、インストールはサクッといけます。
実機をスクリプトで動かしましょう♪
(2022/11/30 本日時点の v3.8.4 aliengo 用 ver ではなく v3.8.0 Go1 対応 ver を使うこ必要があることについてコメント頂きましたので、本文も一部修正)
https://qiita.com/devemin/items/1708176248a1928f3b88#comment-c7eb8f273e1798cc3b6a
環境
Ubuntu 20.04 (64bit), PC
ROS Noetic インストール済
(ラズパイや Jetson でもいけるはず)
Unitree Go1
(スクリプトで動かせるのは EDU モデル以上のはず、私は pro モデルですけどね・・・ 文末参照)
インストールする SDK バージョン
- unitree_legged_sdk v3.8.0
- unitree_ros_to_real v3.8.0
- unitree_ros v??? (2022/11/7 時点)
インストールコマンド
sudo apt install libboost-all-dev cmake g++
cd ~/catkin_ws/src
git clone -b v3.8.0 https://github.com/unitreerobotics/unitree_legged_sdk.git
#最近更新された v3.8.4 はaliengo ロボット用のため、v3.8.0 指定
git clone https://github.com/unitreerobotics/unitree_ros_to_real.git
#lcm のインストール (2022/11/30 コメント頂きました)
sudo apt install liblcm-dev
cd ./unitree_legged_sdk/
mkdir build
cd build
cmake ../
make -j4
cd ~/catkin_ws/
source devel/setup.bash
unitree_ros_to_real/unitree_legged_real/CMakeLists.txt の修正が必要
#これは環境により?必要ではなかった方も(2022/11/30 コメント頂きました)
gedit ./src/unitree_ros_to_real/unitree_legged_real/CMakeLists.txt &
21, 30 行目を修正 (legged_sdk の場所に相対パス合わせる)
# 21行目
- link_directories(${CMAKE_SOURCE_DIR}/unitree_legged_sdk/lib/cpp/${ARCH})
+ link_directories(${CMAKE_SOURCE_DIR}/../../unitree_legged_sdk/lib/cpp/${ARCH})
# 30行目
- ${CMAKE_SOURCE_DIR}/unitree_legged_sdk/include
+ ${CMAKE_SOURCE_DIR}/../../unitree_legged_sdk/include
引き続きビルド
cd ~/catkin_ws/
catkin build
sudo apt-get install ros-noetic-controller-interface ros-noetic-gazebo-ros-control ros-noetic-joint-state-controller ros-noetic-effort-controllers ros-noetic-joint-trajectory-controller
cd src
git clone https://github.com/unitreerobotics/unitree_ros.git
cd ..
catkin build
source devel/setup.bash
以上!
実行例
roslaunch laikago_description laikago_rviz.launch
rosrun unitree_controller unitree_move_kinetic pic.twitter.com/u0bJUVUwXq
— でべ (@devemin) November 7, 2022
roslaunch unitree_gazebo normal.launch rname:=go1 wname:=earth
rosrun unitree_controller unitree_servo
rosrun unitree_controller unitree_external_force
rosrun unitree_controller unitree_move_kinetic
メモ
- unitree_legged_sdk/example_py/ が Python で動かすサンプル
- unitree_legged_sdk を Go1 pro モデルで動かすにはこちらの issue 参照
- https://github.com/unitreerobotics/unitree_legged_sdk/issues/24#issuecomment-1088250949
- (C++, Python とも cmd.levelFlag = 0 の追記で、Go1 pro モデルでもHigh-level SDK は動かせちゃったという裏技的なもの (low-level は現状動かず) なお、今後購入される場合の機体のバージョンアップでそこがどうなるかは不明なのでご注意)
- unitree_ros_to_real/unitree_legged_real/src/exe/twist_sub.cpp がおそらく cmd_vel で動かすスクリプト
関連記事