Robot with simple regulator and connection to server is developed using ROS
Для корректной работы необходимо установить numpy и matplotlib.
-
Скопировать папку robot_sim в catckin_ws/src
-
Собрать проект
$ catkin_make --only-pkg-with-deps robot_sim
-
Запустить ядро Ros
$ roscore
-
Сначала запустить скрипт robot.py затем server.py (порядок важен!)
$ rosrun robot_sim robot.py
$ rosrun robot_sim server.py
-
Скрипт robot.py будет выводить в консоль:
- Строку, которая обозначает, что робот получил от сервера таргетные значения линейной и угловой скоростей. В данной строке зашифрованы имя приёмника (робота), значения скоростей и время получения сообщения.
/robot_8001_1649428081881 Get from serv V: 0.5(m/s) and omega 0.5(rad/s). Getting time: 1649428084617993354
- Набор строк, которые выводятся после ответа робота к серверу. В этих строках зашифрованы номера сообщений, количества импульсов энкодеров для левого и правого колёс после предыдущего измерения и время отправки.
Mesurment number 2: Send to serv left: 210 and right: 280 Encoders. Sending time: 1649428084822168350
- Скрипт server.py будет выводить в консоль:
- Строку, которая обозначает, что сервер отправил роботу таргетные значения линейной и угловой скоростей. В данной строке зашифрованы значения скоростей и время отправки сообщения.
Send to robot V: 0.5(m/s), omega: 0.5(rad/s). Sending time: 1649428084720531463
- Набор строк, которые обозначают, что сервер принял от робота значения энкодеров. В этих строках зашифрованы имя приёника(сервера), номера сообщений, количества импульсов энкодеров для левого и правого колёс, время отправки и время получения.
/server_8025_1649428084387 Mesurment number 2: Get from robot left:210, right:280 Encoders. Sending time:1649428084822168350. Receiving time: 1649428084822644472
- Набор строк, которые выводятся после рассчета и публикации для отладки координат робота. В этих строках зашифрованы значения координат и время их отправки.
Send to debugging coordinates x = 0.014115413701480638(m), y = 0.00011166968888690927(m),theta = 0.01410333188153311(rad). Sending time: 1649428084923361063
- После остановки скрипта server.py будет выведен график, на котором изображена реальная траектория робота, после закрытия этого графика будет выведен график, на котором изображена идеальная траектория.
- Чтобы изменить таргетные значения необходимо в файле
robot_sim/scripts/server.py
в частиif __name__=="__main__"
найти вызов функцииsendToRobot (0.5, 0.5)
и изменить параметры вызова: первый отвечает за линейную скорость робота, второй за угловую скорость. - Чтобы изменить время регулирования необходимо в файле
robot_sim/scripts/robot.py
найти определение функцииgetNew(W1prev, W2prev, W1tar, W2tar)
и заменить значение переменнойT = 0.01
на другое.