Я пытаюсь создать собственное облако точек с гауссовским распределением. Визуализация с помощью rviz не работает.RVIZ: показать собственное облако точек
Вот как я создаю PointCloud
int sizeOfCloud = 1000;
keypoints.points.resize(sizeOfCloud);
getRandomPointCloud(keypoints, 100, 100, sizeOfCloud);
keypoints.header.frame_id = "base_link";
keypoints.header.stamp = ros::Time::now();
keypoints_publisher.publish(keypoints);
и здесь функция getRandomPointCloud:
void getRandomPointCloud(sensor_msgs::PointCloud& pc, int centerX, int centerY, int& sizeOfCloud) {
std::random_device rd;
std::mt19937 gen(rd());
std::normal_distribution<> distX(centerX, 10);
std::normal_distribution<> distY(centerY, 10);
for (int i = 0; i < pc.points.size(); i++) {
double xValue = distX(gen);
double yValue = distY(gen);
std::cout << std::round(xValue) << std::endl;
pc.points[i].x = std::round(xValue);
pc.points[i].y = std::round(yValue);
}
std::cout << "done" << std::endl;
}
Как я уже сказал, это не может быть отображена в rviz. Я выбираю по теме, выбираю нужную тему, а затем ничего нет на экране. Тема правильная, и если я установил сетку в base_link, тогда все с темой будет в порядке. Возможно, мне нужно установить специальный атрибут в rviz или я не правильно построю свой pointcloud.
Edit:
Теперь я думаю, что проблема больше о «base_link» ТФ тему, которая не может получить решен. Если я попытаюсь отобразить мое дерево tf, то нет записи. Как установить base_link в моем tf-дереве. Или есть еще одна возможность для моей цели?
ли ваш вопрос был дан ответ? – cassinaj