#include <ros/ros.h>
#include <pcl_ros/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl_conversions/pcl_conversions.h>
typedef pcl::PointCloud<pcl::PointXYZRGB> PointCloud;
int main(int argc, char** argv)
{
ros::init (argc, argv, "pub_pcl");
ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<PointCloud> ("points2", 1);
ros::Rate loop_rate(1);
while (nh.ok())
{
PointCloud::Ptr msg (new PointCloud);
msg->header.frame_id = "/my_frame";
pcl_conversions::toPCL(ros::Time::now(), msg->header.stamp);
msg->height = 480;
msg->width = 640;
msg->points.resize(480*640);
for(int n=0; n<480; ++n) {
for(int m=0; m<640; ++m) {
msg->points[n*480+m].x = 1.0;
msg->points[n*480+m].y = 0.01*(m-320);
msg->points[n*480+m].z = 0.01*n;
msg->points[n*480+m].r = 200;
msg->points[n*480+m].g = 0;
msg->points[n*480+m].b = 0;
msg->points.push_back (msg->points[n*480+m]);
}
}
pcl_conversions::toPCL(ros::Time::now(), msg->header.stamp);
pub.publish (msg);
ros::spinOnce ();
loop_rate.sleep ();
}
}
DeanKHさん、ご返信ありがとうございます。
私はindigo環境で研究を行っているので、ご提案頂いたように Intensity (輝度) の設定をいじってみようと添付しましたプログラムのまま何も変えずに実行したところ、なぜか今日は rviz 画面左の Display の表示が変わり写真のように出力されました。ここ一ヶ月近く常に白色の点群しか出力されなかったのにも関わらずです。rviz のプログラムに何か修正が行われたのでしょうか。
なにわともあれ、解決することができました。ご協力感謝いたします。