1. 程式人生 > >ros系統下通過pyserial模組實現串列埠通訊(Python)

ros系統下通過pyserial模組實現串列埠通訊(Python)

經過幾天的摸索終於實現了:
在ros系統下,訂閱Twist/cmd_vel 訊息,經過USB轉串列埠通訊,實現了通過燈帶實時反映小車(差速)執行狀態的功能。
通訊部分主要依賴pyserial模組的功能實現。

#!/usr/bin/env python
#coding=utf-8
import rospy
import serial
from geometry_msgs.msg import Twist
import roslib;roslib.load_manifest('ros_bringup')
import time

ser = serial.Serial(port='/dev/tty*', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=2,rtscts=True,dsrdtr=True)
ser.isOpen()   
res=ser.readall() 

def cmdcallback(msg):
    #rospy.Publisher('/cmd_vel',Twist)
    rospy.loginfo("Received a /cmd_vel message!")
    rospy.loginfo("Linear Components: [%f, %f, %f]"%(msg.linear.x, msg.linear.y, msg.linear.z))
    rospy.loginfo("Angular Components: [%f, %f, %f]"%(msg.angular.x, msg.angular.y, msg.angular.z))
    #####
    資料處理過程省略
    #####
    ser.write(data)
    
    s = ser.read(1)
    print(s)

def LED():
    rospy.init_node('cmd_vel_listener')
    rospy.Subscriber("/cmd_vel",Twist,cmdcallback)
    rospy.spin()
if __name__=="__main__":
    LED()

相關推薦

ros系統通過pyserial模組實現串列通訊Python

經過幾天的摸索終於實現了: 在ros系統下,訂閱Twist/cmd_vel 訊息,經過USB轉串列埠通訊,實現了通過燈帶實時反映小車(差速)執行狀態的功能。 通訊部分主要依賴pyserial模組的功能實現。 #!/usr/bin/env python #codi

ROS串列通訊1環境搭建

ROS串列埠通訊(1)環境搭建 引言 1、ubuntu串列埠驅動安裝和使用 1.1 安裝 1.2 使用 1.3 Ubuntu 檢視串列埠,設定串列埠許可權 2、Ubuntu下的串列埠助手cute

MFC串列通訊——使用MSComm控制元件實現串列通訊

  由於專案需要,最近在寫一個簡單的串列埠通訊,基於MFC框架,寫完之後特此回顧記錄一下學習的過程: 串列埠通訊主體框架 (1) 初始化介面(自動獲取全部可用串列埠) (2) 開啟串列埠 (讀取串列埠號,初始化串列埠引數(波特率、校驗位、資料位等),若

51微控制器通過ESP8266模組與手機進行通訊微控制器

 本人在校大學生一枚,前段時間參加校內大學生創新創業比賽,專案需要讓手機控制微控制器進行控制,搗鼓了很久,在網上找了很多資料,發現做微控制器嵌入式的有很多,做移動開發的也有很多,但把他們結合起來的很少,所以現在我把我做專案的經驗分享出來  Step1:配置ESP8266

51微控制器的串列通訊

串列埠通訊好東西,但我沒用過。 下面照著普中科技的ppt搬運下。        隨著多微機系統的廣泛應用和計算機網路技術的普及,計算機的通訊功能愈來愈顯得重要。計算機通訊是指計算機與外部裝置或計算機與計算機之間的資訊交換。 通訊方式 有並行

MFC串列通訊——MSComm控制元件簡介

Visual C++為我們提供了一種好用的ActiveX控制元件Microsoft Communications Control(即MSComm)來支援應用程式對串列埠的訪問,在應用程式中插入MSComm控制元件後就可以較為方便地實現對通過計算機串列埠收發資料。&nbs

MFC串列通訊——換電腦執行出現“Debug Assertion Failed“”

用MSComm控制元件寫好的程式,換電腦執行遇到Debug Assertion Failed“,如下圖 由於該電腦上沒有安裝mscomm.ocx 元件所造成,安裝方法如下: (1)下載控制元件,下載連結連結:https://download.csdn.net/download/kang

51微控制器之串列通訊

一.基礎知識 1.序列通訊和並行通訊:目前用的比較多的是序列通訊。序列通訊優點是連線簡單,傳輸距離遠;缺點是傳輸速度慢。 2.序列通訊:分為同步通訊和非同步通訊;非同步通訊是指傳送和接收裝置利用各自

C/C++串列通訊2-重疊操作

重疊操作時,操作還未完成函式就返回。 重疊I/O非常靈活,它也可以實現阻塞。有兩種方法可以等待操作完成: 一種方法是用WaitForSingleObject這樣的等待函式來等待OVERLAPPED結構的hEvent成員; 另一種方法是呼叫GetOver

C/C++串列通訊1-同步操作

轉自: 串列埠通訊方式:呼叫Windows的API函式 兩種操作方式: 1. 同步操作方式 API函式會阻塞直到操作完成以後才能返回(在多執行緒方式中,雖然不會阻塞主執行緒,但是仍然會阻塞監聽執行緒); 2. 重疊操作方式(又稱為非同

在ubuntu利用minicom實現串列通訊

    windos有串列埠除錯助手,linux下也有這樣的工具——minicom。不過,minicom和linux下的許多工具都一樣,也是命令列模式,沒有圖形化介面供我們享受。作為一款串列埠除錯工具,雖然難看但總比沒有的好。     為什麼linux下的工具都這麼的簡樸,沒什麼華麗的介面,好像回到瞭解放前

樹莓派+Python+pyserial 2.7實現串列通訊

手上有個CCD Camera(Barcode Reader/Scanner Module),它是通過RS232通訊的,用RS232轉USB的轉接線連線樹莓派,即可完成硬體連線。對於串列埠通訊,可以通過pyserial實現。 首先,安裝pyserial: tar zxvf

python通過pyserial讀寫串列

轉自:http://blog.csdn.net/xiaoxianerqq/article/details/50351632 一個python版串列埠工具的分享:http://bbs.csdn.net/topics/390535101 api說明文件:http://pyth

樹莓派3B+ 安裝系統;搭建python,opencv環境;實現串列通訊

一:安裝系統 二:通過VNC訪問樹莓派(無線和有線) 1.樹莓派設定 安裝vnc sudo apt-get update sudo apt-get install tightvncserver 設定vnc密碼(一定要設定,要不然無法

C++實現串列通訊上位機軟體

串列埠使用的是RS232匯流排進行通訊,通訊方式是半雙工。有兩種方式可以實現串列埠通訊,一種是通過ActiveX控制元件這種方法程式簡單,但欠靈活。第二個是可以通過呼叫Windows的API函式,本例程通過第二種方式。 一般通過四步來完成通訊(1)開啟串列埠(2)配置串列埠(3)讀寫串列埠(4)

【C語言實現串列通訊知識點整理】關於執行緒和程序

轉載:https://www.cnblogs.com/fuchongjundream/p/3829508.html 因為在外部檔案中呼叫結構體沒有用extern修飾,導致獲取不到正確的值,一直糾結線上程上。現在大概總結執行緒和程序的特點: 概念 1、程序(process) 狹義定義:

【C語言實現串列通訊知識點整理串列開啟、設定資料成功後進行資料讀寫

int OpenDev(char *Dev) { int fd = open(Dev,O_RDWR | O_NOCTTY | O_NONBLOCK); if(-1 == fd) { perror("Can't Open Serial Port"); return -1;

【C語言實現串列通訊知識點整理】遇到的問題整理待續....

1.c編譯錯誤--error:stray \357 in program UTF-8編碼問題。UTF-8編碼有BOM和無BOM格式。BOM,ByteOrderMark(位元組標記順序),表明使用UTF8來進行編碼。UTF-8的BOM通常為3個位元組EF BB BF。轉換成對應的字元檢視,就是‘\

【C語言實現串列通訊知識點整理】執行緒、開啟串列、設定波特率、設定校驗位、互斥鎖等實現基本的通訊

  部分程式碼借鑑地址:https://blog.csdn.net/wangqingchuan92/article/details/73497354/ 謝謝! 1.建立執行緒線上程內進行串列埠之間的收發 void CREAT_pthread(void) { pthr

vs2010mfc的串列程式設計MSComm

串列埠通訊簡介   一般來說,計算機都有一個或多個串列埠,這些串列埠提供了外部裝置與PC進行資料傳輸和通訊的通道,在CPU和外設之間充當直譯器的角色。當字元資料從CPU傳送給外設時,這些字元資料將被轉換成序列位元流資料;當接收資料時,位元流資料被轉換為字元資料傳遞給CPU,再進一步說,在