-
大小: 5KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-20
- 語言: 其他
- 標簽: Laserscan??PointCloud??ROS??
資源簡介
在使用ROS各個傳感器消息之前,弄清楚各個傳感器在ROS是如何表示的顯得極為重要。特別是,Laserscan, PointCloud等用了很久之后,感覺已經(jīng)很熟悉了,但是一些細節(jié)行的東西一直沒有深究,并且對某些參數(shù)難以形成直覺上的認識,很大程度上影響了在與其他算法或者硬件銜接時的問題。這里,我單獨的將Laserscan,PointCloud發(fā)布在rviz中,通過修改不同的ROS消息參數(shù),直觀的觀察其在參數(shù)的作用。

代碼片段和文件信息
#include?
#include?
int?main(int?argc?char**?argv){
??ros::init(argc?argv?“l(fā)aser_scan_publisher“);
??ros::NodeHandle?n;
??ros::Publisher?scan_pub?=?n.advertise(“scan“?50);
??unsigned?int?num_readings?=?10000;
??double?laser_frequency?=?40;
??double?ranges[num_readings];
??double?intensities[num_readings];
??int?count?=?10;
??ros::Rate?r(1.0);
??while(n.ok()){
????//generate?some?fake?data?for?our?laser?scan
????for(unsigned?int?i?=?0;?i???????ranges[i]?=?count;
??????intensities[i]?=?10*i;
????}
????ros::Time?scan_time?=?ros::Time::now();
????//populate?the?LaserScan?message
????sensor_msgs::LaserScan?scan;
????scan.header.stamp?=?scan_time;
????scan.header.frame_id?=?“sensor_frame“;
????scan.angle_min?=?-1.57;
????scan.angle_max?=?1.57;
????scan.angle_increment?=?3.14?/?num_readings;
????scan.time_increment?=?(1?/?laser_frequency)?/?(num_readings);
????scan.range_min?=?0.0;
????scan.range_max?=?100.0;
????scan.ranges.resize(num_readings);
????scan.intensities.resize(num_readings);
????for(unsigned?int?i?=?0;?i???????scan.ranges[i]?=?ranges[i];
??????scan.intensities[i]?=?intensities[i];
????}
????scan_pub.publish(scan);
????//?++count;
????ROS_WARN_STREAM(“count“< ????r.sleep();
??}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-15?13:03??pubsensors\
?????文件????????7179??2018-03-15?13:45??pubsensors\CMakeLists.txt
?????文件????????1899??2018-03-15?13:03??pubsensors\package.xm
?????目錄???????????0??2018-03-15?13:44??pubsensors\src\
?????文件?????????987??2018-03-16?01:32??pubsensors\src\pubPointCloud.cpp
?????文件????????1327??2018-03-16?01:21??pubsensors\src\pubLaserscan.cpp
評論
共有 條評論