무대 ROS에 10 개의 로봇이 있고 위치가 /base_pose_ground_truth
인 주제를 구독하고 싶습니다. 그것은, 내가 robot0_base_pose_ground_truth
, robot1_base_pose_ground_truth
에 가입해야 함을 의미합니다 ....ROS : 동일한 콜백 및 동일한 주제 (다른 색인 포함)를 correspondig 변수에 할당
마음에 오는 첫번째 방법은 다음과 같습니다
for(int i=0; i<RobotNumber; i++) {
char str[30] = "/robot_";
char index[4];
sprintf(index, "%d", i);
strcat(str, index);
strcat(str, "/base_pose_ground_truth");
GoalPos_sub[i] = Node.subscribe(str, 100, GetPos_callback);
}
콜백이 될 수있다 :
void GetPos_callback(const nav_msgs::Odometry::ConstPtr& msg) {
Goalpose[0] = msg->pose.pose.position.x;
Goalpose[1] = msg->pose.pose.position.y;
}
그러나 이것은하지 않습니다 각 로봇에 해당하는 10 가지 위치를 알려주십시오. 각 로봇의 위치를 대응하는 메모리 (예 : 배열 또는 벡터)에 넣을 수있는 방법을 모르겠습니다. 로봇 인덱스를 콜백에 대한 인수로 전달하고이를 위치 주제를 배열에 지정하는 데 사용할 수 있습니다.
이 문제에 대해 도움을 주시면 감사하겠습니다.