c++で引数で文字列(ファイルパス)を渡して読みみたいのですがエラーが出ます。
コマンド
$ rosrun pcl_execution pcl_viewer data/table_scene_lms400_downsampled.pcd
引数は「data/table_scene_lms400_downsampled.pcd」です。
エラーだと
[pcl::PCDReader::readHeader] No points to read
とファイルのパスと認識されていないようです。
解決方法を教えてください。よろしくお願いします。
うまくいく例(引数で渡さない)
c++
1int main(int argc, char** argv) 2{ 3 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>); 4 pcl::io::loadPCDFile("data/table_scene_lms400_downsampled.pcd", *cloud); 5 return 0 6}
引数で渡すと読み込めないで失敗する
c++
1int main(int argc, char** argv) 2{ 3 std::string pcdname = argv[0]; 4 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>); 5 pcl::io::loadPCDFile(pcdname, *cloud); 6 //pcl::io::loadPCDFile ("data/table_scene_lms400_downsampled.pcd", *cloud); 7 return 0 8}
エラー
zsh
1[pcl::PCDReader::readHeader] No points to read 2〜〜下は今回の問題とは関係ない部分〜〜 3[xcb] Unknown sequence number while processing queue 4[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called 5[xcb] Aborting, sorry about that. 6pcl_viewer: ../../src/xcb_io.c:260: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed. 7Aborted (core dumped)
argv[0] は引数ではなく、プログラムの名前が入ります。
https://qiita.com/keitean/items/1a79c96adcf3fc02b1e5
回答2件
あなたの回答
tips
プレビュー