テーマ記事へのリンク
以下の記事には今回のテーマを設定した目的や関連記事がまとめてあります。自分が見たい項目がある場合は利用してください。
自作ロボット(ローバー)のROS対応
目次
準備するもの
- Ubuntu 16.04
環境構築
[こちらの手順]( [http://www.sigverse.org/wiki/jp/?Tutorial%20using%20ROS%20for%20ver.3](http://www.sigverse.org/wiki/jp/?Tutorial using ROS for ver.3) )に従ってROSをインストールします。
その後、こちらの記事に従ってROSのワーキングディレクトリを
作成します。
英語を読みたくないという方向けに、以下のコマンドを打っていけば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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt-get update
$ sudo apt-get install ros-kinetic-desktop-full
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
$ source devel/setup.bash
<環境構築が正しく行えていたら以下の出力が得られる>
$ echo $ROS_PACKAGE_PATH
/home/<youruser>/catkin_ws/src:/opt/ros/kinetic/share
参考記事ではPython3.7での使用法が記述されているが、ROSはPython2系で開発がスタートしているので、上記の方法だとSystemのPython2が使われるようになる。もし入っていない場合はSystemの方にPython2系をインストールしてください。pyenvやanacondaなどの仮想環境上でのPythonも指定できるが、相性が悪いため注意が必要です。
Ubuntu16.04での構築のためROS Kineticを使っていますが、UbuntuのバージョンによってはIndigoなどUbuntuのバージョンに対応したROSをインストールしてください。
ソースコードのダウンロード&ビルド
必要なパッケージをインストールした後、githubからソースコードをcloneします。
$ sudo apt-get install ros-kinetic-ros-control ros-kinetic-ros-controllers
$ sudo apt-get install ros-kinetic-gazebo-ros-control
$ cd ~/catkin_ws/src
$ git clone https://github.com/NaotakaKawata/rover.git rover
$ chmod +x rover/src/teleop_keyboard_omni3.py
$ cd ~/catkin_ws
$ catkin_make
実行
$ roslaunch rover rover_vertual.launch
実行後、gazeboとコントローラーウィンドウが起動したら成功。
環境構築時に直面したエラー
パブリックキーエラー
元々入っていたROSを使ったときに発生。どうやら昔とパブリックキーが変わっていることが原因。
W: GPG error: http://packages.ros.org/ros/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
そこでパブリックキーの更新を行うことで対応。
$ sudo apt-key del F42ED6FBAB17C654
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
VMWareでの環境構築時のエラー
著者は再現実験用にVMWare15.5.0を使用してUbuntu環境を構築している。OpenGLまわりでのエラーらしい。
VMware: vmw_ioctl_command error Invalid argument.
そこで環境変数を変更することで対応。
$ echo "export SVGA_VGPU10=0" >> ~/.bashrc
$ source ~/.bashrc
##参考記事
[ROS講座50 オムニホイールのシミュレーション2(全方向台車のモデリング)]
(https://qiita.com/srs/items/ba0b5588f943bcc7b7f4)
寸法がこちらの記事のものを使用したため、実機とは異なる。余裕があれば直す。