尋求完善政府網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷渠道建設(shè)方案
????????介紹NVISTAR 的二維DTOF激光雷達(dá) ROC 300在EHub_tx1_tx2_E100載板,TX1核心模塊環(huán)境(Ubuntu18.04)下測試ROS1驅(qū)動(dòng)和ROS2的驅(qū)動(dòng),打開使用RVIZ 查看點(diǎn)云數(shù)據(jù),本文的前提條件是你的TX1里已經(jīng)安裝了ROS1版本:Melodic,ROS2版本:eloquent。
????????大家好,我是虎哥,從廠家那申請(qǐng)到了不止科技NVISTAR ROC 300雷達(dá)樣品,其實(shí)有一段時(shí)間了,周末花點(diǎn)功夫,測試接入試用一下。這一次我也第一次嘗試用ROS2 eloquent環(huán)境測試激光雷達(dá),由于自己也不是很熟悉,邊學(xué)邊測試,這里也是總結(jié)一下自己的簡單測試經(jīng)驗(yàn),分享給大家。
????????關(guān)于測試硬件EHub_tx1_tx2_E100載板請(qǐng)查看:EdgeBox_EHub_tx1_tx2_E100 開發(fā)板評(píng)測_機(jī)器人虎哥的博客-CSDN博客
目錄
一、參數(shù)指標(biāo):
1.1 主要參數(shù)指標(biāo)
二、資料及主要組件說明
2.1 開箱實(shí)物
2.2 網(wǎng)絡(luò)轉(zhuǎn)接板
三、NVISTAR 點(diǎn)云客戶端(windows版本)使用(micro-USB)
3.1 獲取工具軟件
3.2 雷達(dá)接入WIN電腦
3.3 工具軟件鏈接雷達(dá)
3.4 網(wǎng)絡(luò)轉(zhuǎn)接板參數(shù)配置
四、ROS1環(huán)境顯示點(diǎn)云(網(wǎng)口)
4.1 建立工作空間
4.2 拷貝代碼
4.3 編譯源碼包
4.4 將雷達(dá)通過網(wǎng)口接入E100系統(tǒng)
4.5 修改測試代碼環(huán)境為網(wǎng)口模式
4.6 重新編譯和啟動(dòng)
4.7 啟動(dòng)RVIZ查看點(diǎn)云
五、ROS2-eloquent驅(qū)動(dòng)測試(網(wǎng)口)
5.1 建立工作空間目錄
5.2 拷貝代碼
5.3 解決依賴關(guān)系(Resolve dependencies)
5.4 使用colcon 編譯工程
5.5 修改代碼,使用網(wǎng)口模式
5.6 運(yùn)行測試節(jié)點(diǎn),查看點(diǎn)云
六、總結(jié)
一、參數(shù)指標(biāo):
????????ROC 300 是不止技術(shù)推出的單線激光雷達(dá)產(chǎn)品。該雷達(dá)使用脈沖飛行時(shí)間法(Pulsed ToF)進(jìn)行距離測量,其內(nèi)部結(jié)構(gòu)采用轉(zhuǎn)鏡式設(shè)計(jì),即通過高速旋轉(zhuǎn)的反射鏡面將測距模塊發(fā)射的不可見紅外激光偏轉(zhuǎn)到不同的角度,從而實(shí)現(xiàn)對(duì)同一水平面 300°范圍內(nèi)環(huán)境輪廓的掃描測量。ROC 300 每秒可輸出 20K 點(diǎn)云數(shù)據(jù),同時(shí)可滿足客戶最大 50米測距需求;采用 905nm 紅外激光,配合自研信號(hào)處理算法,整機(jī)防塵防水達(dá)到 IP65,滿足戶外應(yīng)用場景需求。
?與同類產(chǎn)品相比,ROC 300 具有如下特點(diǎn):
-
遠(yuǎn)距離,高精度。由于采用脈沖測距原理并著力優(yōu)化光電設(shè)計(jì),ROC 300 對(duì)相同反射率的目標(biāo)具有更遠(yuǎn)的測量距離,且全量程精度都可以保證在+/-3cm 以內(nèi),非常適于大空間場景使用。
-
高轉(zhuǎn)速,低噪聲。采用反射鏡式旋轉(zhuǎn)掃描,轉(zhuǎn)動(dòng)部件僅為一面極輕的反射鏡片,所以可以達(dá)到 30HZ 的高轉(zhuǎn)速,最高可擴(kuò)展到 50HZ,且維持極低的噪聲,人耳幾乎聽不到。
-
可靠性高,通配性強(qiáng)。轉(zhuǎn)鏡式設(shè)計(jì)使雷達(dá)內(nèi)部的運(yùn)動(dòng)部件降至最少,提高了使用壽命并大大降低了機(jī)械振動(dòng)對(duì)運(yùn)行的影響;此外 ROC 300 采用 micro USB 接口設(shè)計(jì),可靈活切換 UART 和以太網(wǎng)口。
-
體積小,重量輕。雷達(dá)主體高度不超過 7.5 厘米且底座邊長僅為 5 厘米,便于在空間受限的場合安裝。
1.1 主要參數(shù)指標(biāo)
-
激光波長:905nm,class I
-
探測范圍:0.1m~50m
-
重復(fù)精度:3cm
-
水平視場角:300°
-
掃描頻率:10HZ~30HZ
-
水平角分辨率:0.18°(10HZ)~0.54°(30HZ)
-
抗強(qiáng)光:>80000LX
-
電源供電:5V/500mA
-
功耗:<2.5w
-
外形尺寸:50mm * 50mm * 75mm
-
重量:150g
-
防護(hù)等級(jí):IP65
-
接口:micro-USB、以太網(wǎng)口、RS232、NPN
-
工作環(huán)境溫度:-10℃~55℃
-
存儲(chǔ)環(huán)境溫度:-30℃~75℃
二、資料及主要組件說明
官網(wǎng)下載中心:下載中心-深圳市不止技術(shù)有限公司-深圳市不止技術(shù)有限公司
2.1 開箱實(shí)物
????????此次我主要測試其網(wǎng)口模塊,所以讓廠家配置了USB轉(zhuǎn)網(wǎng)口的轉(zhuǎn)接模塊,雷達(dá)本省是micro-USB接口。
2.2 網(wǎng)絡(luò)轉(zhuǎn)接板
??
三、NVISTAR 點(diǎn)云客戶端(windows版本)使用(micro-USB)
3.1 獲取工具軟件
下載解壓后,獲得文件和使用說明:
?軟件是免安裝版本,直接打開即可:
備注:我們測試的是網(wǎng)口模式
3.2 雷達(dá)接入WIN電腦
將自己電腦的IP設(shè)置到1網(wǎng)段
可以ping通網(wǎng)絡(luò)轉(zhuǎn)接板
3.3 工具軟件鏈接雷達(dá)
?配置正確,即可以看到點(diǎn)云數(shù)據(jù)。
3.4 網(wǎng)絡(luò)轉(zhuǎn)接板參數(shù)配置
這個(gè)雷達(dá)其實(shí)網(wǎng)口是使用轉(zhuǎn)接板,將串口轉(zhuǎn)為了網(wǎng)口,所以修改IP之類的操作,其實(shí)是修改網(wǎng)口轉(zhuǎn)接模塊的IP,所以需要一個(gè)專用工具:
??首先讀取參數(shù):
?修改IP:
?修改IP后,需要重啟轉(zhuǎn)接板
?可以Ping通,新的IP已經(jīng)生效。
四、ROS1環(huán)境顯示點(diǎn)云(網(wǎng)口)
包獲取,從官網(wǎng)下載頁面可以找到。
4.1 建立工作空間
mkdir -p ~/SensorWS/Nvistar_ws/src
cd ~/SensorWS/Nvistar_ws/
catkin_make
source devel/setup.bash
4.2 拷貝代碼
cd ~/SensorWS/Nvistar_ws/src
#將官網(wǎng)地址的代碼包放置到這個(gè)目錄解壓
4.3 編譯源碼包
cd ~/SensorWS/Nvistar_ws
catkin_make --pkg nvilidar_ros
?編譯完成。
4.4 將雷達(dá)通過網(wǎng)口接入E100系統(tǒng)
先確保板子鏈接網(wǎng)口對(duì)應(yīng)IP也是1網(wǎng)段,之前雷達(dá)已經(jīng)確認(rèn)是1網(wǎng)段了。
?其次就是在板子上可以ping通雷達(dá)的IP:192.168.1.100
?雷達(dá)和板子之前網(wǎng)絡(luò)鏈接沒有問題。
4.5 修改測試代碼環(huán)境為網(wǎng)口模式
1、修改launch 文件
/home/nvidia/Nvistar_ws/src/nvilidar_ros/launch/lidar.launch 腳本內(nèi)容
/home/nvidia/SensorWS/Nvistar_ws/src/nvilidar_ros/launch
vim lidar.launch
<launch><node name="nvilidar_node" pkg="nvilidar_ros" type="nvilidar_node" output="screen" respawn="false" ><param name="serialport_name" ? ? ? ? ? ? type="string" value="/dev/nvilidar"/><param name="serialport_baud" ? ? ? ? ? ? type="int" value="512000"/><param name="ip_addr" ? ? ? ? ? ? ? ? ? ? type="string" value="192.168.1.200"/><param name="lidar_udp_port" ? ? ? ? ? ? type="int" value="8100"/><param name="config_udp_port" ? ? ? ? ? ? type="int" value="8200"/><param name="frame_id" ? ? ? ? ? ? ? ? ? type="string" value="laser_frame"/><param name="resolution_fixed" ? ? ? ? ? type="bool" ? value="true"/><param name="auto_reconnect" ? ? ? ? ? ? type="bool" ? value="true"/><param name="reversion" ? ? ? ? ? ? ? ? ? type="bool" ? value="false"/><param name="inverted" ? ? ? ? ? ? ? ? ? type="bool" ? value="false"/><param name="angle_min" ? ? ? ? ? ? ? ? ? type="double" value="-180" /><param name="angle_max" ? ? ? ? ? ? ? ? ? type="double" value="180" /><param name="range_min" ? ? ? ? ? ? ? ? ? type="double" value="0.001" /><param name="range_max" ? ? ? ? ? ? ? ? ? type="double" value="64.0" /><param name="aim_speed" ? ? ? ? ? ? ? ? ? type="double" value="10.0"/><param name="sampling_rate" ? ? ? ? ? ? ? type="int" value="10"/><param name="sensitive" ? ? ? ? ? ? ? ? ? type="bool" value="false"/><param name="tailing_level" ? ? ? ? ? ? ? type="int" value="6"/><param name="angle_offset_change_flag" ? type="bool" value="false"/><param name="angle_offset" ? ? ? ? ? ? ? type="double" value="0.0" /><param name="apd_change_flag" ? ? ? ? ? ? type="bool" value="false"/><param name="apd_value" ? ? ? ? ? ? ? ? ? type="int" value="500"/><param name="ignore_array_string" ? ? ? ? type="string" value="" /><param name="filter_jump_enable" ? ? ? ? type="bool" value="true" /><param name="filter_jump_value_min" ? ? ? type="int" value="3" /><param name="filter_jump_value_max" ? ? ? type="int" value="50" />
?</node><node pkg="tf" type="static_transform_publisher" name="base_link_to_laser"args="0.19 0.0 0.2 0.06 0.0 0.0 /base_footprint /laser_frame 40" />
</launch>
可根據(jù)你實(shí)際的硬件環(huán)境和需要,修改網(wǎng)口,掃描角度等參數(shù)。
2、修改nvilidar_node.cpp 文件
原始:
修改后:
4.6 重新編譯和啟動(dòng)
上面我們改了原代碼文件配置,所以需要重新編譯工程
cd ~/SensorWS/Nvistar_ws
catkin_make --pkg nvilidar_ros
?啟動(dòng):
cd ~/SensorWS/Nvistar_ws
source devel/setup.bash
roslaunch nvilidar_ros lidar.launch
?打開一個(gè)新的終端,可以查詢節(jié)點(diǎn)信息
rosnode list--------------------------------------------------------------------------------/base_link_to_laser/nvilidar_node/rosoutrosnode info /nvilidar_node -------------------------------------------------------------------------------- Node [/nvilidar_node] Publications: * /rosout [rosgraph_msgs/Log]* /scan [sensor_msgs/LaserScan] ? Subscriptions: None ? Services: * /nvilidar_node/get_loggers* /nvilidar_node/set_logger_level ? ? contacting node http://nvidia-desktop:43281/ ... Pid: 10996 Connections:* topic: /rosout* to: /rosout* direction: outbound (38203 - 127.0.0.1:44442) [11]* transport: TCPROS
4.7 啟動(dòng)RVIZ查看點(diǎn)云
打開終端,啟動(dòng)雷達(dá)節(jié)點(diǎn)
cd ~/SensorWS/Nvistar_ws
source devel/setup.bash
roslaunch nvilidar_ros lidar.launch
打開新終端,啟動(dòng)rviz,在nomachine 終端桌面登錄
rosrun rviz rviz
?此時(shí)還沒有任何信息,官方給我們提供好了rviz的配置文件,我們可以不用配置,直接打開使用。
五、ROS2-eloquent驅(qū)動(dòng)測試(網(wǎng)口)
包獲取,從官網(wǎng)下載頁面可以找到。
5.1 建立工作空間目錄
source /opt/ros/eloquent/setup.bash
mkdir -p ~/SensorWS/Nvistar_Ros2ws/src
cd ~/SensorWS/Nvistar_Ros2ws/
5.2 拷貝代碼
cd ~/SensorWS/Nvistar_Ros2ws/src
#將官網(wǎng)地址的代碼包放置到這個(gè)目錄解壓
5.3 解決依賴關(guān)系(Resolve dependencies)
在構(gòu)建工作區(qū)之前,您需要解決包依賴關(guān)系??赡芤呀?jīng)擁有所有依賴項(xiàng),如果不希望構(gòu)建在長時(shí)間等待后因?yàn)槿鄙僖蕾図?xiàng)而失敗,最好做法是在每次檢查依賴項(xiàng)。
cd ~/SensorWS/Nvistar_Ros2ws/
rosdep install -i --from-path src --rosdistro eloquent -y
如果出現(xiàn)如下錯(cuò)誤,繼續(xù)使用之前安裝的時(shí)候提示使用的小魚一鍵安裝。
解決錯(cuò)誤
wget http://fishros.com/install -O fishros && . fishros
?完成后繼續(xù)之前的建立依賴的命令,就可以成功了。備注:我由于同時(shí)安裝了ROS1和ROS2,所以后面才會(huì)多選一步。
繼續(xù)建立依賴
cd ~/SensorWS/Nvistar_Ros2ws/
rosdep install -i --from-path src --rosdistro eloquent -y
5.4 使用colcon 編譯工程
cd ~/SensorWS/Nvistar_Ros2ws/
#編譯
colcon build
?報(bào)警先不管,可以編譯通過。
#colcon build還可以帶一些參數(shù),這個(gè)做個(gè)分享:--packages-up-to 只編譯指定包,其所有依賴項(xiàng),但不構(gòu)建整個(gè)工作區(qū)(節(jié)省時(shí)間) --symlink-install避免每次調(diào)整python腳本時(shí)都需要重新構(gòu)建 --event-handlers console_direct+ 顯示生成時(shí)的控制臺(tái)輸出(否則可以在“l(fā)og”目錄中找到)
?編譯完,記得生效,類似ROS1中的source
#執(zhí)行覆蓋
. install/local_setup.bash
5.5 修改代碼,使用網(wǎng)口模式
cd ~/SensorWS/Nvistar_Ros2ws/src/nvilidar_ros2/params
vim nvilidar.yaml
?原始:
?修改后:
修改nvilidar_ros2_node.cpp 文件
?修改后:
?因?yàn)樾薷牧舜a,記得重新編譯
cd ~/SensorWS/Nvistar_Ros2ws/
#編譯
colcon build
?有報(bào)警,可以不用管。
5.6 運(yùn)行測試節(jié)點(diǎn),查看點(diǎn)云
cd ~/SensorWS/Nvistar_Ros2ws/
#執(zhí)行覆蓋
. install/local_setup.bash
#啟動(dòng)腳本文件
ros2 launch nvilidar_ros2 nvilidar_launch.py
?可以看到,程序已經(jīng)起來,并且開始掃描
我們可以打開一個(gè)新的窗口,查看一下節(jié)點(diǎn)和話題這些基本信息
cd ~/SensorWS/Nvistar_Ros2ws/
#執(zhí)行覆蓋
. install/local_setup.bash
ros2 node list --------------------------------------------------------------------------------/launch_ros_15285/nvilidar_ros2_node/static_tf_pub_laser ? ros2 node info /nvilidar_ros2_node --------------------------------------------------------------------------------/nvilidar_ros2_nodeSubscribers:/parameter_events: rcl_interfaces/msg/ParameterEventPublishers:/parameter_events: rcl_interfaces/msg/ParameterEvent/rosout: rcl_interfaces/msg/Log/scan: sensor_msgs/msg/LaserScanService Servers:/nvilidar_ros2_node/describe_parameters: rcl_interfaces/srv/DescribeParameters/nvilidar_ros2_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes/nvilidar_ros2_node/get_parameters: rcl_interfaces/srv/GetParameters/nvilidar_ros2_node/list_parameters: rcl_interfaces/srv/ListParameters/nvilidar_ros2_node/set_parameters: rcl_interfaces/srv/SetParameters/nvilidar_ros2_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomicallyService Clients: ?Action Servers: ?Action Clients:
查看點(diǎn)云,我們可以直接用官方已經(jīng)提供好的腳本文件,直接運(yùn)行節(jié)點(diǎn)加打開查看電云,會(huì)簡單很多。記得關(guān)閉之前已經(jīng)打開的節(jié)點(diǎn)。
nomachine 的終端中運(yùn)行如下命令
cd ~/SensorWS/Nvistar_Ros2ws/
#執(zhí)行覆蓋
. install/local_setup.bash
#啟動(dòng)腳本文件
ros2 launch nvilidar_ros2 nvilidar_launch_view.py
六、總結(jié)
?????????這是我第一次完整的用ROS2 eloquent 測試一個(gè)硬件設(shè)備,所以再測試過程中,其實(shí)我自己也是翻看了很多之前的記錄,發(fā)現(xiàn)還是一個(gè)實(shí)際操作的完成流程,更能加深自己對(duì)ROS2的理解,熟悉其操作和常用指令。
????????ROC 300 其ROS2和ROS1的驅(qū)動(dòng)支持還是很不錯(cuò)了,這個(gè)必須給個(gè)好評(píng)。其次就是雷達(dá),我支持在測試環(huán)境驅(qū)動(dòng)起來,準(zhǔn)備跑一個(gè)晚上,看看其穩(wěn)定性。
????????這個(gè)雷達(dá)的性價(jià)比,還是很適合做教育級(jí)和商業(yè)級(jí)的機(jī)器人產(chǎn)品的,輕巧,尤其是USB接口的設(shè)計(jì),可以看出來,設(shè)計(jì)師還是為實(shí)際穩(wěn)定可靠使用畫了心思的,給個(gè)好評(píng)。
糾錯(cuò),疑問,交流: 911946883@qq.com