RoboxКомплект из сервопривода и датчика расстояния
V.4Лабораторный стенд Promobot
RRStudioПростое написание алгоритмов
TestDevicesТестирование оборудования и проверка связи
Настройка WSL2Windows Subsystem for Linux
TelegramНаписать в чат технической поддержки
// Подключение библиотек для работы
// Библиотека для работы с Rooky
#include "Rooky.h"
#include <unistd.h>
int main()
{
// Инициализация Rooky.
// По умолчанию порт выбран для ubuntu - "/dev/RS_485"
// Для Windows порт имеет формат "COM#", например "COM3"
// можно выбрать RookySide::LEFT или RookySide::RIGHT
// false - вывод отладочной информации выключен
if (!initRooky("/dev/RS_485", RookySide::LEFT, false))
return -1;
// Выключим расслабление руки если оно происходило до этого
relax(false);
// Создадим структуру для описания движения сустава
struct Action
{
std::string name; // имя сустава
float speed; // предельная скорость сервоприводов
float position; // угол, на который следует повернуть сустав
};
// Создадим вектор из действий
std::vector<Action> actionSequence = // @suppress("Invalid arguments")
{
{ "joint_1", 5, 30 },
{ "joint_1", 20, 0 },
{ "joint_2", 5, 30 },
{ "joint_2", 10, 0 },
{ "joint_3", 20, 40 },
{ "joint_3", 20, 0 },
{ "joint_4", 10, 40 },
{ "joint_4", 20, 0 },
{ "joint_5", 20, 40 },
{ "joint_5", 20, 0 },
{ "joint_6", 20, 30 },
{ "joint_6", 20, 0 },
{ "joint_7", 20, 70 },
{ "joint_7", 20, 0 },
{ "joint_7", 20, 70 },
{ "joint_7", 20, 0 }
};
// Выполним каждое действие с паузой в 1с между ними
for (auto action : actionSequence)
{
INFO("Move joint - %s, speed - %.2f, to position - %.2f\n", action.name.c_str(), action.speed, action.position);
moveJoint(action.name, action.speed, action.position);
sleep(1);
}
// Расслабим руку
relax(true);
return 0;
}