现在网上能查到的,基本就是教你安装后,直接运行下面这个命令:
ros2 run ros1_bridge dynamic_bridge --bridge-all-topics
问题是这样会转发所有消息,造成很大的网络开销
尝试只转发特定topic的消息,就遇到了大坑
试了各种方法,问各种大模型都不行
最后看了源码,暂时这么搞:
1.如果你是通过 apt
安装的 ros1_bridge,先卸载掉
2.下载源码
3.找到static_bridge.cpp,
// bridge one example topicstd::string topic_name = "chatter";std::string ros1_type_name = "std_msgs/String";std::string ros2_type_name = "std_msgs/msg/String";
把里面的topic_name 和 type_name 换成你需要的,重新编译
然后运行
ros2 run ros1_bridge static_bridge
就可以了