Практические задания
Задание для RaspberryPi
- Создайте пакет
base_rosс зависимостями от пакетов:std_msgsrospyroscppmessage_generationmessage_runtime- Добавьте в пакет все созданные ранее 'python' скрипты
- Установите пакет в систему
- Продемонстрируйте работу скриптов пакета используя утилиту
rosrun - Создайте в пакете директорию
data, в директории - файлparams.txt- Добавить в сборщик команды для копирования директории и файла в папку инсталляции пакета
- Переустановите пакет, продемонстрируйте выполнение копирования файла и директории утилитой
roscd
Компиляция "С" программы
- Добавьте в пакет файл
src/topic_subscriber.cpp(исходник смотри ниже)- Добавьте в сборщик команды для компиляции и переноса СИ программы в директорию пакетов ros
- По коду программы объясните что она делает
- Продемонстрируйте правильность установки программы утилитой
rosrun
Перенос пакета на PC
Созданный пакет вам необходимо перенести на компьютер и произвести его сборку. Проверить работоспособность .py файлов через утилиту rosrun
Дополнительные материалы
- Инструкция по работе с файлами CMakeLists.txt
- Создание подписчика и издателя на С++)
- Книга "Введение в ROS" Создание первой программы
Программа topic_subscriber.cpp
// ROS Default Header File
#include "ros/ros.h"
// Message File Header
#include "std_msgs/String.h"
void msgCallback(const std_msgs::StringConstPtr& msg)
{
ROS_INFO("recieve msg = %s", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "topic_subscriber_node");
ROS_INFO("Hello from SUB node");
ros::NodeHandle nh;
ros::Subscriber ros_tutorial_sub = nh.subscribe("hello", 100, msgCallback);
ros::spin();
return 0;
}