2017-09-22 4 views
0

방금 ​​ROS를 사용하기 시작했습니다.ROS : 다른 네임 스페이스의 주제를 구독하십시오.

는 내가 달성하기 위해 노력하고있어 이것이다 :

enter image description here

이 이미 한 일이다

  • 게시하고 topic_b에 가입.

  • NS1에 게시/topic_a가

  • 는 NS2에 가입 (나는 rostopic echo /ns2/topic_a로 확인) NS2/topic_a에 게시

  • (내가 rostopic echo /ns1/topic_a로 확인)/topic_a (ros::Subscriber sub = n.subscribe("topic_a", 1000, callback);)

내가 뭘 해야할지 모르겠다.

  • node_b에서 ns1/topic_a에 가입하십시오.

    1 /이 node_b.cpp에서, 내가/topic_a_temp에 가입 :

자습서를 읽은 후, 나는이 시도. 발사 파일에서

2 /은 Node_B는 태그 내부에, 나는

<remap from="topic_a_temp" to="ns1/topic_a"> 추가 그러나 그것은 작동하지 않습니다.

저는 초보자이지만 ns2 노드에서 ns1 주제를 읽는 법을 모르기 때문에 매우 기본적인 것일 수 있습니다.

+1

문제를 해결하기 위해 도움이 될 수 있습니다 가입하는 주제 노드를 확인하기 위해 다른 자기 성찰의 도구 '<다시 매핑 "/ NS1/topic_a"=로 = "topic_a_temp"에서>'? 추가 된 슬래시는 노드가 시작하는 네임 스페이스와 관계없이 ROS가 작성한대로 이름을 찾도록 지시합니다. 또한'rosnode info' 또는 다른 인트로 스펙 션 도구를 사용하여 노드가 실제로 가입 한 주제를 확인하는 것이 도움이 될 수 있습니다 이러한 문제를 해결하기 위해. – mikkola

+0

이런 젠장. 그 슬래시가 효과가있었습니다! 고맙습니다. –

답변

0

당신의 화제 재 배열 명령에 슬래시를 추가, 당신의 도움을 주셔서 감사합니다 : <remap from="topic_a_temp" to="/ns1/topic_a">

ROS 다음은 노드가 시작되는 네임 스페이스를 기준으로하지 쓰여 세계적으로 이름을 찾습니다 자세한 내용은 how names are resolved in ROS을 참조하십시오.

rosnode info 또는 실제로 이러한 문제 방법에 대한