Help us understand the problem. What is going on with this article?

ROSを用いたローバー制御(シュミレーター編)

More than 1 year has passed since last update.

テーマ記事へのリンク

以下の記事には今回のテーマを設定した目的や関連記事がまとめてあります。自分が見たい項目がある場合は利用してください。
自作ロボット(ローバー)のROS対応

目次

  1. 準備するもの
  2. 環境構築
  3. ソースコードのダウンロード&ビルド
  4. 実行
  5. 環境構築時に直面したエラー

    1. パブリックキーエラー
    2. VMWareでの環境構築時のエラー
  6. 参考記事

    準備するもの

  7. Ubuntu 16.04

環境構築

こちらの手順に従って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系をインストールしてください。pyenvanacondaなどの仮想環境上での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とコントローラーウィンドウが起動したら成功。

Screenshot from 2019-11-11 22-07-33.png

環境構築時に直面したエラー

パブリックキーエラー

元々入っていた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(全方向台車のモデリング)
寸法がこちらの記事のものを使用したため、実機とは異なる。余裕があれば直す。

Naotaka_Kawata
自然言語処理の研究をしているナナチ. 趣味でロボット(ソフトウェア)を開発しています. WRS,RoboCup,レスコンに出てました.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away