ラボのためのメモを兼ねたガイドです。開発に便利なツールのインストールまでセットアップします。なお、ROS 2 foxy は 2023/05 に LTS から外れ、サポートが終了します。
[Warn] source /opt/ros/.../setup.bash
. /opt/ros/.../setup.bash
~/.bashrc
1. ROS 2 Foxy
source コマンドにさえ気をつければ、複数のディストリビューションを共存させられます。direnv を活用して bashrc などには直接書き込まないようにすれば、安心して環境を維持できます。間もなく Foxy も EOL を迎えますが、Ubuntu 20.04 系を使用し apt でサクッと済ませましょう。
1-0. ROS のインストール準備
ターミナル (アプリ一覧から端末を探すか、ショートカット Ctrl + Alt + T
で起動できる)を開きます。
1-1. ROS のインストール準備
Locale を設定をします。locale
と入力して UTF-8 に (日本語なら ja_JP.UTF-8
で)
Ubuntu であれば、基本的にインストール時点で UTF-8 になっています。
$ sudo locale-gen en_US.UTF-8 && export LANG=en_US.UTF-8
1-2. ROS の鍵を入手
$ sudo curl -sSL https://github.com/ros/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
1-3. ROS をパッケージリストに追加
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
1-4. ROS 2 Foxy / 関連パッケージのインストール
$ sudo apt update && sudo apt upgrade -y && sudo apt install ros-dev-tools ros-foxy-desktop
1-5. rosdep の初期化
sudo rosdep init && rosdep update
1-6. Colcon のコマンド補完などを設定
Bash (デフォルトのまま) の場合は ~/.bashrc
に二行を書き足してください。ターミナルを開きなおすなどして変更を読み込むと、colcon
に Tab 補完を有効化・colcon_cd
コマンドの有効化ができます。
. /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
. /usr/share/colcon_cd/function/colcon_cd.sh
1-7. インストールを確認
ターミナルを二個立ち上げて次を実行し、 listener で talker 側と同じメッセージを表示できるか確認します。
`. /opt/ros/foxy/...`
~/.bashrc
# Terminal 1
$ . /opt/ros/foxy/setup.bash && ros2 run demo_node_cpp talker
# Terminal 2
$ . /opt/ros/foxy/setup.bash && ros2 run demo_node_py listener
2. Gazebo
Gazebo は ROS と合わせてよく使用されるシミュレータです。リリースに大きな変更があり、Foxy では Gazebo11 (Classic Gazebo) と (Ignition) Gazebo の二種類が使用できます。まだ Ignition 版へ対応しているパッケージは少ないので、ここでは両方ともインストールしておきます。
$ sudo apt install ros-foxy-gazebo-ros-pkgs ros-foxy-ros-gz
3. direnv の設定
ROS では環境変数や、ソースするかどうかが非常に重要になってきます。direnv を使って簡単に環境設定をしましょう。
3-1. インストール
$ sudo apt install direnv
3-2. direnv を有効化する
次の一行を ~/.bashrc
などに記載します。
eval "$(direnv hook bash)"
4. VSCode
Vi でも良いけど、VSCode も一応入れておきます。
4-1. VSCode の鍵を入手
$ curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/packages.microsoft.gpg > /dev/null
4-2. VSCode をパッケージリストに追加
$ echo "[arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
4-3. VSCode をインストール
$ sudo apt install apt-transport-https && sudo apt update && sudo apt install code
5. Ccache
Ccache はキャッシュにより、2回目以降のビルドを高速化してくれるツール。ROS でなくてもあると嬉しいので入れておきます。
5-1. Ccache インストール
sudo apt install ccache -y
5-2. 有効化
次の設定を ~/.bashrc
などに追記します。
# Ccache の設定
export USE_CCACHE=1
export PATH="/usr/lib/ccache:${PATH}"
export CC='/usr/lib/cc'
export CXX='/usr/lib/c++'
6. FileZilla
FileZilla は FTP (SFTPも) を GUI で行える無料ツール。PC で修正してロボットにファイル転送をすることは多々あるので、CLI に慣れていない人には特におすすめです。
$ sudo apt install filezilla
以上で最低限の準備は完了です。