ヴイストン株式会社さんからRobovie-Zをお借りしたので、さっそくSDKを使ってROSを試してみます!
Robovie-Zの商品ページはここ
Robovie-Z(ロボビーゼット) | ヴイストン株式会社 (vstone.co.jp)
マニュアルはここにあります。
RobovieZ_ROSSDK_manual.pdf (vstone.co.jp)
ROSのWikiにもPiへのインストール方法が載ってます。
ROSberryPi/Installing ROS Melodic on the Raspberry Pi – ROS Wiki
1.ROSの準備
リポジトリのセットアップ
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://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Debianパッケージをアップデート・アップグレード
sudo apt-get update sudo apt-get upgrade
Bootstrapの依存関係を解決
sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
Rosdepを初期化、アップデート
*rosdep updateでエラーが出る場合、”rosdep update”を何度か繰り返すと解決する場合があります。
*rosdep update はsudoで実行しないでください、後でPermissionエラーの原因になります。
sudo rosdep init rosdep update
2.ROSをインストール
catkinワークスペースを作って、ワークスペース内に移動
$ mkdir -p ~/ros_catkin_ws $ cd ~/ros_catkin_ws
インストーラーを作ります
$ rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktopwet.rosinstall
インストーラーを使って、ROSパッケージをソースフォルダに展開
$ wstool init src melodic-desktop-wet.rosinstall
rosdepを使って依存関係を解決
$ cd ~/ros_catkin_ws $ rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
ワークスペース全体をビルド
*この作業は数時間かかることがあります!(私は半日かかりました)
*Pi4に電源アダプターがつないであることを確認して、コマンドの実行は実機で行いましょう!
*リモートマシンから操作していると途中で接続が切れてしまうことがあります。
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
ROSの設定をシェルに反映させます
$ source /opt/ros/melodic/setup.bash
次回ログイン時に、自動的にROSの環境設定が有効化されるように、.bashrcも変更
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
3.リリースパッケージの追加
ワークスペースに移動
cd ~/ros_catkin_ws
インストールファイルを作成
rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro melodic --deps --wet-only --tar > melodic-custom_ros.rosinstall
wstoolをつかつかってインストールファイルをアップデート
$ wstool merge -t src melodic-custom_ros.rosinstall $ wstool update -t src
rosdepを使って環境依存を解決
rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r --os=debian:buster
もう一度ワークスペース全体をビルド
*この作業は数時間かかることがあります!(私は半日かかりました)
*Pi4に電源アダプターがつないであることを確認して、コマンドの実行は実機で行いましょう!
*リモートマシンから操作していると途中で接続が切れてしまうことがあります。
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
これでインストール作業はおわりです。
roscoreを起動して、ROSが正常にインストールされているか確認します。
$ cd ~/ros_catkin_ws $ roscore
4. Robovie-Z ROS SDKの導入
*今回は配布マニュアルに沿って、他のROSパッケージと同じワークスペース内のsrcにroboviez_ros_samplesを展開してますが、別のワークスペースを作ってoverlayしたほうが便利です。
catkin/Tutorials/workspace_overlaying – ROS Wiki
roboviez_ros_samplesをsrcフォルダにクローン
$ cd ~/ros_catkin_ws/src $ git clone https://github.com/vstoneofficial/roboviez_ros_samples.git
Robovie-Zのgithubページはここ
GitHub – vstoneofficial/roboviez_ros_samples: Robovie-Z用ROS SDK
ワークスペースのルートからcatkin_make
*エラーが出ます!最後まで読んで操作してください。
*必要に応じて途中をスキップしてください。
$ cd ~/ros_catkin_ws $ catkin_make
“This workspace contains non-catkin packages” というエラーがでました。(2020/12/10)
“plain cmake” と赤字で書かれているパッケージが”non-catkin packages”です。
該当パッケージをcatkin_makeから外してcatkin_makeし直します。
catkin_make -DCATKIN_BLACKLIST_PACKAGES="orocos_kdl;python_orocos_kdl"
*私はこの解決方法にたどり着けず、ヴイストンの技術者の方に教えて頂きました。
すると今度は、diagnostic_msgs/DiagnosticArray.hが見つからないと出てきたので、
こちらも外します。
catkin_make -DCATKIN_BLACKLIST_PACKAGES="orocos_kdl;python_orocos_kdl;diagnostic_updater"
100%と表示されれば成功です。
.bashrcに書き込み、更新する
$ echo "source ~/ros_catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc
5.SDKサンプルを実行してみる
まずCPUボードにUSBケーブルをつないで、電源を供給、ONにします。
roscoreを実行
$ roscore
別のターミナルを開いて、roboviez_ros_controller.py を実行するとエラーになる
rosrun roboviez_ros_samples roboviez_ros_controller.py
roboviez_ros_controller.pyに実行権限を付与します。
chmod +x ~/ros_catkin_ws/src/roboviez_ros_samples/roboviez_ros_samples/src/roboviez_ros_controller.py
さらに別ターミナルを開いて、IMUの情報を読み出すコマンドを実行
$ rostopic echo /roboviez_ros_controller/imu
うまくいきました!
なんどもビルドをやり直したので、ここまでたどり着くのに5日かかりましたw。