# 多机部署ros
> 主机和从机要在同一个局域网内
1. 主机添加在hosts中添加所有节点的ip和主机名(主机配置)
```bash
sudo gedit /etc/hosts
```
> ip 主机名
1.1
sudo gedit ~/.bashrc
export ROS_HOSTNAME=本机ip
export ROS_MASTER_URI=http://主机ip:11311
source ~/.bashrc
重启控制台
2. 从机配置master节点服务(主机也需要修改)
```bash
sudo gedit ~/.bashrc
export ROS_HOSTNAME=本机ip
export ROS_MASTER_URI=http://主机ip:11311
source ~/.bashrc
重启控制台
问题1: ros环境中 opencv与ros冲突时删除 conda环境,是因为conda冲突,在ubuntu中建议不按照conda
问题2: ros多机互联后,一方收不到另一方的数据时需要在执行的那个控制台窗口执行 source ~/.bashrc
问题3: 如项目中使用的Qt 就必须加Qappliion
树莓派与pc
多机网络配置
export ROS_IP=`hostname -I | awk '{print $1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
export ROS_MASTER_URI=http://`hostname -I | awk '{print $1}'`:11311
PC
端配置
export ROS_IP=`hostname -I | awk '{print $1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
export ROS_MASTER_URI=http://树莓派的IP地址:11311
问题:链接不上或找不到节点 可能ip问题
输入
ifconfig
与
echo $ROS_HOSTNAME
查看ip是否一致
强制更改 本机ip; 把动态命令写死
export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
改
export ROS_HOSTNAME=192.168.1.10
动态命令在多网卡或网络中断会导致把本机ip发送给mast节点的ip不准确