我的配置:
ubuntu20.04
ros-noetic
先决条件:
1、hostname
2、bashrc
3、/etc/hosts 文件
4、同主包
5、swarm-formation仿真
配置:
1、hostname
a b c 电脑依次修改
sudo hostnamectl set-hostname name1 sudo hostnamectl set-hostname name2 sudo hostnamectl set-hostname name3 hostname --查看是否修改成功
2、bashrc
a b c 电脑依次修改
export ROS_MASTER_URI=http://a_ip:11311 export ROS_HOSTNAME=name1 export ROS_MASTER_URI=http://b_ip:11311 export ROS_HOSTNAME=name2 export ROS_MASTER_URI=http://c_ip:11311 export ROS_HOSTNAME=name3
3、/etc/hosts文件
sudo nano /etc/hosts 文件内部添加: a_ip name1 b_ip name2 c_ip name3
测试:ping 其他主机
4、同主包
sudo apt-get install python3-catkin-pkg python3-rospkg python3-yaml ros-noetic-roslaunch ros-noetic-rostest ros-noetic-rospy ros-noetic-rosunit mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make source devel/setup.bash cd src git clone https://github.com/fkie/multimaster_fkie.git cd .. catkin_make source devel/setup.bash
写一个launch文件:change.launch <launch> <node pkg="fkie_master_discovery" type="master_discovery" name="master_discovery" output="screen"/> <node pkg="fkie_master_sync" type="master_sync" name="master_sync" output="screen"/> </launch>
测试: a b c 建立同主通信 roslaunch demo change.launch
tipe:demo包需要自己create一个
5、swarm-formation仿真
https://github.com/ZJU-FAST-Lab/Swarm-Formation --官方链接
最终测试:
在a 电脑上 各开两个终端,a输入:
roslaunch demo change.launch 当观察到建立完全的同步通信之后,再: a主机: roslaunch ego_planner rviz.launch roslaunch ego_planner normal_hexagon.launch b c主机: roslaunch ego_planner normal_hexagon.launch
将出现最终的视频的结果!
注意:
多通信过于多的时候,说明实际的主机无法完成繁重的通信需求,可参考的策略是:关闭上网