国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ROS學(xué)習(xí)第三十二節(jié)——xacro構(gòu)建激光雷達(dá)小車

這篇具有很好參考價值的文章主要介紹了ROS學(xué)習(xí)第三十二節(jié)——xacro構(gòu)建激光雷達(dá)小車。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

https://download.csdn.net/download/qq_45685327/87718396

在前面小車底盤基礎(chǔ)之上,添加攝像頭和雷達(dá)傳感器。

0.底盤實現(xiàn)

deamo02_base.xacro

<!--
    使用 xacro 優(yōu)化 URDF 版的小車底盤實現(xiàn):

    實現(xiàn)思路:
    1.將一些常量、變量封裝為 xacro:property
      比如:PI 值、小車底盤半徑、離地間距、車輪半徑、寬度 ....
    2.使用 宏 封裝驅(qū)動輪以及支撐輪實現(xiàn),調(diào)用相關(guān)宏生成驅(qū)動輪與支撐輪

-->
<!-- 根標(biāo)簽,必須聲明 xmlns:xacro -->
<robot name="my_base" xmlns:xacro="http://www.ros.org/wiki/xacro">
    <!-- 封裝變量、常量 -->
    <xacro:property name="PI" value="3.141"/>
    <!-- 宏:黑色設(shè)置 -->
    <material name="black">
        <color rgba="0.0 0.0 0.0 1.0" />
    </material>
    <!-- 底盤屬性 -->
    <xacro:property name="base_footprint_radius" value="0.001" /> <!-- base_footprint 半徑  -->
    <xacro:property name="base_link_radius" value="0.1" /> <!-- base_link 半徑 -->
    <xacro:property name="base_link_length" value="0.08" /> <!-- base_link 長 -->
    <xacro:property name="earth_space" value="0.015" /> <!-- 離地間距 -->

    <!-- 底盤 -->
    <link name="base_footprint">
      <visual>
        <geometry>
          <sphere radius="${base_footprint_radius}" />
        </geometry>
      </visual>
    </link>

    <link name="base_link">
      <visual>
        <geometry>
          <cylinder radius="${base_link_radius}" length="${base_link_length}" />
        </geometry>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <material name="yellow">
          <color rgba="0.5 0.3 0.0 0.5" />
        </material>
      </visual>
    </link>

    <joint name="base_link2base_footprint" type="fixed">
      <parent link="base_footprint" />
      <child link="base_link" />
      <origin xyz="0 0 ${earth_space + base_link_length / 2 }" />
    </joint>

    <!-- 驅(qū)動輪 -->
    <!-- 驅(qū)動輪屬性 -->
    <xacro:property name="wheel_radius" value="0.0325" /><!-- 半徑 -->
    <xacro:property name="wheel_length" value="0.015" /><!-- 寬度 -->
    <!-- 驅(qū)動輪宏實現(xiàn) -->
    <xacro:macro name="add_wheels" params="name flag">
      <link name="${name}_wheel">
        <visual>
          <geometry>
            <cylinder radius="${wheel_radius}" length="${wheel_length}" />
          </geometry>
          <origin xyz="0.0 0.0 0.0" rpy="${PI / 2} 0.0 0.0" />
          <material name="black" />
        </visual>
      </link>

      <joint name="${name}_wheel2base_link" type="continuous">
        <parent link="base_link" />
        <child link="${name}_wheel" />
        <origin xyz="0 ${flag * base_link_radius} ${-(earth_space + base_link_length / 2 - wheel_radius) }" />
        <axis xyz="0 1 0" />
      </joint>
    </xacro:macro>
    <xacro:add_wheels name="left" flag="1" />
    <xacro:add_wheels name="right" flag="-1" />
    <!-- 支撐輪 -->
    <!-- 支撐輪屬性 -->
    <xacro:property name="support_wheel_radius" value="0.0075" /> <!-- 支撐輪半徑 -->

    <!-- 支撐輪宏 -->
    <xacro:macro name="add_support_wheel" params="name flag" >
      <link name="${name}_wheel">
        <visual>
            <geometry>
                <sphere radius="${support_wheel_radius}" />
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0" />
            <material name="black" />
        </visual>
      </link>

      <joint name="${name}_wheel2base_link" type="continuous">
          <parent link="base_link" />
          <child link="${name}_wheel" />
          <origin xyz="${flag * (base_link_radius - support_wheel_radius)} 0 ${-(base_link_length / 2 + earth_space / 2)}" />
          <axis xyz="1 1 1" />
      </joint>
    </xacro:macro>

    <xacro:add_support_wheel name="front" flag="1" />
    <xacro:add_support_wheel name="back" flag="-1" />

</robot>

1.攝像頭和雷達(dá) Xacro 文件實現(xiàn)

攝像頭 xacro 文件:

deamo03_camera.xacro

<!-- 攝像頭相關(guān)的 xacro 文件 -->
<robot name="my_camera" xmlns:xacro="http://wiki.ros.org/xacro">
    <!-- 攝像頭屬性 -->
    <xacro:property name="camera_length" value="0.01" /> <!-- 攝像頭長度(x) -->
    <xacro:property name="camera_width" value="0.025" /> <!-- 攝像頭寬度(y) -->
    <xacro:property name="camera_height" value="0.025" /> <!-- 攝像頭高度(z) -->
    <xacro:property name="camera_x" value="0.08" /> <!-- 攝像頭安裝的x坐標(biāo) -->
    <xacro:property name="camera_y" value="0.0" /> <!-- 攝像頭安裝的y坐標(biāo) -->
    <xacro:property name="camera_z" value="${base_link_length / 2 + camera_height / 2}" /> <!-- 攝像頭安裝的z坐標(biāo):底盤高度 / 2 + 攝像頭高度 / 2  -->

    <!-- 攝像頭關(guān)節(jié)以及l(fā)ink -->
    <link name="camera">
        <visual>
            <geometry>
                <box size="${camera_length} ${camera_width} ${camera_height}" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
            <material name="black" />
        </visual>
    </link>

    <joint name="camera2base_link" type="fixed">
        <parent link="base_link" />
        <child link="camera" />
        <origin xyz="${camera_x} ${camera_y} ${camera_z}" />
    </joint>
</robot>

雷達(dá) xacro 文件:

deamo04_laser.xacro

<!--
    小車底盤添加雷達(dá)
-->
<robot name="my_laser" xmlns:xacro="http://wiki.ros.org/xacro">

    <!-- 雷達(dá)支架 -->
    <xacro:property name="support_length" value="0.15" /> <!-- 支架長度 -->
    <xacro:property name="support_radius" value="0.01" /> <!-- 支架半徑 -->
    <xacro:property name="support_x" value="0.0" /> <!-- 支架安裝的x坐標(biāo) -->
    <xacro:property name="support_y" value="0.0" /> <!-- 支架安裝的y坐標(biāo) -->
    <xacro:property name="support_z" value="${base_link_length / 2 + support_length / 2}" /> <!-- 支架安裝的z坐標(biāo):底盤高度 / 2 + 支架高度 / 2  -->

    <link name="support">
        <visual>
            <geometry>
                <cylinder radius="${support_radius}" length="${support_length}" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
            <material name="red">
                <color rgba="0.8 0.2 0.0 0.8" />
            </material>
        </visual>
    </link>

    <joint name="support2base_link" type="fixed">
        <parent link="base_link" />
        <child link="support" />
        <origin xyz="${support_x} ${support_y} ${support_z}" />
    </joint>


    <!-- 雷達(dá)屬性 -->
    <xacro:property name="laser_length" value="0.05" /> <!-- 雷達(dá)長度 -->
    <xacro:property name="laser_radius" value="0.03" /> <!-- 雷達(dá)半徑 -->
    <xacro:property name="laser_x" value="0.0" /> <!-- 雷達(dá)安裝的x坐標(biāo) -->
    <xacro:property name="laser_y" value="0.0" /> <!-- 雷達(dá)安裝的y坐標(biāo) -->
    <xacro:property name="laser_z" value="${support_length / 2 + laser_length / 2}" /> <!-- 雷達(dá)安裝的z坐標(biāo):支架高度 / 2 + 雷達(dá)高度 / 2  -->

    <!-- 雷達(dá)關(guān)節(jié)以及l(fā)ink -->
    <link name="laser">
        <visual>
            <geometry>
                <cylinder radius="${laser_radius}" length="${laser_length}" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
            <material name="black" />
        </visual>
    </link>

    <joint name="laser2support" type="fixed">
        <parent link="support" />
        <child link="laser" />
        <origin xyz="${laser_x} ${laser_y} ${laser_z}" />
    </joint>
</robot>

2.組合底盤攝像頭與雷達(dá)的 xacro 文件

deamo05_xacrocar.xacro

<!-- 組合小車底盤與攝像頭與雷達(dá) -->
<robot name="xacrocar" xmlns:xacro="http://wiki.ros.org/xacro">
    <xacro:include filename="deamo02_base.xacro" />
    <xacro:include filename="deamo03_camera.xacro" />
    <xacro:include filename="deamo04_laser.xacro" />
</robot>

3.launch 文件

demo06_xacrocar.launch

<launch>

    <param name="robot_description" textfile="$(find urdf01_rviz)/urdf/xacro/deamo05_xacrocar.urdf" />
    <node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz" /> 

    <!-- 添加關(guān)節(jié)狀態(tài)發(fā)布節(jié)點(diǎn) -->
    <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
    <!-- 添加機(jī)器人狀態(tài)發(fā)布節(jié)點(diǎn) -->
    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    <!-- 可選:用于控制關(guān)節(jié)運(yùn)動的節(jié)點(diǎn) -->
    <node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" />

</launch>

4.生成的urdf文件

deamo05_xacrocar.urdf

<?xml version="1.0" encoding="utf-8"?>
<!-- =================================================================================== -->
<!-- |    This document was autogenerated by xacro from deamo05_xacrocar.xacro         | -->
<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
<!-- =================================================================================== -->
 
<robot name="xacrocar">
 
  <material name="black">
    <color rgba="0.0 0.0 0.0 1.0"/>
  </material>
 
  <link name="base_footprint">
    <visual>
      <geometry>
        <sphere radius="0.001"/>
      </geometry>
    </visual>
  </link>
  <link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.08" radius="0.1"/>
      </geometry>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <material name="yellow">
        <color rgba="0.5 0.3 0.0 0.5"/>
      </material>
    </visual>
  </link>
  <joint name="base_link2base_footprint" type="fixed">
    <parent link="base_footprint"/>
    <child link="base_link"/>
    <origin xyz="0 0 0.055"/>
  </joint>
  <link name="left_wheel">
    <visual>
      <geometry>
        <cylinder length="0.015" radius="0.0325"/>
      </geometry>
      <origin rpy="1.5705 0.0 0.0" xyz="0.0 0.0 0.0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="left_wheel2base_link" type="continuous">
    <parent link="base_link"/>
    <child link="left_wheel"/>
    <origin xyz="0 0.1 -0.0225"/>
    <axis xyz="0 1 0"/>
  </joint>
  <link name="right_wheel">
    <visual>
      <geometry>
        <cylinder length="0.015" radius="0.0325"/>
      </geometry>
      <origin rpy="1.5705 0.0 0.0" xyz="0.0 0.0 0.0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="right_wheel2base_link" type="continuous">
    <parent link="base_link"/>
    <child link="right_wheel"/>
    <origin xyz="0 -0.1 -0.0225"/>
    <axis xyz="0 1 0"/>
  </joint>
 
  <link name="front_wheel">
    <visual>
      <geometry>
        <sphere radius="0.0075"/>
      </geometry>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="front_wheel2base_link" type="continuous">
    <parent link="base_link"/>
    <child link="front_wheel"/>
    <origin xyz="0.0925 0 -0.0475"/>
    <axis xyz="1 1 1"/>
  </joint>
  <link name="back_wheel">
    <visual>
      <geometry>
        <sphere radius="0.0075"/>
      </geometry>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="back_wheel2base_link" type="continuous">
    <parent link="base_link"/>
    <child link="back_wheel"/>
    <origin xyz="-0.0925 0 -0.0475"/>
    <axis xyz="1 1 1"/>
  </joint>
 
  <link name="camera">
    <visual>
      <geometry>
        <box size="0.01 0.025 0.025"/>
      </geometry>
      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="camera2base_link" type="fixed">
    <parent link="base_link"/>
    <child link="camera"/>
    <origin xyz="0.08 0.0 0.0525"/>
  </joint>
 
  <link name="support">
    <visual>
      <geometry>
        <cylinder length="0.15" radius="0.01"/>
      </geometry>
      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
      <material name="red">
        <color rgba="0.8 0.2 0.0 0.8"/>
      </material>
    </visual>
  </link>
  <joint name="support2base_link" type="fixed">
    <parent link="base_link"/>
    <child link="support"/>
    <origin xyz="0.0 0.0 0.115"/>
  </joint>
 
  <link name="laser">
    <visual>
      <geometry>
        <cylinder length="0.05" radius="0.03"/>
      </geometry>
      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
      <material name="black"/>
    </visual>
  </link>
  <joint name="laser2support" type="fixed">
    <parent link="support"/>
    <child link="laser"/>
    <origin xyz="0.0 0.0 0.1"/>
  </joint>
</robot>

5.運(yùn)行l(wèi)aunch文件,查看效果

roslaunch urdf01_rviz demo06_xacrocar.launch

ROS學(xué)習(xí)第三十二節(jié)——xacro構(gòu)建激光雷達(dá)小車文章來源地址http://www.zghlxwxcb.cn/news/detail-423042.html

到了這里,關(guān)于ROS學(xué)習(xí)第三十二節(jié)——xacro構(gòu)建激光雷達(dá)小車的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

    激光雷達(dá)(LiDAR)| Open3D:第二節(jié) 鄰近搜索之構(gòu)建KDTree

    本節(jié)將介紹Open3D開源庫:KDTree的原理及構(gòu)建,將無序點(diǎn)云變?yōu)橛行螯c(diǎn)云,實現(xiàn)點(diǎn)云的快速鄰近搜索。 Open3D使用FLANN構(gòu)建KDTrees,將無序點(diǎn)云變?yōu)橛行螯c(diǎn)云,以便快速檢索最近鄰。 在激光雷達(dá)中,一般使用的是三維點(diǎn)云。所以,kd-tree的維度是3。 KDTree(k 維樹)是一種空間分區(qū)數(shù)

    2024年02月05日
    瀏覽(23)
  • 第三十二章:MySQL事務(wù)日志

    第三十二章:MySQL事務(wù)日志

    事物有4種特性:原子性、一致性、隔離性和持久性。那么事務(wù)的四種特性到底是基于什么機(jī)制實現(xiàn)呢? 事物的隔離性有鎖機(jī)制實現(xiàn)。 而事物的原子性、一致性和持久性由事物的 redo 日志和 undo 日志來保證。 REDO LOG 稱為重做日志,提供再寫入操作,恢復(fù)提交事物修改的頁操作

    2024年02月15日
    瀏覽(90)
  • 第三十二章 Unity Mecanim動畫系統(tǒng)(上)

    第三十二章 Unity Mecanim動畫系統(tǒng)(上)

    在上一章節(jié)中,我們介紹了Unity的舊版動畫系統(tǒng),本章節(jié)來介紹新版的Mecanim動畫系統(tǒng)。新版的Mecanim動畫系統(tǒng)實際是對舊版動畫系統(tǒng)的升級。新版的Mecanim動畫系統(tǒng)仍然是建立在動畫片段的基礎(chǔ)上的,只不過它給我們提供了一個可視化的窗口來編輯動畫片段之間的切換邏輯。接

    2024年02月08日
    瀏覽(25)
  • 第三十二章:CRM平臺的安全與合規(guī)性

    客戶關(guān)系管理(CRM)平臺是企業(yè)與客戶之間的關(guān)鍵溝通和交流橋梁。CRM平臺存儲了大量客戶信息,包括個人信息、交易記錄、客戶需求等。因此,CRM平臺的安全與合規(guī)性至關(guān)重要。 本章將深入探討CRM平臺的安全與合規(guī)性,涉及到的核心概念、算法原理、最佳實踐、應(yīng)用場景和工

    2024年02月22日
    瀏覽(30)
  • 《微服務(wù)實戰(zhàn)》 第三十二章 微服務(wù)鏈路跟蹤-sleuth zipkin

    《微服務(wù)實戰(zhàn)》 第三十二章 微服務(wù)鏈路跟蹤-sleuth zipkin

    第三十二章 微服務(wù)鏈路跟蹤-sleuth zipkin 第三十章 分布式事務(wù)框架seata TCC模式 第二十九章 分布式事務(wù)框架seata AT模式 第十二章 Spring Cloud Alibaba Sentinel 第十一章 Spring Cloud Alibaba nacos配置中心 第十章 SpringCloud Alibaba 之 Nacos discovery 第七章 Spring Cloud 之 GateWay 第六章 Spring Cloud 之

    2024年02月09日
    瀏覽(23)
  • Linux學(xué)習(xí)第二十二節(jié)-網(wǎng)卡IP設(shè)置

    Linux學(xué)習(xí)第二十二節(jié)-網(wǎng)卡IP設(shè)置

    1. 修改網(wǎng)卡IP地址 方式一:通過修改 網(wǎng)卡配置文件 修改 網(wǎng)卡配置文件位置: /etc/sysconfig/network-scripts/網(wǎng)卡名 #ifconfig ? 表示用于顯示和設(shè)置網(wǎng)卡的參數(shù) #ip addr ? 表示用于顯示和設(shè)置網(wǎng)卡的參數(shù) ? #systemctl restart network 表示重啟網(wǎng)絡(luò) #ifup 網(wǎng)卡名 表示啟動該網(wǎng)卡設(shè)備 #ifdown 網(wǎng)卡

    2024年02月17日
    瀏覽(30)
  • 第三十二章 開發(fā)Productions - ObjectScript Productions - 定義警報處理器 - 使用路由警報處理器

    如果需要通過多種輸出機(jī)制聯(lián)系用戶,警報處理器應(yīng)該是一個業(yè)務(wù)流程,用于確定如何在消息中路由 Ens.AlertReques 。在這種情況下, Productions 必須為每個輸出機(jī)制包含一個額外的業(yè)務(wù)操作,并且警報處理器將消息轉(zhuǎn)發(fā)到這些業(yè)務(wù)操作。 要將警報處理器定義為路由流程,請創(chuàng)建

    2024年02月08日
    瀏覽(20)
  • 【正點(diǎn)原子STM32連載】第三十二章 DMA實驗 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南

    1)實驗平臺:正點(diǎn)原子APM32E103最小系統(tǒng)板 2)平臺購買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實驗源碼+手冊+視頻下載地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章介紹APM32E103直接存儲訪問(DMA)的使用,DMA能夠在無CPU干預(yù)的情況下,實現(xiàn)外設(shè)與存儲器或存儲

    2024年02月22日
    瀏覽(20)
  • 【正點(diǎn)原子STM32連載】 第三十二章 光敏傳感器實驗 摘自【正點(diǎn)原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    【正點(diǎn)原子STM32連載】 第三十二章 光敏傳感器實驗 摘自【正點(diǎn)原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    本章,我們將學(xué)習(xí)使用STM32開發(fā)板板載的一個光敏傳感器。我們還是要使用到ADC采集,通過ADC采集電壓,獲取光敏傳感器的電阻變化,從而得出環(huán)境光線的變化,并在TFTLCD上面顯示出來。 本章分為如下幾個小節(jié): 32.1 光敏傳感器簡介 32.2 硬件設(shè)計 32.3 程序設(shè)計 32.4 下載驗證

    2024年02月03日
    瀏覽(70)
  • 第三十九天 Java基礎(chǔ)學(xué)習(xí)(三十三)

    一、Servlet Java類。由Servlet容器(Tomcat)進(jìn)行編譯-.class -運(yùn)行 產(chǎn)生響應(yīng)結(jié)果返回給客戶端瀏覽器。 生命周期:(方法調(diào)用流程) init:初始化方法。在第一次訪問servlet時被調(diào)用一次。 service:完成servlet所做功能。每次訪問servlet時都會被調(diào)用。 doGet0:只有g(shù)et請求。才能訪問。 doPos

    2024年02月15日
    瀏覽(50)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包