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

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

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

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

ROS與移動(dòng)底盤的通信試驗(yàn)內(nèi)容

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:白鳥無言 ? 2023-11-16 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ROSSTM32通信流程如圖所示

圖片

主要包含兩個(gè)方面:

  • 小車?yán)锍逃?jì)數(shù)據(jù)的上傳與接收
  • 控制指令的下發(fā)與接收

1.原始消息內(nèi)容

在ROS中,里程計(jì)數(shù)據(jù)主要包括機(jī)器人的位姿(位置和姿態(tài)),以及機(jī)器人的速度(線速度和角速度)。對(duì)于本實(shí)驗(yàn)所用到的麥輪地面機(jī)器人,只需要知道機(jī)器人的x軸與y軸線速度、x軸與y軸位置、z軸角速度、偏航角即可。

由于對(duì)速度積分可以得到位置,對(duì)角速度積分可以得到角度,所以STM32端上傳的里程計(jì)數(shù)據(jù)只需要包括機(jī)器人的 x軸與y軸線速度、z軸角速度 ,ROS端在接收到這些數(shù)據(jù)后,進(jìn)行積分即可得到位置和角度。

另外,在本實(shí)驗(yàn)用到的STM32端集成了一個(gè)ICM20602姿態(tài)傳感器,其中內(nèi)置了姿態(tài)解算算法,可以獲得準(zhǔn)確的機(jī)器人姿態(tài)數(shù)據(jù),因此本實(shí)驗(yàn)使用STM32端上傳的偏航角來代替對(duì)角速度積分得到的航向角。

所以STM32上傳的里程計(jì)數(shù)據(jù)包括機(jī)器人的x軸線速度、y軸線速度、z軸角速度、偏航角。

與里程計(jì)數(shù)據(jù)類似,對(duì)于麥輪地面機(jī)器人,控制指令只需要包括機(jī)器人的x軸速度、y軸速度、z軸角速度即可,機(jī)器人坐標(biāo)系如圖所示:

圖片

2.轉(zhuǎn)換為字節(jié)數(shù)組

知道了消息的原始數(shù)據(jù),還需要將它轉(zhuǎn)換成傳輸效率更高的字節(jié)數(shù)組,如圖:

圖片

在C/C++中,有很多種將原始數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組的方法,其中一種常用的方法是使用聯(lián)合體(union)。

聯(lián)合體的所有成員占用同一段內(nèi)存,修改一個(gè)成員會(huì)影響其余成員,如果要實(shí)現(xiàn)一個(gè)float數(shù)據(jù)與字節(jié)數(shù)組的互相轉(zhuǎn)換,我們可以定義如下的聯(lián)合體:

typedef union{
  float data;
  uint8_t data8[4];
}data_u;

這個(gè)聯(lián)合體中有兩個(gè)成員,一個(gè)是32位的float數(shù)據(jù)data,另一個(gè)同樣是占據(jù)了32位字長的字節(jié)數(shù)組data8,根據(jù)聯(lián)合體的性質(zhì),這兩個(gè)成員所在的內(nèi)存位置是一樣的,也就是說,改變其中任何一個(gè)成員的值,另一個(gè)也會(huì)被改變。

利用這個(gè)性質(zhì),我們就可以實(shí)現(xiàn)float與字節(jié)數(shù)據(jù)的互相轉(zhuǎn)換。

3.添加幀頭和校驗(yàn)碼

本實(shí)驗(yàn)選擇常用的0xAA 0x55作為幀頭,同時(shí)對(duì)原始數(shù)據(jù)轉(zhuǎn)換得到的字節(jié)數(shù)組進(jìn)行求和,將結(jié)果保存在1字節(jié)數(shù)據(jù)中,作為校驗(yàn)碼。

準(zhǔn)備工作:

1.在ROS端安裝serial功能包

sudo apt-get install ros-melodic-serial

2.在ROS端創(chuàng)建一個(gè)功能包,命名為xrobot,添加依賴項(xiàng)roscpp rospy tf serial

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

    關(guān)注

    213

    文章

    29748

    瀏覽量

    212972
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6206

    瀏覽量

    137843
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365108
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    288

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    rosserial、ros_lib移植到STM32講解 精選資料分享

    這邊博客主要是對(duì)前面兩篇博客的一個(gè)補(bǔ)充(ROS使用STM32F407ZGT6作為底盤控制器、ros下使用rosserial和STM32F1/STM32F4系列進(jìn)行通信(MDK5工程))
    發(fā)表于 08-04 06:13

    小車底盤硬件開源自主導(dǎo)航小車MickX4

    開源自主導(dǎo)航小車MickX41 小車底盤1.1 底盤機(jī)械組裝1.2 底盤硬件框圖2 電氣系統(tǒng)搭建本系列教程意在分享自己學(xué)習(xí)ROS自主導(dǎo)航小車時(shí)候的筆記,教程
    發(fā)表于 08-06 07:08

    ROS與STM32是如何進(jìn)行通信

    ROS與STM32通信2020.8.1主要內(nèi)容制作ROS包,將控制命令傳給STM32,并將接收到的數(shù)據(jù)作為話題進(jìn)行發(fā)布STM32接收數(shù)據(jù)并將姿態(tài)數(shù)據(jù)傳回給
    發(fā)表于 08-11 07:25

    最實(shí)用的STM32和ROS機(jī)器人的串口通信方案

    全網(wǎng)最實(shí)用的STM32和ROS機(jī)器人的串口通信方案小白學(xué)移動(dòng)機(jī)器人同名公眾號(hào):小白學(xué)移動(dòng)機(jī)器人創(chuàng)作聲明:內(nèi)容包含虛構(gòu)創(chuàng)作
    發(fā)表于 08-20 06:33

    移動(dòng)機(jī)器人底盤主要包含哪些設(shè)備

    移動(dòng)機(jī)器人底盤主要包含電機(jī),電機(jī)驅(qū)動(dòng)器,底盤控制器和其它設(shè)備。底盤控制器與電腦通信,把電腦指令解析后發(fā)送給電機(jī)驅(qū)動(dòng)器,同時(shí)控制器
    發(fā)表于 09-07 06:15

    ROS的serial是如何進(jìn)行通信

    怎樣去安裝seria呢?ROS的serial是如何進(jìn)行通信的?
    發(fā)表于 12-06 06:31

    如何完成ROS與STM32之間的串口通信

    如何去實(shí)現(xiàn)ROS與STM32串口通信測(cè)試功能?如何完成ROS與STM32之間的串口通信呢?
    發(fā)表于 12-10 06:54

    如何搭建實(shí)體機(jī)器人ros底盤

    目錄介紹一、底盤主控板二、嵌入式開發(fā)板1. 與上位機(jī)pc的關(guān)系2. 與STM32主控板的關(guān)系介紹自下而上的分析實(shí)體機(jī)器人(差分輪速機(jī)器人)搭建中的關(guān)鍵過程。一、底盤主控板本部分搭建實(shí)體機(jī)器人ros
    發(fā)表于 01-20 07:36

    移動(dòng)通信電源技術(shù)要求和試驗(yàn)方法

    主題內(nèi)容與適用范圍:本標(biāo)準(zhǔn)規(guī)定了移動(dòng)通信電源的技術(shù)要求和試驗(yàn)方法。 本標(biāo)準(zhǔn)適用于供地面、內(nèi)河或沿海作移動(dòng)業(yè)務(wù)使用的,其額定輸出電壓為48V
    發(fā)表于 06-04 10:43 ?8次下載

    移動(dòng)通信系統(tǒng)優(yōu)化的范疇和內(nèi)容

    移動(dòng)通信系統(tǒng)優(yōu)化的范疇和內(nèi)容 關(guān)鍵字:移動(dòng)通信,GSM,CDMA,交換子系統(tǒng),基站子系統(tǒng),CQT/DT綜述  一個(gè)
    發(fā)表于 06-02 07:29 ?829次閱讀

    ROS與STM32通信

    ROS與STM32通信2020.8.1主要內(nèi)容制作ROS包,將控制命令傳給STM32,并將接收到的數(shù)據(jù)作為話題進(jìn)行發(fā)布STM32接收數(shù)據(jù)并將姿態(tài)數(shù)據(jù)傳回給
    發(fā)表于 12-24 19:00 ?12次下載
    <b class='flag-5'>ROS</b>與STM32<b class='flag-5'>通信</b>

    ROS移動(dòng)底盤通信教程

    本實(shí)驗(yàn)是實(shí)現(xiàn)機(jī)器人自主導(dǎo)航的重要步驟,對(duì)于輪式機(jī)器人,可以通過在底盤加裝輪式里程計(jì)的方式來獲得機(jī)器人的速度數(shù)據(jù),這些數(shù)據(jù)可以用來輔助機(jī)器人實(shí)現(xiàn)自主定位,同時(shí)機(jī)器人還需要將控制指令發(fā)送給移動(dòng)底盤,實(shí)現(xiàn)自主控制,本實(shí)驗(yàn)就將實(shí)現(xiàn)
    的頭像 發(fā)表于 03-14 10:27 ?1049次閱讀

    ROS移動(dòng)機(jī)器人的通信接口電路設(shè)計(jì)

      本文來聊聊ROS移動(dòng)機(jī)器人中控制器與樹莓派進(jìn)行傳輸信號(hào)的通信接口電路設(shè)計(jì)。在此之前回顧下在本項(xiàng)目第一篇文章中提到的硬件框圖。
    的頭像 發(fā)表于 03-17 10:46 ?1923次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>移動(dòng)</b>機(jī)器人的<b class='flag-5'>通信</b>接口電路設(shè)計(jì)

    ROS1的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)概念

    ROS通信架構(gòu)是ROS的靈魂所在,它包括數(shù)據(jù)處理,進(jìn)程運(yùn)行,消息傳遞等** 。這篇文章主要介紹ROS1的通信架構(gòu)的基礎(chǔ)
    的頭像 發(fā)表于 05-19 17:23 ?4288次閱讀
    <b class='flag-5'>ROS</b>1的<b class='flag-5'>通信</b>架構(gòu)的基礎(chǔ)<b class='flag-5'>通信</b>方式及相關(guān)概念

    ROS通信接口機(jī)制介紹

    ROS通信接口 接口可以讓程序之間的依賴降低,便于我們使用別人的代碼,也方便別人使用我們的代碼,這就是ROS的核心目標(biāo),減少重復(fù)造輪子。 ROS有三種常用的
    的頭像 發(fā)表于 12-01 15:03 ?1316次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>通信</b>接口機(jī)制介紹