7/29 勉強会 turtlebot3のセットアップ用リポジトリ
ubuntu18.04 ,ROS(melodic)がインストールされている前提でセットアップしていく
※ROSのセットアップをしていない場合は、https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu18.04_desktop からインストールしてください。
turtlebot3シミュレーション環境をセットアップする
ROBOTIS e-manual PCsetup
https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/
ROBOTIS e-manual simulation
https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/
資料にあるROBOTIS e-manualを参考にセットアップを行います。
ROBOTIS e-manual 3. Quick Start Guide の 3.1 PC Setup から始めていきます。
また、今回はubuntu18.04、ROS(melodic)がインストールされている前提でセットアップをしていきます。
ROBOTIS e-manual 3.1.2 Instal ROS1 on Remort PCまでは飛ばし、
3.1.3 Install Dependent ROS 1 Packagesから進めていきます。
※ubuntu18.04以外の場合、ubuntuのバージョンに対応するROSのバージョンに合わせてサイト上部のボタンをクリックしてください。実行するコマンド等がバージョンに合ったものに変更されます。
ここでは、必要なROSの依存パッケージをインストールします。 3.1.3 Install Dependent ROS 1 Packagesでは
$ sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy \
ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \
ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \
ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
ros-melodic-rosserial-server ros-melodic-rosserial-client \
ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server \
ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro \
ros-melodic-compressed-image-transport ros-melodic-rqt* \
ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
とコマンドが記述されていますが、この方法でうまくインストールできない場合
$ sudo apt-get install ros-melodic-joy
$ sudo apt-get install ros-melodic-teleop-twist-joy
...
のように一つずつインストールを行ってください。
また、ROBOTIS e-manualでは基本的にapt-getを使用してインストールしていますが、
$ sudo apt install ros-melodic-joy ros-melodic-teleop-twist-joy \
ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \
ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \
ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
ros-melodic-rosserial-server ros-melodic-rosserial-client \
ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server \
ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro \
ros-melodic-compressed-image-transport ros-melodic-rqt* \
ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
$ sudo apt install ros-melodic-joy
$ sudo apt install ros-melodic-teleop-twist-joy
...
のようにaptでインストールしても問題ありません。
turtlebot3を動かすために必要なパッケージをインストールします。
$ sudo apt install ros-melodic-dynamixel-sdk
$ sudo apt install ros-melodic-turtlebot3-msgs
$ sudo apt install ros-melodic-turtlebot3
ここで一応apt updateを行ってください
$ sudo apt update
ここでは、用いるturtlebot3のモデルを設定していきます。
turtlebot3には、
$ echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
必要なパッケージをダウンロードする前に、ワークスペースを作ります。
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
今回のワークスペースの名前は、catkin_wsとして、
catkin_wsの中に、srcというディレクトリを作ります。
このcatkin_ws/srcの中に、必要なパッケージ等をダウンロードしていきます。
ここでは、GazeboというROSのパッケージを使ってシミュレーションを行います。
ここからは、資料にある
ROBOTIS e-manual simulation
https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/
を参考にしてみてください。
シミュレーションに必要なパッケージ、gmappingに必要なパッケージを
先程の ワークスペース(workspace)の作成 で作ったワークスペースにインストールしていきます。
$ cd ~/catkin_ws/src/
$ git clone -b melodic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_gazebo_plugin.git
$ git clone https://github.com/ros-perception/slam_gmapping.git
$ git clone https://github.com/ros-perception/openslam_gmapping.git
$ git clone https://github.com/ros-planning/navigation_msgs.git
$ git clone https://github.com/ros-planning/navigation.git
$ git clone https://github.com/ros/geometry2.git
$ cd ~/catkin_ws && catkin_make
catkin_ws/srcに移動し、turtlebot3のシミュレーション環境を-bでブランチを指定して、git cloneで自分の環境に複製します。
git clone後は、catkin_wsに移動し、catkin_makeというコマンドでビルドしていきます。
$ cd ../
$ catkin_make
のように、一つ戻ってcatkin_makeするやり方でも構いません。
インストール、ビルドができたら
gazeboでシミュレータを立ち上げてみます。
$ source ~/catkin_ws/devel/setup.bash
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
gazeboが立ち上がり、亀のようなワールドとturtlebot3がいれば完了です。
ctrl+alt+tで新しく端末を開いて、teleop_keyを実行すればシミュレータ内のturtlebot3を動かすことができます。
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
$ gazebo worlds/turtlebot3_burger.world
[Err] [REST.cc:205] Error in REST request
libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
~/.ignition/fuelにある、config.yamlファイルの一部を変更してください。
$ cd ~/.ignition/fuel
$ ls
config.yaml
~/.ignition/fuelまで移動、configファイルがあるか確認
url: https://api.ignitionfuel.org
から、
url: https://api.ignitionrobotics.org
に変更する。
任意のエディタで変更(今回はvim)
$ vim config.yaml
変更できたか確認
$ cat config.yaml
---
# The list of servers.
servers:
-
name: osrf
url: https://api.ignitionrobotics.org
# -
# name: another_server
# url: https://myserver
# Where are the assets stored in disk.
# cache:
# path: /tmp/ignition/fuel
この変更を行った後、再度gazeboを立ち上げ、エラーが出なければ成功です。