TurtleBot3机器人编队

TurtleBot3电子手册:
http://emanual.robotis.com/docs/en/platform/turtlebot3/overview/

1.仿真环境下建图
roslaunch turtlebot3_gazebo turtlebot3_world.launch
roslaunch turtlebot3_slam turtlebot3_slam.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
rosrun map_server map_saver -f fangzhen(-f后面加的是待命名的文件名,保存位置是当前运行终端的根目录下)

2.启动多机器人编队
roslaunch turtlebot3_gazebo multi_turtlebot3.launch
./fangzhen.sh
(roslaunch turbot3_navigation navigation_multi_map.launch map_file:=$HOME/fangzhen.yaml
roslaunch turbot3_navigation navigation_multi_0.launch
roslaunch turbot3_navigation navigation_multi_1.launch
roslaunch turbot3_navigation navigation_multi_2.launch
roslaunch turbot3_rviz navigation_multi.launch(
rosbag record tb3_0/odom tb3_1/odom tb3_2/odom
rosrun set_point set_point

3.matlab出角速度线速度图片
filepath = fullfile(‘D:\Desktop\路径’);
bag_v = rosbag(filepath);
bagselect_odom = select(bag_v, ‘Topic’, ‘/tb3_0/odom’);
bagselect_odom_combined = select(bag_v,‘Topic’,’/tb3_1/odom’);
bagselect_odom_combined_combined = select(bag_v,‘Topic’,’/tb3_2/odom’);

msgs_odom = readMessages(bagselect_odom);

v1 = timeseries(bagselect_odom,‘Twist.Twist.Linear.X’);
v2 = timeseries(bagselect_odom_combined,‘Twist.Twist.Linear.X’); %%线速度图像
v3 = timeseries(bagselect_odom_combined_combined,‘Twist.Twist.Linear.X’);

% v1 = timeseries(bagselect_odom,‘Twist.Twist.Angular.Z’);
% v2 = timeseries(bagselect_odom_combined,‘Twist.Twist.Angular.Z’); %%角速度图像
% v3 = timeseries(bagselect_odom_combined_combined,‘Twist.Twist.Angular.Z’);

% ts_odom = timeseries(bagselect_odom, ‘Pose.Pose.Position.X’);
% ts2_odom = timeseries(bagselect_odom,‘Pose.Pose.Position.Y’);
% ts3_odom = timeseries(bagselect_odom,‘Pose.Pose.Position.X’);
% ts_odom_combined = timeseries(bagselect_odom_combined, ‘Pose.Pose.Position.X’);
% ts2_odom_combined = timeseries(bagselect_odom_combined,‘Pose.Pose.Position.Y’);
% ts2_odom_combined = timeseries(bagselect_odom_combined,‘Pose.Pose.Position.Y’);

% q0 = timeseries(bagselect_odom, ‘Pose.Pose.Orientation.X’);
% q1 = timeseries(bagselect_odom, ‘Pose.Pose.Orientation.Y’);
% q2 = timeseries(bagselect_odom, ‘Pose.Pose.Orientation.Z’);
% q3 = timeseries(bagselect_odom, ‘Pose.Pose.Orientation.W’);
% [yaw_1,pitch_1,roll_1]=quat2angle([q0 q1 q2 q2],‘ZYX’);
% q_1 = [q0 q1 q2 q2];
% n_1=quatnormalize(q_1);
% [yaw_1,pitch_1,roll_1]=dcm2angle(n_1, ‘ZYX’);
% y1 = yaw_1.data;
%
% q4 = timeseries(bagselect_odom_combined, ‘Pose.Pose.Orientation.X’);
% q5 = timeseries(bagselect_odom_combined, ‘Pose.Pose.Orientation.Y’);
% q6 = timeseries(bagselect_odom_combined, ‘Pose.Pose.Orientation.Z’);
% q7 = timeseries(bagselect_odom_combined, ‘Pose.Pose.Orientation.W’);
% [yaw_2,pitch_2,roll_2]=quat2angle([q4 q5 q6 q7],‘ZYX’);
% q_2 = [q4 q5 q6 q7];
% n_2=quatnormalize(q_2);
% [yaw_2,pitch_2,roll_2]=dcm2angle(n_2, ‘ZYX’);
% y2 = yaw_2.data;

a = v1.Time;
b = v1.data;
c = v2.Time;
d = v2.data;
t = v3.Time;
u = v3.data;

% e = ts_odom.data;
% f = ts2_odom.data;
% g = ts_odom_combined.data;
% h = ts2_odom_combined.data;
% i = ts_odom.Time;
% j = ts2_odom_combined.Time;

plot(a,b,‘b’);
hold on;
plot(c,d,‘r’)
hold on;
plot(t,u,‘m’)

% line([1.606e+,279.101],[0.26,0.26],‘linestyle’,’–’);
set(gca,‘XTick’,560:5:620); %%前后分别对应图像的起点和终点
set(gca,‘XTicklabel’,{‘0’,‘5’,‘10’,‘15’,‘20’,‘25’,‘30’,‘35’,‘40’,‘45’,‘50’,‘55’,‘60’});
% set(gca,‘YTick’,-0.05:0.05:0.5);
% axis([248.862 279.101 -0.05 0.5]);
% text(248.862,0.3,‘0.26m/s’,‘fontsize’,24);

xlabel(‘时间(s)’,‘fontsize’,24,‘Fontname’,‘Helvetica’);
ylabel(‘速度(m/s)’,‘fontsize’,24,‘Fontname’,‘Helvetica’);
set(gcf,‘position’,[400,400,724,400])
% plot(c,d,‘r’);
% figure;
% plot(e,f,‘b’);
% hold on;
% plot(g,h,‘r’);
%角速度
% plot(i,y1,‘b’);
% hold on;
% plot(j,y2,‘r’);
%axis([0 3.5 0 2.0]);
legend(‘机器人A’,‘机器人B’,‘机器人C’);

1.起点终点设置
2.建地图
机器人起点位置设置
请添加图片描述
在gazebo里分别设置三个起点
请添加图片描述
通过gazebo可以看到位置坐标
请添加图片描述
在navigation设置机器人三个起点位置
请添加图片描述
分别设置终点位置请添加图片描述
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值