「ROS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(カテゴリを変更)
 
(2人の利用者による、間の5版が非表示)
1行目: 1行目:
[[Category:計算と科学]]
+
[[Category:科学]]
[[en:Ros]]
+
[[en:ROS]]
 
[http://www.ros.org ROS] はロボットのための、オープンソースのメタオペレーティングシステムです。ハードウェアの抽象化や低水準なデバイス制御、よく使われる機能の実装、プロセス間でのメッセージ通信、パッケージ管理など、オペレーティングシステムとして思い浮かべられるサービスを提供します。
 
[http://www.ros.org ROS] はロボットのための、オープンソースのメタオペレーティングシステムです。ハードウェアの抽象化や低水準なデバイス制御、よく使われる機能の実装、プロセス間でのメッセージ通信、パッケージ管理など、オペレーティングシステムとして思い浮かべられるサービスを提供します。
 
== インストール ==
 
== インストール ==
  +
  +
=== Melodic ===
  +
  +
{{AUR|ros-melodic-desktop-full}} または {{AUR|ros-melodic-desktop}} パッケージを[[インストール]]してください。
  +
  +
=== Lunar ===
  +
  +
ROS Lunar は AUR パッケージでインストールすることができ、問題なく動作します。{{AUR|ros-lunar-desktop-full}} で全てを動かすことができます。{{AUR|ros-lunar-desktop}} は rospy, roscpp, publisher, subscriber, サービス, 起動ファイルなど ROS のコア機能が含まれています。
   
 
=== Kinetic ===
 
=== Kinetic ===
   
AUR の Kinetic パッケージは作業途中です。[https://github.com/bchretien/arch-ros-stacks/issues/57#issuecomment-228612399 opencv3 に関する問題] がまだ完全には解決していません。{{AUR|ros-kinetic-ros-core}} や {{AUR|ros-kinetic-robot}} などのメタパッケージをインストールすると必要な依存パッケージが全てインストールされます。一部の [[AUR ヘルパー]]は ROS の非常に複雑な依存関係解決できません
+
AUR の Kinetic パッケージは作業途中です。[https://github.com/bchretien/arch-ros-stacks/issues/57#issuecomment-228612399 opencv3 に関する問題] がまだ完全には解決していません。{{AUR|ros-kinetic-ros-core}} や {{AUR|ros-kinetic-robot}} などのメタパッケージをインストールすると必要な依存パッケージが全てインストールされます (インストール順番については [https://paste.xinu.at/YXIz/] を参照)
   
 
パッケージは必要に応じて追加されます。パッケージのリクエストは <aur AT seangreenslade DOT com> に送ってください。パッケージの問題についてはそれぞれの AUR のページにあるコメント欄に投稿してください。
 
パッケージは必要に応じて追加されます。パッケージのリクエストは <aur AT seangreenslade DOT com> に送ってください。パッケージの問題についてはそれぞれの AUR のページにあるコメント欄に投稿してください。
  +
  +
== ビルドツールの設定 ==
  +
  +
=== catkin_make ===
   
 
catkin は python2 を使うため、python2 環境を使うように設定しないと catkin_make は失敗します。以下のエイリアスを .bashrc などシェルの設定に追加してください:
 
catkin は python2 を使うため、python2 環境を使うように設定しないと catkin_make は失敗します。以下のエイリアスを .bashrc などシェルの設定に追加してください:
14行目: 26行目:
 
alias catkin_make="catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so"
 
alias catkin_make="catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so"
   
=== Jade ===
+
=== catkin build ===
  +
  +
{{ic|catkin build}} 環境を使用するシステムを設定する場合、catkin ワークスペースを設定する必要があります。以下のコマンドを実行してください:
  +
  +
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
  +
  +
その後、通常通りに {{ic|catkin build}} を使ってください。設定ファイル ({{ic|catkin_ws}} ディレクトリ) を削除したときは catkin を再設定するようにしてください。
  +
  +
== 共有ライブラリがアップデートされたときの再ビルド ==
  +
ROS が依存するライブラリ (例: Boost) を更新したときは、ライブラリにリンクしている全てのパッケージを再ビルドする必要があります。再ビルドが必要なパッケージを検索できるスクリプトが [https://seangreenslade.com/h/snippets/ros-find-outofdate.py こちら] に存在します。スクリプトを使うには {{pkg|pyalpm}} のインストールが必要です。
  +
  +
== Ros 2 ==
  +
=== ソースからビルド ===
  +
  +
ビルドの手順は https://github.com/ros2/ros2/wiki/Linux-Development-Setup に書かれています。
  +
  +
必要なパッケージをインストールしてください: {{Pkg|wget}}, {{Pkg|python}}, {{Pkg|python-yaml}}, {{Pkg|python-setuptools}}, {{Pkg|git}}, {{Pkg|cmake}}, {{Pkg|asio}}, {{Pkg|tinyxml}}, {{Pkg|tinyxml2}}, {{Pkg|eigen}}, {{Pkg|libxaw}}, {{Pkg|glu}}, {{Pkg|qt5-base}}, {{Pkg|opencv}}, {{AUR|python-vcstool}}, {{Pkg|python-empy}}。
  +
  +
ソースを取得:
  +
  +
$ mkdir -p ~/ros2_ws/src
  +
$ cd ~/ros2_ws
  +
$ wget https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos
  +
$ vcs-import src < ros2.repos
  +
  +
現在のところ、修正が一部必要です:
  +
  +
$ cd ~/ros2_ws/src/ros2/rviz/
  +
$ git remote add racko https://github.com/racko/rviz.git
  +
$ git fetch racko added_cmake_project_type fix_fallthrough fix_wrong_yaml_cpp
  +
$ git cherry-pick racko/added_cmake_project_type racko/fix_fallthrough racko/fix_wrong_yaml_cpp
  +
  +
ワークスペースをビルド:
  +
  +
$ cd ~/ros2_ws
  +
$ src/ament/ament_tools/scripts/ament.py build --symlink-install
  +
  +
Ros 1 / Ros 2 の相互運用性については https://github.com/ros2/ros1_bridge/blob/master/README.md#build-the-bridge-from-source を参照。
  +
  +
=== 使用例 ===
  +
  +
まずワークスペースを読み込みます:
  +
  +
$ . ~/ros2_ws/install/local_setup.bash
  +
  +
{{ic|roscore}}, {{ic|rosnode}}, {{ic|rostopic}}, {{ic|rosmsg}}, {{ic|rospack}}, {{ic|rosrun}}, {{ic|rosservice}} に匹敵する機能は {{ic|ros2}} から使えます:
  +
  +
$ ros2 -h
  +
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
  +
  +
ros2 is an extensible command-line tool for ROS 2.
  +
  +
optional arguments:
  +
-h, --help show this help message and exit
  +
  +
Commands:
  +
daemon Various daemon related sub-commands
  +
msg Various msg related sub-commands
  +
node Various node related sub-commands
  +
pkg Various package related sub-commands
  +
run Run a package specific executable
  +
security Various security related sub-commands
  +
service Various service related sub-commands
  +
srv Various srv related sub-commands
  +
topic Various topic related sub-commands
  +
  +
Call `ros2 <command> -h` for more detailed usage.
  +
  +
配信者ノードを実行する典型的な "Hello World" サンプル:
  +
  +
$ ros2 topic pub /chatter 'std_msgs/String' "data: 'Hello World'"
  +
  +
他のターミナルで購読者を実行できます (新しいターミナルでは毎回ワークスペースを読み込んでください):
  +
  +
$ ros2 topic echo /chatter
   
  +
既存のノードを確認:
ROS Jade をインストールする方法は [http://wiki.ros.org/jade/Installation/Arch Arch Linux で Jade をインストールする手順] を見てください。
 
   
  +
$ ros2 node list
{{Note|バージョン 6.x 以上の gcc を使用している場合、(依存パッケージのひとつである) log4cxx 0.10 がビルドできません。0.11 がリリースされるまでは SVN バージョン ({{AUR|log4cxx-svn}}) を使ってください。}}
 
  +
publisher_std_msgs_String
   
  +
トピックを確認:
=== Indigo ===
 
   
  +
$ ros2 topic list
ROS Indigo をインストールする方法は [http://wiki.ros.org/indigo/Installation/Arch Arch Linux で Indigo をインストールする手順] を見てください。
 
  +
/chatter
   
  +
rviz の Ros 2 版は:
== boost がアップデートされたときの再ビルド ==
 
ROS が依存するライブラリ (例: Boost) を更新したときは、ライブラリにリンクしている全てのパッケージを再ビルドする必要があります。以下のようなコマンドで、再ビルドが必要なパッケージを検索できます:
 
   
  +
$ rviz2
export LANG=C;pacman -Qi boost | grep "Required By" | tr " " "\n" | grep -e "^ros"
 

2022年8月4日 (木) 10:41時点における最新版

ROS はロボットのための、オープンソースのメタオペレーティングシステムです。ハードウェアの抽象化や低水準なデバイス制御、よく使われる機能の実装、プロセス間でのメッセージ通信、パッケージ管理など、オペレーティングシステムとして思い浮かべられるサービスを提供します。

インストール

Melodic

ros-melodic-desktop-fullAUR または ros-melodic-desktopAUR パッケージをインストールしてください。

Lunar

ROS Lunar は AUR パッケージでインストールすることができ、問題なく動作します。ros-lunar-desktop-fullAUR で全てを動かすことができます。ros-lunar-desktopAUR は rospy, roscpp, publisher, subscriber, サービス, 起動ファイルなど ROS のコア機能が含まれています。

Kinetic

AUR の Kinetic パッケージは作業途中です。opencv3 に関する問題 がまだ完全には解決していません。ros-kinetic-ros-coreAURros-kinetic-robotAUR などのメタパッケージをインストールすると必要な依存パッケージが全てインストールされます (インストールの順番については [1] を参照)。

パッケージは必要に応じて追加されます。パッケージのリクエストは <aur AT seangreenslade DOT com> に送ってください。パッケージの問題についてはそれぞれの AUR のページにあるコメント欄に投稿してください。

ビルドツールの設定

catkin_make

catkin は python2 を使うため、python2 環境を使うように設定しないと catkin_make は失敗します。以下のエイリアスを .bashrc などシェルの設定に追加してください:

alias catkin_make="catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so"

catkin build

catkin build 環境を使用するシステムを設定する場合、catkin ワークスペースを設定する必要があります。以下のコマンドを実行してください:

catkin config -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so

その後、通常通りに catkin build を使ってください。設定ファイル (catkin_ws ディレクトリ) を削除したときは catkin を再設定するようにしてください。

共有ライブラリがアップデートされたときの再ビルド

ROS が依存するライブラリ (例: Boost) を更新したときは、ライブラリにリンクしている全てのパッケージを再ビルドする必要があります。再ビルドが必要なパッケージを検索できるスクリプトが こちら に存在します。スクリプトを使うには pyalpm のインストールが必要です。

Ros 2

ソースからビルド

ビルドの手順は https://github.com/ros2/ros2/wiki/Linux-Development-Setup に書かれています。

必要なパッケージをインストールしてください: wget, python, python-yaml, python-setuptools, git, cmake, asio, tinyxml, tinyxml2, eigen, libxaw, glu, qt5-base, opencv, python-vcstoolAUR, python-empy

ソースを取得:

$ mkdir -p ~/ros2_ws/src
$ cd ~/ros2_ws
$ wget https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos
$ vcs-import src < ros2.repos

現在のところ、修正が一部必要です:

$ cd ~/ros2_ws/src/ros2/rviz/
$ git remote add racko https://github.com/racko/rviz.git
$ git fetch racko added_cmake_project_type fix_fallthrough fix_wrong_yaml_cpp
$ git cherry-pick racko/added_cmake_project_type racko/fix_fallthrough racko/fix_wrong_yaml_cpp

ワークスペースをビルド:

$ cd ~/ros2_ws
$ src/ament/ament_tools/scripts/ament.py build --symlink-install

Ros 1 / Ros 2 の相互運用性については https://github.com/ros2/ros1_bridge/blob/master/README.md#build-the-bridge-from-source を参照。

使用例

まずワークスペースを読み込みます:

$ . ~/ros2_ws/install/local_setup.bash

roscore, rosnode, rostopic, rosmsg, rospack, rosrun, rosservice に匹敵する機能は ros2 から使えます:

$ ros2 -h
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ... 

ros2 is an extensible command-line tool for ROS 2.

optional arguments:
  -h, --help            show this help message and exit

Commands:
  daemon    Various daemon related sub-commands
  msg       Various msg related sub-commands
  node      Various node related sub-commands
  pkg       Various package related sub-commands
  run       Run a package specific executable
  security  Various security related sub-commands
  service   Various service related sub-commands
  srv       Various srv related sub-commands
  topic     Various topic related sub-commands

  Call `ros2 <command> -h` for more detailed usage.

配信者ノードを実行する典型的な "Hello World" サンプル:

$ ros2 topic pub /chatter 'std_msgs/String' "data: 'Hello World'"

他のターミナルで購読者を実行できます (新しいターミナルでは毎回ワークスペースを読み込んでください):

$ ros2 topic echo /chatter

既存のノードを確認:

$ ros2 node list
publisher_std_msgs_String

トピックを確認:

$ ros2 topic list
/chatter

rviz の Ros 2 版は:

$ rviz2