日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ros 双wan配置_基于ROS搭建简易软件框架实现ROV水下目标跟踪(九)--程序解析之PWM波下发...

發布時間:2025/3/11 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ros 双wan配置_基于ROS搭建简易软件框架实现ROV水下目标跟踪(九)--程序解析之PWM波下发... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模塊對應cabin_controllers/serial_to_mcu。模塊實現的功能為監聽網絡中PWM矩陣信息,將其轉換成十六進制數據通過串口下發至MCU,實現對推進器電機的控制。模塊數據的串口通信借助了ros的serial工具包(sudo apt-get install ros-melodic-serial),網上比較多使用方法,在此就不做介紹了。當然我還是推薦源碼安裝(鏈接)。

在demo中,實際上水下燈的控制信息亦通過串口下發至MCU,實現對燈亮度的控制。

為了方便閱讀程序,在此還是貼出實驗中自定義的電機協議。

水下燈的協議:

一、輸入輸出

監聽topic:

(1)/command/pwm,格式:cabin_msgs::PwmStamped,推進器PWM矩陣信息;

(2)/command/light_intensity,格式:std_msgs::Int64,水下燈亮度信息;

輸出:

HEX數據流。

二、端口號及baudrate的設置

nh_private

也可以在serial_to_mcu.launch中隨時調整端口號及baudrate。

三、串口通信初始化設置

try{ser.setPort(serial_port_);ser.setBaudrate(baudrate_);serial::Timeout to = serial::Timeout::simpleTimeout(1000);ser.setTimeout(to);ser.open(); } catch(serial::IOException& e){ROS_ERROR_STREAM("Unable to open port!!!");return -1; }if(ser.isOpen()){ROS_INFO_STREAM("Serial Port initialized..."); } else{return -1; }

若端口號及baudrate配置正確,串口應該能正常打開。注意,程序運行前應給端口權限,否則無法通信。以demo中的測試為例,端口號為ttyUSB0,指令sudo chmod 777 /dev/ttyUSB0。

四、pwmToHex()函數

數據由十進制轉十六進制。

五、sendPWMData()函數

每收到一個PWM波矩陣信息,將其由十進制轉換成十六進制后,依據協議封裝, 下發。

ser.write(s_buffer, s_buffer_size);

上述代碼段為下發一次數據。

總結

以上是生活随笔為你收集整理的ros 双wan配置_基于ROS搭建简易软件框架实现ROV水下目标跟踪(九)--程序解析之PWM波下发...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。