ROS與Arduino學習(二)HelloWorld


ROS與Arduino學習(二)HelloWorld

 

Tutorial Level:准備工作

Next Tutorial:訂閱與發布

 

本節我們開始解讀第一個歷程,HelloWorld往是每一個編程者使用一個新的編譯環境的第一個程序,意味着睜眼看世界。

代碼如下:

/*
 * rosserial Publisher Example
 * Prints "hello world!"
 */

#include <ros.h>
#include <std_msgs/String.h>

ros::NodeHandle  nh;

std_msgs::String str_msg;
ros::Publisher chatter("chatter", &str_msg);

char hello[13] = "hello world!";

void setup()
{
  nh.initNode();
  nh.advertise(chatter);
}

void loop()
{
  str_msg.data = hello;
  chatter.publish( &str_msg );
  nh.spinOnce();
  delay(1000);
}

 

Tips 1 頭文件

兩個頭文件,一個是ros.h頭文件。這個是必需的。另一個是std_msgs/String.h頭文件,是消息程序包。用於節點之間發送消息功能。

 

 

Tips 2 聲明

1句柄

ros::NodeHandle  nh;

 生成節點句柄

2話題

ros::Publisher chatter("chatter", &str_msg);

 發布一個話題,名字叫做chatter,消息內容

3消息對象

std_msgs::String str_msg;

 聲明一個消息對象str_msg。其參數為data內容為消息內容。

 

Tips 3 發布消息

 chatter.publish( &str_msg );

 發布一個消息   話題.publish(&消息)

 

接下來要運行程序,和我們windows中操作一致,用串口就可以下載。下載進去我們做一個簡單的測試,用我們的PC看一下這個話題的消息。

  1. 運行roscore
$ roscore
  1. 新終端運行,/dev/ttyUSB0為Arduino設備
rosrun rosserial_python serial_node.py /dev/ttyUSB0

rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0
  1. 顯示主題chatter,獲取Arduino板反饋的信息
rostopic echo chatter

在此可能會遇到一些問題。參考下面處理

/dev/ttyUSB0 permission denied



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM