Да, в Python вы можете писать ROS-узлы вне вашей рабочей области catkin.
Запустите ваш roscore
, а затем запустите скрипт Python в новом терминале, как обычно python filename
, и он будет работать так же, как если бы вы поместили его в рабочее пространство catkin, построили и получили его.
Я успешно создал узлы подписчика и издателя и запускаю их на реальном TurtleBot2 без того, чтобы узлы находились внутри рабочей области catkin.
Я не думаю, что описанный мною метод работает на C ++. Это работает только для Python. В C ++ вам придется связывать библиотеки во время компиляции. Итак, проверьте это. Например, мы делаем g ++ filename.cpp -lm, где -lm связывает математическую библиотеку, которая будет использоваться в filename.cpp, поэтому вам может потребоваться проверить, как это сделать. С другой стороны, проще просто добавить файл в рабочее пространство catkin или просто перейти на Python.
Вы должны включить ros / ros.h и std_msgs / message_name.h, где message_name заменяется любым сообщением, которое вы используете в коде. Вы можете найти эти файлы где-нибудь, или вы можете получить исходный код файлов онлайн, выполнив поиск.