ROS实战之多个turtlebot2建图

ROS实战之多个turtlebot2建图

首先在远程主机和turtlebot的上位机配置好turtlebot2的各启动文件。具体可以参考创客智造。
1.远程控制多turtlebot
(1)在各个turtlebot主机上配置网络:

sudo gedit ~/.bashrc

export ROS_HOSTNAME={turtlebot的ip}
export ROS_MASTER_URI=http://{主机的ip}:11311

写入bashrc文件的最后。
(2)在远程控制的PC端配置网络:

sudo gedit ~/.bashrc

export ROS_HOSTNAME={主机的ip}
export ROS_MASTER_URI=http://{主机的ip}:11311

写入bashrc文件的最后。
(2)主机控制多turtlebot
首先主机端启动roscre。
然后分别ssh连接到各turtlebot上

ssh cuiyunxuan@{启动的机器人的ip} 

然后在各个机器人终端启动底盘,同时加上命名:
例如其中一台turtlebot的终端输入:

ROS_NAMESPACE=tb2_0 roslaunch turtlebot_bringup minimal.launch --screen

加上ROS_NAMESPACE=tb2_0,将使得小车对应的各话题前带上/tb2_0的命名空间,方便后续多地图融合及多机器人导航的配置。
同样,另一台turtlebot的终端输入:

ROS_NAMESPACE=tb2_1 roslaunch turtlebot_bringup minimal.launch --screen

最后在主机打开两个终端分别启动键盘控制:

ROS_NAMESPACE=tb2_0 roslaunch turtlebot_teleop keyboard_teleop.launch
ROS_NAMESPACE=tb2_1 roslaunch turtlebot_teleop keyboard_teleop.launch

2.多个turtlebot2协同建图
(1)各小车分别启动建图模块
另起两个终端并ssh连接到两个turtlebot小车上并分别启动建图的launch文件:

ROS_NAMESPACE=tb2_0 roslaunch turtlebot_navigation rplidar_gmapping_demo.launch 
ROS_NAMESPACE=tb2_1 roslaunch turtlebot_navigation rplidar_gmapping_demo.launch 

(2)启动map-merge融合地图
在主机端另起两个新的终端输入:

 roslaunch turtlebot_navigation multi_map_merge.launch rviz

具体multi_map_merge.launch文件的内容如下:

<launch><arg name="first_tb2"  default="tb2_0"/><arg name="second_tb2" default="tb2_1"/><arg name="first_tb2_x_pos" default="0.0"/><arg name="first_tb2_y_pos" default="0.5"/><arg name="first_tb2_z_pos" default=" 0.0"/><arg name="first_tb2_yaw"   default=" 0.0"/><arg name="second_tb2_x_pos" default="0.0"/><arg name="second_tb2_y_pos" default="-0.5"/><arg name="second_tb2_z_pos" default=" 0.0"/><arg name="second_tb2_yaw"   default=" 0.0"/><group ns="$(arg first_tb2)/map_merge"><param name="init_pose_x"   value="$(arg first_tb2_x_pos)"/><param name="init_pose_y"   value="$(arg first_tb2_y_pos)"/><param name="init_pose_z"   value="$(arg first_tb2_z_pos)"/><param name="init_pose_yaw" value="$(arg first_tb2_yaw)"  /></group><group ns="$(arg second_tb2)/map_merge"><param name="init_pose_x"   value="$(arg second_tb2_x_pos)"/><param name="init_pose_y"   value="$(arg second_tb2_y_pos)"/><param name="init_pose_z"   value="$(arg second_tb2_z_pos)"/><param name="init_pose_yaw" value="$(arg second_tb2_yaw)"  />
</group><node pkg="multirobot_map_merge" type="map_merge" respawn="false" name="map_merge" output="screen"><param name="robot_map_topic" value="map"/><param name="robot_namespace" value="tb2"/><param name="merged_map_topic" value="map"/><param name="world_frame" value="map"/><param name="known_init_poses" value="false"/><param name="merging_rate" value="0.5"/><param name="discovery_rate" value="0.05"/><param name="estimation_rate" value="0.1"/><param name="estimation_confidence" value="1.0"/></node><node pkg="tf" type="static_transform_publisher" name="world_to_$(arg first_tb2)_tf_broadcaster"  args="0 0 0 0 0 0 /map /$(arg first_tb2)/map 100"/><node pkg="tf" type="static_transform_publisher" name="world_to_$(arg second_tb2)_tf_broadcaster" args="0 0 0 0 0 0 /map /$(arg second_tb2)/map 100"/><!-- <node pkg="tf" type="static_transform_publisher" name="world_to_$(arg third_tb2)_tf_broadcaster" args="0 0 0 0 0 0 /map /$(arg second_tb2)/map 100"/> --></launch>

控制小车运动实现地图构建与融合。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部