ros-重映射机制
ROS 的设计目标是提高代码的复用率,所以 ROS 社区中的很多功能包我们都可以拿来直接使用,而不需要关注功能包的内部实现。 那么问题就来了,别人功能包的接口不一定和我们的系统兼容呀?ROS 提供一种重映射的机制,简单来说就是取别名,类似于 C++中的别名机制,我们不需要修改别人功能包的接口,只需要将接口名称重映射一下,取个别名,我们的系统就认识了(接口的数据类型必须相同)。 launch 文件中的<remap>标签可以帮我们实现这个重映射的功能。
比如 turtlebot 的键盘控制节点,发布的速度控制指令话题是/turtlebot/cmd_vel但
是我们自己的机器人订阅的速度控制话题是/cmd_vel,这个时候使用<remap>就可以轻松解决问题,将/ turtlebot /cmd_vel 重映射为/cmd_vel,我们的机器人就可以接收到速度控制指令了:
<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>
角速度: