-
Notifications
You must be signed in to change notification settings - Fork 20
How to run ROS nodes on multiple PCs from one launch file
Masato-Imai edited this page Dec 2, 2019
·
3 revisions
1つのlaunchファイルから複数のPC(ロボット)のノードをremoteで立ち上げる方法
ホスト名 | IPアドレス |
---|---|
SERVER (roscore) | 192.168.1.2 |
ROBOT | 192.168.1.11 |
それぞれのPCで普通にノードを立ち上げ、通信がきちんとできることを確かめてから始めてください。
- roslaunchを行うPCで
/etc/hosts
を編集
以下のように追記します
127.0.0.1 localhost
#127.0.1.1 SERVER
192.168.1.2 SERVER
192.168.1.11 ROBOT
- roslaunchを行うPCで
~/.bashrc
に以下を追記
export ROSLAUNCH_SSH_UNKNOWN=1
- roslaunchを行うPCにおいて、
~/.ssh/known_hosts
の記録を消去した上で、
ssh user@ROBOT -oHostKeyAlgorithms='ssh-rsa'
と手でログインし、RSAアルゴリズムを使うよう指定しておく
-
/home/user/env.bash
というスクリプトをROBOTのホームディレクトリに作成
#!/bin/bash
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_HOSTNAME=192.168.1.11
exec "$@"
このスクリプトからlaunchファイルから呼びだされ、
source ~/.bashrc
と同じ働きをします。
ROS_MASTER_URI
はroslaunchを行ったPCのものがコピーされるので、それだと困る人はここで指定してください。
また、このスクリプトに実行権限を付与することを忘れずに。
- launchファイルの編集
以下のようにmachineタグを付け加えるのと、nodeタグに起動したいmachineを書いておきます。
<machine name="ROBOT" address="ROBOT" env-loader="/home/user/env.bash" user="user" password="password"/>
<node machine="ROBOT" pkg="hoge" type="foo" name="piyo"/>
基本的に上2つのリンクの内容ですが、微妙に言ってることが違ったりしてハマったのでまとめました。
ROS-TMS
Messages of ROS-TMS
Database
Task Scheduler
Robot Controller
Robot Motion Planning
Robot Service
Sensor Drive
Sensor System
- tms_ss_fss
- tms_ss_his
- tms_ss_ics
- tms_ss_ods
- tms_ss_vicon
- tms_ss_vs
- tms_ss_pot
- tms_ss_nfbed
- tms_ss_whs1
- tms_ss_pozyx
State Analyzer
User Request
Network module for Hierarchical ROS-TMS
ROS-TMS Developer
ETC.