Ros使用Arduino 2 使用rosserial建立一個publisher

1 啓動arduino

將arduino開發板鏈接到電腦的usb口,在arduino IDE中進行設置。node

選擇Tools->Board,選擇你所使用的arduino開發板的類型,所使用的arduino開發板是arduino pro min。python

設置好開發板以後,繼續選擇Tools->Serial Port->/dev/ttyUSB1。函數

2 打開ROS例程

 

設置完成之後,在arduino IDE中,選擇File->Examples->ros_lib->HelloWorld,就打開了以下的代碼:oop

/*
 * rosserial Publisher Example
 * Prints "hello world!"
 */
//包含ros.h和其它可能會用到的消息的頭文件。
#include <ros.h>
#include <std_msgs/String.h>

//建立了一個節點的句柄,它容許咱們用來建立發佈者和訂閱者。這個節點的句柄一樣與串口通訊有關。 ros::NodeHandle nh;
//咱們須要建立一個將要使用的發佈者和訂閱者。在上面的兩行代碼中,咱們在話題chatter上建立了一個發佈者。第二個參數是被髮布者未來用於發佈消息的一個消息的引用。 std_msgs::String str_msg; ros::Publisher chatter("chatter", &str_msg); char hello[13] = "hello world!";
//始化節點句柄,告知那些話題將會有發佈,以及訂閱你想收聽的話題。   void setup() {
nh.initNode(); nh.advertise(chatter); }
//最後在loop函數中,節點在chatter話題上發佈了消息「hello world」,而且調用了ros::spinOnce(),也就是說全部ROS通訊的回調都被處理。 void loop() { str_msg.data = hello; chatter.publish( &str_msg ); nh.spinOnce(); delay(1000); }

 在arduino IDE中,點擊upload運行程序。

運行ROS節點

打開一個窗口ui

roscore

新打開一個窗口spa

rosrun rosserial_python serial_node.py /dev/ttyUSB1

在一個終端中輸入以下命令來查看你的arduino發送的消息:blog

rostopic echo chatter

 你可看到arduino的數據通訊燈在閃,這能夠說明arduino確實在發送數據給電腦。開發

相關文章
相關標籤/搜索