「ROS」の版間の差分
ページの作成:「Category:計算と科学 en:Ros [http://www.ros.org ROS] はロボットのための、オープンソースのメタオペレーティングシステムです。...」 |
Kusanaginoturugi (トーク | 投稿記録) カテゴリを変更 |
||
| (2人の利用者による、間の7版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category: |
[[Category:科学]] |
||
[[en: |
[[en:ROS]] |
||
[http://www.ros.org ROS] はロボットのための、オープンソースのメタオペレーティングシステムです。ハードウェアの抽象化や低水準なデバイス制御、よく使われる機能の実装、プロセス間でのメッセージ通信、パッケージ管理など、オペレーティングシステムとして思い浮かべられるサービスを提供します。 |
[http://www.ros.org ROS] はロボットのための、オープンソースのメタオペレーティングシステムです。ハードウェアの抽象化や低水準なデバイス制御、よく使われる機能の実装、プロセス間でのメッセージ通信、パッケージ管理など、オペレーティングシステムとして思い浮かべられるサービスを提供します。 |
||
== |
== インストール == |
||
=== Jade === |
|||
=== Melodic === |
|||
ROS Jade をセットアップする方法は [http://wiki.ros.org/jade/Installation/Arch Installation Instructions for jade in Arch Linux] を見て下さい。 |
|||
{{AUR|ros-melodic-desktop-full}} または {{AUR|ros-melodic-desktop}} パッケージを[[インストール]]してください。 |
|||
=== Indigo === |
|||
=== Lunar === |
|||
ROS Indigo をセットアップする方法は [http://wiki.ros.org/indigo/Installation/Arch Installation Instructions for Indigo in Arch Linux] を見て下さい。 |
|||
ROS Lunar は AUR パッケージでインストールすることができ、問題なく動作します。{{AUR|ros-lunar-desktop-full}} で全てを動かすことができます。{{AUR|ros-lunar-desktop}} は rospy, roscpp, publisher, subscriber, サービス, 起動ファイルなど ROS のコア機能が含まれています。 |
|||
=== Hydro === |
|||
=== Kinetic === |
|||
ROS Hydro をセットアップする方法は [http://wiki.ros.org/hydro/Installation/Arch Installation Instructions for Hydro in Arch Linux] を見て下さい。 |
|||
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/] を参照)。 |
|||
;Ogre 1.8 |
|||
パッケージは必要に応じて追加されます。パッケージのリクエストは <aur AT seangreenslade DOT com> に送ってください。パッケージの問題についてはそれぞれの AUR のページにあるコメント欄に投稿してください。 |
|||
Gazebo を使いたい場合は {{AUR|ogre-1.8}} をインストールします。PKGBUILD に以下の export を追加することで ogre を必要とする Hydro パッケージ (rviz など) をコンパイルすることができます: |
|||
== ビルドツールの設定 == |
|||
export PKG_CONFIG_PATH=/opt/OGRE-1.8/lib/pkgconfig/:$PKG_CONFIG_PATH |
|||
=== |
=== catkin_make === |
||
catkin は python2 を使うため、python2 環境を使うように設定しないと catkin_make は失敗します。以下のエイリアスを .bashrc などシェルの設定に追加してください: |
|||
ROS Groovy の core, comm, robot にはメタパッケージが存在し、必要なパッケージが全てインストールされます: {{AUR|ros-groovy-ros}}{{Broken package link|{{aur-mirror|ros-groovy-ros}}}}, {{AUR|ros-groovy-ros-comm}}{{Broken package link|{{aur-mirror|ros-groovy-ros-comm}}}}, (robot メタパッケージはまだありません)。さらに、{{AUR|ros-groovy-rviz}}{{Broken package link|{{aur-mirror|ros-groovy-rviz}}}} パッケージも存在します。 |
|||
alias catkin_make="catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so" |
|||
パッケージは全てメンテナの github から取得することができます: [https://github.com/zootboy/arch-ros-stacks arch-ros-stacks]。全てのパッケージが使える状態にあるというわけではないので注意してください。パッケージの問題は AUR のページで報告してください。 |
|||
== |
=== catkin build === |
||
=== Groovy === |
|||
{{ic|catkin build}} 環境を使用するシステムを設定する場合、catkin ワークスペースを設定する必要があります。以下のコマンドを実行してください: |
|||
Ubuntu と Arch では python2/3 バイナリの扱い方が異なるため、catkin_make[_isolated] は動作しません。catkin_make コマンドを使用するには、{{ic|~/.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' |
|||
alias catkin_make_isolated='catkin_make_isolated -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so' |
|||
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python2 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so |
|||
上記のエイリアスがないと、cmake は python 3 をデフォルトで使います。catkin_make[_isolated] を呼び出す時に上記の定義を追加することも可能です (スクリプトの中でコマンドを実行したい場合は必須)。 |
|||
その後、通常通りに {{ic|catkin build}} を使ってください。設定ファイル ({{ic|catkin_ws}} ディレクトリ) を削除したときは catkin を再設定するようにしてください。 |
|||
ROS の使い方に関する詳細情報は [http://www.ros.org/wiki/ROS/Tutorials ROS Tutorials] を見て下さい。 |
|||
== 共有ライブラリがアップデートされたときの再ビルド == |
|||
ROS が依存するライブラリ (例: |
ROS が依存するライブラリ (例: Boost) を更新したときは、ライブラリにリンクしている全てのパッケージを再ビルドする必要があります。再ビルドが必要なパッケージを検索できるスクリプトが [https://seangreenslade.com/h/snippets/ros-find-outofdate.py こちら] に存在します。スクリプトを使うには {{pkg|pyalpm}} のインストールが必要です。 |
||
== Ros 2 == |
|||
export LANG=C;grep -r "libboost" /opt/ros/indigo | awk '{ print $3 }' | grep opt | pacman -Qo - | awk '{ print $5 }' | tr '\n' ' ' |
|||
=== ソースからビルド === |
|||
ビルドの手順は 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 |
|||
既存のノードを確認: |
|||
$ ros2 node list |
|||
publisher_std_msgs_String |
|||
トピックを確認: |
|||
$ ros2 topic list |
|||
/chatter |
|||
rviz の Ros 2 版は: |
|||
$ rviz2 |
|||
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-coreAUR や ros-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