Skip to content

Robot with simple PID regulator and connection to server is developed using ROS

Notifications You must be signed in to change notification settings

Dm1triy/Robot_simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Robot_simulation

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 будет выводить в консоль:

  1. Строку, которая обозначает, что робот получил от сервера таргетные значения линейной и угловой скоростей. В данной строке зашифрованы имя приёмника (робота), значения скоростей и время получения сообщения.
    /robot_8001_1649428081881 Get from serv V: 0.5(m/s) and omega 0.5(rad/s). Getting time: 1649428084617993354
  2. Набор строк, которые выводятся после ответа робота к серверу. В этих строках зашифрованы номера сообщений, количества импульсов энкодеров для левого и правого колёс после предыдущего измерения и время отправки.
    Mesurment number 2: Send to serv left: 210 and right: 280 Encoders. Sending time: 1649428084822168350
  • Скрипт server.py будет выводить в консоль:
  1. Строку, которая обозначает, что сервер отправил роботу таргетные значения линейной и угловой скоростей. В данной строке зашифрованы значения скоростей и время отправки сообщения.
    Send to robot V: 0.5(m/s), omega: 0.5(rad/s). Sending time: 1649428084720531463
  2. Набор строк, которые обозначают, что сервер принял от робота значения энкодеров. В этих строках зашифрованы имя приёника(сервера), номера сообщений, количества импульсов энкодеров для левого и правого колёс, время отправки и время получения.
    /server_8025_1649428084387 Mesurment number 2: Get from robot left:210, right:280 Encoders. Sending time:1649428084822168350. Receiving time: 1649428084822644472
  3. Набор строк, которые выводятся после рассчета и публикации для отладки координат робота. В этих строках зашифрованы значения координат и время их отправки.
    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 на другое.

About

Robot with simple PID regulator and connection to server is developed using ROS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published