色付き点群の出力について

1,809 views
Skip to first unread message

akitosh...@gmail.com

unread,
Aug 11, 2017, 8:32:32 AM8/11/17
to ROS JAPAN Users Group
学生です。かなり初歩的なことであるとは思うのですが、いろいろと試行錯誤してみても解決できないため質問させていただきます。

私は色の付いた点群を出力するプログラムを書いています。 なので、私は以下のようにプログラムを書きましてが、rvizでは図に示すように白色の点群が出力されるだけでした。 rgb値をさまざまな値に変更しましたが、何も変化はありませんでした。 どうすればよいのでしょうか?


#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

unread,
Aug 11, 2017, 5:40:59 PM8/11/17
to ROS JAPAN Users Group


Kinetic環境で添付コードをそのまま実行したところ色自体は付いているのを確認しました.
添付されているrvizの画面を見ると表示の仕様が違うようですが,どのディストリビューションを使用しているのでしょうか.
おそらくrviz側でPointCloud2の "ColorTransform" の設定が Intensity (輝度) に設定されているからではないでしょうか.
Kineticではそのあたりの詳細な設定はないようです.




2017年8月11日金曜日 21時32分32秒 UTC+9 akitosh...@gmail.com:

akitosh...@gmail.com

unread,
Aug 12, 2017, 3:26:02 AM8/12/17
to ROS JAPAN Users Group

DeanKHさん、ご返信ありがとうございます。

私はindigo環境で研究を行っているので、ご提案頂いたように Intensity (輝度) の設定をいじってみようと添付しましたプログラムのまま何も変えずに実行したところ、なぜか今日は rviz 画面左の Display の表示が変わり写真のように出力されました。ここ一ヶ月近く常に白色の点群しか出力されなかったのにも関わらずです。rviz のプログラムに何か修正が行われたのでしょうか。


なにわともあれ、解決することができました。ご協力感謝いたします。



Reply all
Reply to author
Forward
0 new messages