kalibr
節點(Node)可以用來提供某種數據或能力,比如讀取某Sensor數據。也可以是一個獲取這些數據并處理的節點(Node),例如從別的節點那拿到Sensor并處理。但他們之間如何知道對方存在與否呢?哪些node需要哪種數據呢?這就需要有個管理者,它就是NodeMaster/ Node Core。每個Node啟動時,需要向它注冊,申明自己提供什么服務或需要什么數據。
Node是ROS package中一個可執行文件。ROS node利用ROS用戶庫去和其他node進行通信。nodes也可以向topic發起發布或者訂閱,nodes也可以提供或者使用一個service.
為何說Node是ROS核心,看看它通常被用來做什么:
控制電機速度,獲取激光雷達數據,獲取Camera數據,利用以上數據定位,路徑規劃。
啟動一個Node:
#rosrun package-name executable-name
兩個參數,參數1:功能包名。 參數2:可執行文件名。(見后面的例子)
雙目內外參數的標定
數據采集
如果你已經有了通過 ROS 發布 image 消息的節點, 我們只需要使用 rosbag record 工具將拍攝到的標定板圖像制作成 bag 文件就行了. 注意: 通常設備采集的頻率為 20-60 hz, 這會使得標定的圖像過多, 而導致計算量太大. 最好將ros topic的頻率降低到4hz左右進行采集. (我采集里200多張照片, 計算了估計有一兩個小時)
ROS 提供了改變 topic 發布頻率的節點throttle, 指令如下 :
- rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
- rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right
對左右目的ros topic降低頻率后就可以制作bag了
- rosbag record -O stereo_calibra.bag /left /right
husky@e470:~/ws/sensor_ros_ws$ roslaunch zed_wrapper zed.launch
rqt_image_view?
husky@e470:~/ws/sensor_ros_ws$ rostopic list?
husky@e470:~/ws/sensor_ros_ws$ rosbag record /zed/left/image_raw_color /zed/right/image_raw_color
[ INFO] [1568794590.757054976]: Subscribing to /zed/left/image_raw_color
[ INFO] [1568794590.759921024]: Subscribing to /zed/right/image_raw_color
[ INFO] [1568794590.763227992]: Recording to 2019-09-18-16-16-30.bag.
?
總結
- 上一篇: 镜头评价指标及测试方法(三)------
- 下一篇: SLAM小结——求解退化问题解析(F、H