1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        相機和livox激光雷達外參標定:在gazebo中搭建仿真場景

        共 11173字,需瀏覽 23分鐘

         ·

        2022-08-26 03:47

        點擊下方卡片,關(guān)注“新機器視覺”公眾號

        重磅干貨,第一時間送達


        本篇在gazebo中搭建可以模擬產(chǎn)生livox_camera_lidar_calibration功能包需要的數(shù)據(jù)的仿真場景.



        場景搭建要求


        下面總結(jié)下,針對livox_camera_lidar_calibration功能包仿真都需要哪些內(nèi)容:


        • livox 激光雷達,可以產(chǎn)生livox激光雷達這種的固態(tài)雷達的數(shù)據(jù)

        • 相機,生成圖像

        • 棋盤標定板

        • 矩形標定板

        • 激光雷達和相機可以一起改變角度和位置(世界坐標系下)


        這個場景要求想起了之前搭建的一個無人機云臺,那么在上面再裝一個livox avia 和 一個 carema就OK了


        云臺裝在一個無人機上,剛好可以移動及改變 雷達和相機的姿態(tài).



        場景搭建


        創(chuàng)建一個云臺掛在無人機上


        這個是之前搭建好的,不重點說了,直接上圖,就是下面這個樣子



        其中無人機和云臺的尺寸比較小,和livox和camera的比例不太一致,不過仿真就不那么追求完美了,可以用就行.


        云臺是這樣的:



        灰色的是云臺的gimbal_base_link,用于與無人機的連接,連接方式是固定的,所以云臺的航向是完全鎖定機頭方向的


          &lt;joint name="${name}_joint" type="fixed"&gt;    &lt;parent link="${parent}"/&gt;    &lt;child link="gimbal_base_link"/&gt;    &lt;origin xyz="0 0 -0.05" rpy="${M_PI} 0 ${M_PI/2} " /&gt;    &lt;axis xyz="0 0 1" /&gt;  &lt;/joint&gt;


        藍色的是link1,向下延伸桿.與gimbal_base_link為固定連接.


        紅色的是云臺平臺的主體link2 , 與link1, 連接一個joint,用于俯仰的控制


          &lt;joint name="swivel_J1" type="revolute"&gt;    &lt;parent link="link_1"/&gt;    &lt;child link="link_2"/&gt;    &lt;origin xyz="0 0 ${SizeGain*0.01}" rpy="0 0 0" /&gt;    &lt;axis xyz="1 0 0" /&gt;    &lt;limit lower="-1.745" upper="2.356" effort="10"       velocity="1.0" /&gt;    &lt;joint_properties damping="0" friction="0"/&gt;  &lt;/joint&gt; &lt;transmission name="tran2"&gt;    &lt;type&gt;transmission_interface/SimpleTransmission&lt;/type&gt;    &lt;joint name="swivel_J1"&gt;      &lt;hardwareInterface&gt;hardware_interface/EffortJointInterface&lt;/hardwareInterface&gt;    &lt;/joint&gt;    &lt;actuator name="motor2"&gt;      &lt;hardwareInterface&gt;hardware_interface/EffortJointInterface&lt;/hardwareInterface&gt;      &lt;mechanicalReduction&gt;1&lt;/mechanicalReduction&gt;    &lt;/actuator&gt;  &lt;/transmission&gt;


        創(chuàng)建一個livox 和camera 掛在云臺上


        上面說了尺寸問題,為了避免數(shù)據(jù)被遮擋,需要將雷達和相機往前放


        雷達和相機放在 link2 上, 為了標定外參,設(shè)置兩者的位置不重合,當然實際也不可能重合. 先設(shè)置一個簡單的位置


        雷達與x軸偏-0.1 相機與x軸偏0.1,所以兩者僅在y方向上偏0.2.之后在進行外參標定的時候再把各方向的偏差加上



          &lt;joint name="camera_J2" type="fixed"&gt;    &lt;parent link="link_2"/&gt;    &lt;child link="camera_mount"/&gt;    &lt;origin xyz="0.1 ${SizeGain*0.01+0.29} 0" rpy="${M_PI} 0 ${M_PI/2}" /&gt;    &lt;axis xyz="1 0 0" /&gt;    &lt;limit lower="-2.094" upper="2.670" effort="10"       velocity="1.0" /&gt;    &lt;joint_properties damping="0.0" friction="0.0"/&gt;  &lt;/joint&gt;


            &lt;joint name="lidar_joint" type="fixed"&gt;        &lt;parent link="link_2"/&gt;        &lt;child link="livox_lidar_link"/&gt;        &lt;origin xyz="-0.1 ${SizeGain*0.01+0.29} 0.002" rpy="${180*M_PI/180} ${0*M_PI/180} ${M_PI*0.5}" /&gt;        &lt;axis xyz="1 0 0" /&gt;    &lt;/joint&gt;


        相機與激光雷達視野匹配


        我們知道激光雷達是沒有鏡頭的,所以激光雷達的視場角是多少就是多少,無法改變.(實際場景中)


        那么想讓相機與激光雷達的視野匹配,只能選擇相機的鏡頭,讓水平視場角和垂直視場角兩者更為接近.


        激光雷達仿真對應(yīng)的具體型號是livox avia ,該雷達的視野如下:


        非重復(fù)式掃描 70.4° * 77.2°
        在gazebo中也是這樣設(shè)置的


          &lt;xacro:property name="horizontal_fov" value="70.4"/&gt;  &lt;xacro:property name="vertical_fov" value="77.2"/&gt;


        所以在gazebo中設(shè)置相機的參數(shù)如下:(水平角是70.4,像素是4096*3000)


            &lt;gazebo reference="camera_mount"&gt;            &lt;turnGravityOff&gt;false&lt;/turnGravityOff&gt;            &lt;sensor type="camera" name="camera_node"&gt;                &lt;update_rate&gt;5&lt;/update_rate&gt;                &lt;camera name="head"&gt;                    &lt;horizontal_fov&gt;"${70.4*M_PI/180}"&lt;/horizontal_fov&gt;                    &lt;image&gt;                        &lt;width&gt;4096&lt;/width&gt;                        &lt;height&gt;3000&lt;/height&gt;                        &lt;format&gt;R8G8B8&lt;/format&gt;                    &lt;/image&gt;                    &lt;clip&gt;                        &lt;near&gt;0.02&lt;/near&gt;                        &lt;far&gt;300&lt;/far&gt;                    &lt;/clip&gt;                    &lt;noise&gt;                        &lt;type&gt;gaussian&lt;/type&gt;                        &lt;mean&gt;0.0&lt;/mean&gt;                        &lt;stddev&gt;0.007&lt;/stddev&gt;                    &lt;/noise&gt;                &lt;/camera&gt;                &lt;plugin name="gazebo_camera" filename="libgazebo_ros_camera.so"&gt;                    &lt;alwaysOn&gt;true&lt;/alwaysOn&gt;                    &lt;updateRate&gt;10&lt;/updateRate&gt;                    &lt;cameraName&gt;/camera&lt;/cameraName&gt;                    &lt;imageTopicName&gt;image_raw&lt;/imageTopicName&gt;                    &lt;cameraInfoTopicName&gt;camera_info&lt;/cameraInfoTopicName&gt;                    &lt;frameName&gt;camera_link&lt;/frameName&gt;                    &lt;hackBaseline&gt;0.07&lt;/hackBaseline&gt;                    &lt;distortionK1&gt;0.0&lt;/distortionK1&gt;                    &lt;distortionK2&gt;0.0&lt;/distortionK2&gt;                    &lt;distortionK3&gt;0.0&lt;/distortionK3&gt;                    &lt;distortionT1&gt;0.0&lt;/distortionT1&gt;                    &lt;distortionT2&gt;0.0&lt;/distortionT2&gt;                &lt;/plugin&gt;            &lt;/sensor&gt;        &lt;/gazebo&gt;


        rviz中檢查成像效果


        在云臺前,放一個墻



        看激光雷達的點云和相機的圖像的墻的占幅比,如果上面調(diào)的視野一致的化,那么應(yīng)該不會差太多.



        墻橫過來的效果



        創(chuàng)建標定棋盤


        編輯一個棋盤的sdf文件,這種文件太長了,就不在這放了. 展示下想讓棋盤待在空中不掉下來的關(guān)鍵部分:



        • static 為true 則不受重力影響

        • pose 就是 在world 的位置 x y z 和三個姿態(tài)角



        在rviz中檢查下標定棋盤別太小就行.



        創(chuàng)建標定板


        標定板最好可以設(shè)置大點的,矩形板就行



        &lt;?xml version='1.0'?&gt;&lt;sdf version="1.4"&gt;&lt;model name="board"&gt;  &lt;pose&gt;4 0 2 0 1.57079 0&lt;/pose&gt;  &lt;static&gt;true&lt;/static&gt;    &lt;link name="board"&gt;      &lt;pose&gt;0.0 0.0 0.0 0.0 0.0 0.0&lt;/pose&gt;      &lt;inertial&gt;        &lt;mass&gt;0.01&lt;/mass&gt;        &lt;inertia&gt; &lt;!-- interias are tricky to compute --&gt;          &lt;!-- http://answers.gazebosim.org/question/4372/the-inertia-matrix-explained/ --&gt;          &lt;ixx&gt;0.083&lt;/ixx&gt;       &lt;!-- for a box: ixx = 0.083 * mass * (y*y + z*z) --&gt;          &lt;ixy&gt;0.0&lt;/ixy&gt;         &lt;!-- for a box: ixy = 0 --&gt;          &lt;ixz&gt;0.0&lt;/ixz&gt;         &lt;!-- for a box: ixz = 0 --&gt;          &lt;iyy&gt;0.083&lt;/iyy&gt;       &lt;!-- for a box: iyy = 0.083 * mass * (x*x + z*z) --&gt;          &lt;iyz&gt;0.0&lt;/iyz&gt;         &lt;!-- for a box: iyz = 0 --&gt;          &lt;izz&gt;0.083&lt;/izz&gt;       &lt;!-- for a box: izz = 0.083 * mass * (x*x + y*y) --&gt;        &lt;/inertia&gt;      &lt;/inertial&gt;      &lt;collision name="collision"&gt;        &lt;geometry&gt;          &lt;box&gt;            &lt;size&gt;0.02 0.02 0.005&lt;/size&gt;          &lt;/box&gt;        &lt;/geometry&gt;      &lt;/collision&gt;      &lt;visual name="sqr11"&gt;        &lt;geometry&gt;          &lt;box&gt;            &lt;size&gt;2 2.5 0.005&lt;/size&gt;          &lt;/box&gt;        &lt;/geometry&gt;    &lt;material&gt;          &lt;ambient&gt;0 0 0 1&lt;/ambient&gt;          &lt;diffuse&gt;0 0 0 1&lt;/diffuse&gt;          &lt;specular&gt;0.1 0.1 0.1 1&lt;/specular&gt;          &lt;emissive&gt;0 0 0 0&lt;/emissive&gt;        &lt;/material&gt;      &lt;/visual&gt;  &lt;/model&gt;&lt;/sdf&gt;



        場景效果檢測


        最后控制無人機飛起來,然后看標定板在相機和雷達里的視野情況




        本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。

        —THE END—
        瀏覽 195
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产 无码 成人免费 | 亚洲日韩色图 | 粉嫩av一区二区三区四区在线观看 | 涩涩视频在线免费看 | 蜜桃av秘 无码一区二区三欧 | 一区二区三区AV电影 | 久久综合国产视频 | 天天射日 | 小14萝裸乳 无码无遮 | 91av在线免费观看 |