chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS中發(fā)布激光掃描消息

新機器視覺 ? 來源:機器視覺智能檢測 ? 作者:機器視覺智能檢測 ? 2022-04-07 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


	

激光雷達(dá)工作時會先在當(dāng)前位置發(fā)出激光并接收反射光束,解析得到距離信息,而后激光發(fā)射器會轉(zhuǎn)過一個角度分辨率對應(yīng)的角度再次重復(fù)這個過程。

限于物理及機械方面的限制,激光雷達(dá)通常會有一部分“盲區(qū)”。使用激光雷達(dá)返回的數(shù)據(jù)通??梢悦枥L出一幅極坐標(biāo)圖,極點位于雷達(dá)掃描中心,0-360°整周圓由掃描區(qū)域及盲區(qū)組成。

在掃描區(qū)域中激光雷達(dá)在每個角度分辨率對應(yīng)位置解析出的距離值會被依次連接起來,這樣,通過極坐標(biāo)表示就能非常直觀地看到周圍物體的輪廓,激光雷達(dá)掃描范圍示意圖可以參見下圖。

cf45ef16-b604-11ec-aa7f-dac502259ad0.jpg

激光雷達(dá)通常有四個性能衡量指標(biāo):測距分辨率、掃描頻率(有時也用掃描周期)、角度分辨率及可視范圍。

測距分辨率衡量在一個給定的距離下測距的精確程度,通常與距離真實值相差在5-20mm;掃描頻率衡量激光雷達(dá)完成一次完整掃描的快慢,通常在10Hz及以上;

角度分辨率直接決定激光雷達(dá)一次完整掃描能返回多少個樣本點;可視范圍指激光雷達(dá)完整掃描的廣角,可視范圍之外即為盲區(qū)。

目前,移動機器人的研究中已經(jīng)大量使用激光雷達(dá)輔助機器人的避障導(dǎo)航。通常激光雷達(dá)會提供ROS驅(qū)動,如果沒有的話我們也可以自己采集激光數(shù)據(jù)后按照ROS中定義的消息格式將信息發(fā)布出去。

首先,輸入下面的指令查看LaserScan消息結(jié)構(gòu):

rosmsg show sensor_msgs/LaserScan

LaserScan消息結(jié)構(gòu)如下:

std_msgs/Header header     
uint32 seq
time stamp      
string frame_id  
# in frame frame_id, angles are measured around 
the positive Z axis (counterclockwise, if Z is up)             
# with zero angle being forward along the x axis                   
float32 angle_min    
# start angle of the scan [rad]float32 angle_max    
# end angle of the scan [rad]float32 angle_increment # angular distance between measurements [rad]
float32 time_increment  
# time between measurements [seconds] - if your scanner             
# is moving, this will be used in interpolating position             
# of 3d pointsfloat32 scan_time    
# time between scans [seconds]
float32 range_min    
# minimum range value [m]float32 range_max    
# maximum range value [m]
float32[] ranges     
# range data [m] (Note: values < range_min or > range_max should be discarded)float32[] intensities  
# intensity data [device-specific units]. If your device does not provide intensities, please leave the array empty.

以下圖為例,該激光雷達(dá)掃描范圍為270°,角度分辨率為0.25°,掃描距離為0~20m,每掃描一圈會得到1081個點:

cf5f3f2a-b604-11ec-aa7f-dac502259ad0.jpg

那么該激光雷達(dá)發(fā)布的LaserScan消息內(nèi)容如下:

angle_min= -135 * (pi/180);    
//angle correspond to FIRST beam in scan ( in rad)angle_max= 135 * (pi/180);    
//angle correspond to LAST beam in scan ( in rad)angle_increment =0.25 * (pi/180); 
// Angular resolution i.e angle between 2 beams
// lets assume sensor gives 50 scans per second. i.e every 20 milli seconds 1 scan with 1081 beams.
// Each beam is measured in (20 ms/ 1081 ) ~ = 0.0185 mstime_increment = (1 / 50) / (1081); 
scan_time = ;  
// scan is collected at which timerange_min =0 ;  
// in metersrange_max = 20; 
// scan can measure upto this range// ranges is array of 1081 floats for each laser beamranges[0] =   
//distance measure corresponds to angle -135 degranges[1] =   
//distance measure corresponds to angle -134.75 deg  
.  
.  
.ranges[1080] =  
//distance measure corresponds to angle +135 deg
// To understand Intensities // if a laser beam hits reflective surface like glass it will have intensity 1. 
// And if beam hit some surface which absorbs laser , then intensity is zero. 
// Middle values are different surfaces in between.

下面的代碼模擬了激光雷達(dá)的數(shù)據(jù),并將sensor_msgs/LaserScan消息發(fā)布到/scan話題上:

#include #include 
int main(int argc, char** argv){  
ros::init(argc, argv, "laser_scan_publisher");  
ros::NodeHandle n;
  ros::Publisher scan_pub = n.advertise("scan", 50);
  unsigned int num_readings = 100;  
double laser_frequency = 40;  
double ranges[num_readings];  
double intensities[num_readings];  
int count = 0;
  ros::Rate r(1.0);
  while(n.ok())  
{    
//generate some fake data for our laser scan    
for(unsigned int i = 0; i < num_readings; ++i)    
{      
ranges[i] = count;      
intensities[i] = 100 + count;    
}    
ros::Time scan_time = ros::now();
    //populate the LaserScan message    
sensor_msgs::LaserScan scan;    
scan.header.stamp = scan_time;    
scan.header.frame_id = "base_link";    
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 < num_readings; ++i)    
{      
scan.ranges[i] = ranges[i];      
scan.intensities[i] = intensities[i];    
}
    
scan_pub.publish(scan);
    ++count;    
r.sleep();  
}}

可以在rviz中將激光數(shù)據(jù)點顯示出來:Fixed Frame修改為base_link,添加LaserScan并將Topic設(shè)為/scan

cf75df3c-b604-11ec-aa7f-dac502259ad0.gif

如果Fixed Frame為map,為了能正確顯示出激光掃描點來,需要發(fā)布map和base_link之間的坐標(biāo)變換關(guān)系(因為我們的激光數(shù)據(jù)是相對于base_link坐標(biāo)系描述的)。

如果這兩個參考系不發(fā)生相對位置變化,那么可以用static_transform_publisher工具發(fā)布兩個參考系之間的靜態(tài)坐標(biāo)變換。

命令的格式如下:

static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_msstatic_transform_publisher x y z qx qy qz qw frame_id  child_frame_id period_in_ms

以上兩種命令格式,需要設(shè)置坐標(biāo)的偏移和旋轉(zhuǎn)參數(shù),偏移參數(shù)都使用相對于x、y、z三軸的坐標(biāo)位移。旋轉(zhuǎn)參數(shù)第一種命令格式使用以弧度為單位的 yaw/pitch/roll三個角度,第二種命令格式使用四元數(shù)表達(dá)旋轉(zhuǎn)角度。發(fā)布頻率以ms為單位,一般100ms比較合適。

static_transform_publisheris designed both as a command-line tool for manual use, as well as for use withinroslaunchfiles for setting static transforms. For example:

"tf" type="static_transform_publisher" 
name="link1_broadcaster" 
args="1 0 0 0 0 0 1 link1_parent link1 100" />

ROS中使用激光雷達(dá)(鐳神智能)

LS01C是深圳市鐳神智能系統(tǒng)有限公司研發(fā)的激光三角測距系統(tǒng) 。

在機械旋轉(zhuǎn)模塊的帶動下,LS01C 的高頻核心測距模塊將進(jìn)行順時鐘旋轉(zhuǎn),從而實現(xiàn)對周圍環(huán)境進(jìn)行360°掃描測距。LS01C通過uart 串口信號與外部系統(tǒng)通訊,默認(rèn)每秒采樣3600點、掃描頻率10hz,最大掃描距離6m,角度分辨率為1度。

將LS01C的ROS驅(qū)動文件(官網(wǎng)上沒有下載連接,直接打電話給客服要的)解壓重命名為talker后復(fù)制到catkin_ws/src下面,然后使用catkin_make進(jìn)行編譯

cf9b2260-b604-11ec-aa7f-dac502259ad0.png

插入USB后在終端中輸入以下命令查看USB轉(zhuǎn)串口設(shè)備:

cfb1dd84-b604-11ec-aa7f-dac502259ad0.png

在發(fā)現(xiàn)ttyUSB0后在終端中輸入下面命令給USB 轉(zhuǎn)串口設(shè)置權(quán)限:

sudo chmod 666 /dev/ttyUSB0

修改launch文件中的串口名,改為我們插入的ttyUSB0

  "talker" pkg="talker" type="talker">    
"scan_topic" value="scan"/>          "laser_link" value="laser_link"/>       
"serial_port" value="/dev/ttyUSB0"/>   

然后執(zhí)行l(wèi)aunch文件

roslaunch talker talker.launch

在終端中可以看到talker節(jié)點已經(jīng)開啟:

cfcb636c-b604-11ec-aa7f-dac502259ad0.png

打開rviz,添加LaserScan并設(shè)置topic和參考坐標(biāo)系,可以動態(tài)的顯示激光掃描點:

cfdc7062-b604-11ec-aa7f-dac502259ad0.gif

還可以通過 rostopic hz命令查看激光數(shù)據(jù)發(fā)布頻率,可以看出其頻率為10Hz

cff04056-b604-11ec-aa7f-dac502259ad0.png ?

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 激光掃描
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    12067
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    979

    文章

    4465

    瀏覽量

    196468

原文標(biāo)題:ROS中發(fā)布激光掃描消息

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    禾賽科技激光雷達(dá)JT64P助力華測導(dǎo)航手持激光掃描儀RS7發(fā)布

    中國高精度測繪設(shè)備正在向全球化布局縱深推進(jìn),全球高精度時空信息產(chǎn)業(yè)引領(lǐng)者華測導(dǎo)航面向海外市場推出新一代手持激光掃描儀 RS7,新產(chǎn)品搭載禾賽迷你型超半球高精度 3D 激光雷達(dá) JT64P。雙方
    的頭像 發(fā)表于 03-02 17:39 ?1466次閱讀

    米爾RK3576成功上車!ROS2 Humble生態(tài)系統(tǒng)體驗

    ROS_DISTRO=humble ROS_PYTHON_VERSION=3 確認(rèn)運行ROS2 Humble長期支持版,生態(tài)完整。 2. 通信測試話題發(fā)布/訂閱:C++與Python
    發(fā)表于 01-15 18:30

    SICK激光掃描儀:為工業(yè)高精度檢測及測量保駕護(hù)航

    作為工業(yè)傳感器領(lǐng)域的全球領(lǐng)先企業(yè),SICK公司憑借其創(chuàng)新的激光掃描技術(shù),為各行各業(yè)提供了多種高效、可靠的解決方案。從簡單的物體檢測到復(fù)雜的安全防護(hù),__SICK激光掃描儀__產(chǎn)品正不斷
    的頭像 發(fā)表于 11-06 14:25 ?320次閱讀
    SICK<b class='flag-5'>激光</b><b class='flag-5'>掃描</b>儀:為工業(yè)高精度檢測及測量保駕護(hù)航

    【CIE全國RISC-V創(chuàng)新應(yīng)用大賽】+基于MUSE Pi Pro的3d激光里程計實現(xiàn)

    start_system.sh echo \"啟動3D激光里程計系統(tǒng)\" 啟動雷達(dá)驅(qū)動 ros2 launch rs_driver rs_driver.launch.py & 等待雷達(dá)
    發(fā)表于 10-24 17:02

    如何使用menuconfig添加配置micro-ros軟件包?

    請問有沒有最新的rtthread移植micro-ros移植使用教程,使用menuconfig添加配置micro-ros軟件包?
    發(fā)表于 09-25 06:37

    掃描、測距新方案亮相,固態(tài)激光雷達(dá)再進(jìn)一步

    今年光博會期間發(fā)布了一個名為“萬向光控”的全新全固態(tài)激光雷達(dá)光掃描方案,最近幾天這項技術(shù)在業(yè)內(nèi)也引發(fā)了高度關(guān)注和討論。 ? 目前市面上的激光雷達(dá)產(chǎn)品,都需要有一個光
    發(fā)表于 09-19 18:17 ?5085次閱讀
    <b class='flag-5'>掃描</b>、測距新方案亮相,固態(tài)<b class='flag-5'>激光</b>雷達(dá)再進(jìn)一步

    如何基于翼輝信息SylixOS開發(fā)ROS 2應(yīng)用

    ROS 2(Robot Operating System 2)是機器人操作系統(tǒng)(ROS)的升級版,是一套開源的專為機器人開發(fā)而設(shè)計的軟件庫與工具集。作為構(gòu)建機器人應(yīng)用的強大框架,提供從硬件驅(qū)動到先進(jìn)
    的頭像 發(fā)表于 08-14 15:44 ?1988次閱讀
    如何基于翼輝信息SylixOS開發(fā)<b class='flag-5'>ROS</b> 2應(yīng)用

    激光振鏡掃描錫機的優(yōu)勢

    激光振鏡掃描錫機采用激光振鏡掃描技術(shù),將激光束通過振鏡反射后,轉(zhuǎn)化為快速掃描
    的頭像 發(fā)表于 08-11 17:22 ?860次閱讀

    超酷的樹莓派激光雷達(dá)掃描儀!

    摘要這款DIY的PiLiDAR掃描儀項目利用樹莓派進(jìn)行激光雷達(dá)測繪。激光雷達(dá)通過發(fā)射激光掃描周圍環(huán)境,從而創(chuàng)建三維模型。該項目需要樹莓派4
    的頭像 發(fā)表于 06-01 08:33 ?1074次閱讀
    超酷的樹莓派<b class='flag-5'>激光</b>雷達(dá)<b class='flag-5'>掃描</b>儀!

    ros2教程

    電子發(fā)燒友網(wǎng)站提供《ros2教程.pdf》資料免費下載
    發(fā)表于 05-23 09:12 ?1次下載

    如何在MQTT中發(fā)布和訂閱實體

    在MQTT中發(fā)布和訂閱實體(主題)是MQTT通信的核心操作,下面將詳細(xì)介紹其原理、步驟以及示例代碼,幫助你全面理解這一過程。 一、MQTT發(fā)布與訂閱的基本概念 發(fā)布(Publish):客戶端將
    的頭像 發(fā)表于 05-20 17:21 ?1415次閱讀

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用

    閱讀心得體會:ROS2機器人視覺與地圖構(gòu)建技術(shù) 通過對本書第7章(ROS2視覺應(yīng)用)和第8章(ROS2地圖構(gòu)建)的學(xué)習(xí),我對機器人視覺感知和自主導(dǎo)航的核心技術(shù)有了更深入的理解。以下是我的心得體會
    發(fā)表于 05-03 19:41

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】+ROS2應(yīng)用案例

    的應(yīng)用。書中詳細(xì)介紹了如何在ROS 2中實現(xiàn)二維碼識別,包括二維碼掃描庫Zbar的使用,以及如何通過相機識別二維碼。 通過學(xué)習(xí)這一部分,我了解到二維碼識別的基本原理和實現(xiàn)步驟。首先,需要通過相機獲取環(huán)境圖像
    發(fā)表于 04-27 11:42

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】+內(nèi)容初識

    地圖構(gòu)建→路徑規(guī)劃→動態(tài)避障)等等 2. 機器人功能開發(fā) 相較于ROS入門21講,書中更是詳細(xì)書寫了關(guān)于機器人的功能開發(fā),并且十分完善,教程詳盡 傳感器數(shù)據(jù)處理:機器人通常配備多種傳感器,如激光
    發(fā)表于 04-27 11:24

    超簡易!線激光3D輪廓掃描方案,解鎖多元應(yīng)用

    在生產(chǎn)、科研場景中,對小型物體進(jìn)行三維掃描和尺寸測量的需求越來越多,如何擁有一套超簡易、性價比超高,還應(yīng)用廣泛的線激光傳感器 3D 掃描方案呢?還能輕松攻克尺寸不大于 200mm 物體的測量難題呢?
    的頭像 發(fā)表于 04-07 15:29 ?1221次閱讀
    超簡易!線<b class='flag-5'>激光</b>3D輪廓<b class='flag-5'>掃描</b>方案,解鎖多元應(yīng)用