编队控制报错:
[ERROR] [1713507712.460793195]: "robot2/odom" passed to lookupTransform argument target_frame does not exist.
[ERROR] [1713507712.477341887]: "robot3/odom" passed to lookupTransform argument target_frame does not exist.
出错的代码:
try {
listener1.lookupTransform("/robot2/odom", "/robot1/odom",ros::Time(0), transformf1);
}
解决方案:
try {
listener1.lookupTransform("/robot2", "/robot1",ros::Time(0), transformf1);
}
此外,修改参数!!!!!很重要!!都可以试试看,发现仍然有报错,但是可以实现跟踪控制了,但是机器人会撞墙并且2和3现在目标都是跟着1(根据跟踪乌龟改的,所以接下来还要修改2和3的目标),下一步规划:加入nash博弈(robot2/3)和stackberg博弈(robot1和其他)改善多机器人协同路径规划的性能。
我修改的参数:
global/local_costmap_params.yaml:
# update_frequency: 1.0
# publish_frequency: 1.0
update_frequency: 0.3
publish_frequency: 0.3由1.0改成了0.3(我这个是因为报错上显示频率过高了,它有显示能支持多大的频率,算一下就好了)此外,别忘了global和local都要改,两者保持一致
local_costmap_params.yaml:
inflation_radius: 0.6(每个人可能不一样,我也是看一个博主说的,抱着改改试试看的想法,每次减少0.2改的,从1.0改到了0.6,发现挺好的,就保留了,因为不是csdn也不是github,是ros-question,我忘记收藏了不能贴网址了)
不是参数,但还是记录一下:我把global/local_costmap_params.yaml中的static_map都注释掉了,原因见参考链接,不过plugin中我原本也注释掉了,后来运行发现,它给我改过来,plugin中是没有注释掉的,不知道原因
dwa_