当前位置:   article > 正文

Ros中Remap(话题重映射)的两种使用方法(这个真的是折磨我好久的一个坑啊)_remap topic没有topic内容

remap topic没有topic内容

最近在remap机器人发布的joint_states的时候遇到了一些问题,在此以几个例子记录一下launch文件的配置。
先敲黑板!!!:

  • remap在node之外的作用域是他之后的所有节点,在node中的作用域是当前节点,此外要注意想要remap的话题是这个节点要接收的还是要发布的。
  • 如果是要remap一个该节点发布的source_topictarget_topic,应该是<remap from="/source_topic" to="/target_topic" />
  • 如果是要remap一个该节点想要接收的的target_topic,而实际被另外一个节点发布的话题是source_topic,应该是<remap from="/target_topic" to="/source_topic" />
    举两个例子!要注意区分两种使用情况!

1、remap要发布的话题

节点中通过ros::Publisher发布了base/joint_states,head/joint_states,torso/joint_states,想要把发布出来的话题重映射到joint_states上,可以这么写:

<?xml version="1.0"?>
<launch>

    <group ns="dhrobot">
        <remap from="base/joint_states" to="joint_states" />
        <remap from="head/joint_states" to="joint_states" />
        <remap from="torso/joint_states" to="joint_states" /> 
        <node name="robot_driver" pkg="dhrobot_driver" type="robot_driver" />
    </group>

</launch>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

rostopic list一下可以看到话题:

/dhrobot//joint_states

2、remap要接收的话题

节点中通过Ros::Subscriber想要接收/image话题,但是实际摄像头发布的话题是/kinect2/hd/image_color,所以需要这样处理:

<?xml version="1.0"?>
<launch>
   <node name="robot_visual" pkg="dhrobot_demo" type="robot_visual" >
	<remap from="/image" to="/kinect2/hd/image_color" />  
  </node>  
</launch>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 最后附一下在终端中节点启动时的remap方法,还是举两个例子,一个发布一个接收:
rosrun joint_state_pub base/joint_states:=joint_states
rosrun robot_state_publisher /joint_states:=/base/joint_states
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/90338
推荐阅读
相关标签
  

闽ICP备14008679号