Привет, я использую Docker-контейнер для разработки в среде скромного ros2.
Пока я конвертировал открытый манипулятор выбора и размещения в ros2 скромный в контейнере, я написал тот же код из существующего кинетического ros1.
Это вот эта часть.
Код: Выделить всё
bool OMExample::kbhit()
{
termios term;
tcgetattr(0, &term);
termios term2 = term;
term2.c_lflag &= ~ICANON;
tcsetattr(0, TCSANOW, &term2);
int byteswaiting;
ioctl(0, FIONREAD, &byteswaiting);
tcsetattr(0, TCSANOW, &term);
printf("byteswaiting: %d\n", byteswaiting);
return byteswaiting > 0;
}
На всякий случай я оставлю команду при запуске Docker-контейнера
< бр />
Код: Выделить всё
sudo docker run --privileged -v /home/irasc-eunsung/humble_openmanipulator_4dof:/root/home -v /dev:/dev -it --network host --ipc host --pid host --volume /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY=unix$DISPLAY --name humble_openmanipulator_4dof --gpus all irasc/ros:humble-turtlebot3-desktop
Код: Выделить всё
bool OMExample::kbhit()
{
pollfd fds;
fds.fd = STDIN_FILENO; // Standard input
fds.events = POLLIN; // There is data to read
// Check if input is available without waiting
bool key_was_pressed = poll(&fds, 1, 0) > 0;
// Print out the bool value
std::cout
Источник: [url]https://stackoverflow.com/questions/78155575/ros2-humble-open-manipulator-teleop-importing[/url]