Проекты с использованием контроллера Arduino



Download 12,28 Mb.
Pdf ko'rish
bet206/215
Sana22.02.2022
Hajmi12,28 Mb.
#109180
1   ...   202   203   204   205   206   207   208   209   ...   215
Bog'liq
Petin V A - Proekty s ispolzovaniem kontrollera Arduino Elektronika 2014


Глава 29. Arduino и ROS 
383 
Узлы могут также предоставлять или использовать службы (Service). Службы по-
зволяют узлам послать запрос и получить ответ. 
Файлы служб 
srv
— такие же простые текстовые файлы, как и файлы 
msg
, но они 
состоят из двух частей: запроса и ответа. Эти две части, разделяются линией: 
- - -

Пример файла 
srv

int64 A 
int64 B 
--- 
int64 Sum 
В этом примере, 
A
и 
В
— это запрос, а 
Sum
— это ответ. 
Файлы 
srv
хранятся в подкаталоге 
srv
каталога пакета. 
29.5. Пакет rosserial 
Библиотека 
rosserial
устанавливает соединение точка-точка (point-to-point 
connection) через последовательный порт с недорогими контроллерами (типа 
Arduino) так, что вы можете посылать сообщения ROS туда и обратно. 
Библиотека 
rosserial
состоит из общего P2P-протокола, библиотеки для работы 
с Arduino и узлов для ПК. 
Библиотека для работы с Arduino находится в папке проекта 
serial
, в каталоге 
serial_arduino/libraries
. Копируем папку 
ros_lib
в библиотечный каталог 
libraries
Arduino 
IDE (рис. 29.1). Библиотека 
ros_lib
размещена также в папке 
libraries 
сопровож-
дающего книгу электронного архива. 
Рис. 29.1. Подключение библиотеки 
ros_lib


384 
Часть III. Практическое применение Arduino 
29.6. Подготовка сообщения (publisher) 
на Arduino 
Создадим скетч на Arduino, демонстрирующий создание узла ROS, публикующего 
сообщения в тему. Соединяем Arduino с компьютером, на котором запущена ROS 
по последовательному порту (в рассматриваемом случае это порт 
/dev/ttyUSB0
).
К контроллеру подключен датчик температуры DS18B20. Будем отправлять в ROS 
значения температуры с датчика, используя библиотеки 
OneWire.h
и 
ros_lib

Работу с датчиком температуры, работающим по протоколу 1-Wire, мы подробно 
рассмотрели в предыдущих главах (см. например, 
главы 11 и 12), поэтому здесь 
остановимся на работе библиотеки 
ros_lib

В каждую программу ROS Arduino необходимо включить заголовочный файл 
ros.h
и файлы заголовков для всех типов сообщений, которые мы будем использовать, — 
в нашем случае это 
std_msgs/Float32.h

#include  
#include  
Далее нам необходимо создать экземпляр объекта узла 
serial_node
, что позволит 
нашей программе выступать в качестве подписчика (subscriber), либо публиковать 
сообщения (publisher): 
ros::NodeHandle nh; 
Создаем экземпляр 
publisher
для нашего узла 
serial_node
, публикующий сообще-
ния типа 
std_msgs::Float32
в тему 
temperature

std_msgs::Float32 float32_msg; 
ros::Publisher chatter("temperature", &float32_msg); 
В подпрограмме 
setup()
необходимо инициализировать узел и объявить о роли
узла 
chatter
в качестве 
publisher

nh.initNode(); 
nh.advertise(chatter); 
В цикле 
loop()
после считывания данных с датчика температуры публикуем сооб-
щение в тему и вызываем 
ros::spinOnce()
, где обрабатываются все функции обрат-
ного вызова соединения. 
chatter.publish( &float32_msg ); 
nh.spinOnce(); 
Код данного скетча представлен в листинге 29.1. 
Листинг 29.1 
#include  
OneWire ds(10); // линия 1-Wire будет на pin 10 
#include  
#include  


Download 12,28 Mb.

Do'stlaringiz bilan baham:
1   ...   202   203   204   205   206   207   208   209   ...   215




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish