рдЯреНрд░реЙрд▓реА рд░реЛрдмреЛрдЯ 2.0ред рднрд╛рдЧ 1. ROS рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдШрд░реЗрд▓реВ рд░реЛрдмреЛрдЯ рдХрд╛ рд╕реНрд╡рд╛рдпрддреНрдд рдиреЗрд╡рд┐рдЧреЗрд╢рди

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдордВрдбрд▓ рдореЗрдВ - linorobot (linorobot.org), рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реЗрдордирд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдЬреЛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ: рдЦреНрд░реБрд╢реНрдЪреЗрд╡ рдХреЗ рд╕рдВрдХреАрд░реНрдг рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реНрдЯреИрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд┐рдиреА-рдкреАрд╕реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрд░ рдкрд░ рд░реЛрдмреЛрдЯ рдХреЗ рд╕реНрд╡рд╛рдпрддреНрдд рдЖрдВрджреЛрд▓рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред



рд▓реЛрд╣рд╛


рдареЛрд╕ рдкрджрд╛рд░реНрдереЛрдВ рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреА рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдмреА - 2800 рдЖрд░ ред;
  • рд▓рд┐рдбрд╛рд░ rplidar a1 - 7500 рдкреАред;
  • рдкрд╛рд╡рд░ рдмреНрд░рд┐рдЬ l298n -2 рдкреАрд╕реА - 400 рд░рдЧрдбрд╝ ред;
  • рдЯрд╛рдЗрдк рдП рдФрд░ рдмреА рдХреЗ рдПрдиреНрдХреЛрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╡реНрд╣реАрд╕реЗрдЯ - 2000 рдЖрд░ред (210 рдЖрд░рдкреАрдПрдо - рд▓рд┐рдВрдХ )
  • рдХрд┐рд╢реЛрд░ 3.2 - 2100 рдЖрд░ ред;
  • imu 9250 (рдпрд╛ рддреЛ 9150 рдпрд╛ 6050) - 240 рдкреА ред;
  • 10000mH рдкрд░ рдкрд╛рд╡рд░ рдмреИрдВрдХ - 1500 рдЖрд░ред
  • 3 рдмреИрдЯрд░реА 18650 рдФрд░ рдзрд╛рд░рдХ -600 рдкреАред
  • рд╕реНрдЯреЗрдк-рдбрд╛рдЙрди рдХрдирд╡рд░реНрдЯрд░ dc-dc c 5V рд╕реЗ 3.3V - 20pред
  • рдкреНрд▓рд╛рдИрд╡реБрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛, рд▓рдХрдбрд╝реА рдХреА рдЫрдд -? рд░рдЧрдбрд╝ред

рдХреБрд▓: 17160 рдкреАред

* Arduino Mega 2560 (600 pред), рдФрд░ рд▓рд┐рдбрд╛рд░ рдХреЛ рдЯреАрдирдПрдЬ v.1 (1000 pред) рдХреЗ рд╕рд╛рде рдмрджрд▓ рдХрд░ рдХрд┐рд╢реЛрд░ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╣рд▓реЗ kinect рдореЗрдВ 0.5 m рдХреА рдиреНрдпреВрдирддрдо рджреГрд╢реНрдпрддрд╛ (рдЕрдВрдзрд╛ рдХреНрд╖реЗрддреНрд░) рд╣реИред рдЬреЛ рддрдВрдЧ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рднрд╛рд░реА рд╣реИред рд▓рд┐рдбрд╛рд░ рдореЗрдВ 0.2 m рд╕реЗ рдХрдо рдХрд╛ рдЕрдВрдзрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИред Kinect v.2 рд░рд╛рд╕реНрдкрдмреЗрд░реА 3b рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЗрд╕рдореЗрдВ usb 3.0 рдирд╣реАрдВ рд╣реИ)ред Arduino рдореЗрдЧрд╛ рдЖрдХрд╛рд░ (рдФрд░ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ) рдореЗрдВ рдХрд┐рд╢реЛрд░ рд╕реЗ рдиреАрдЪ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, "рдбрд┐рдЬрд╝рд╛рдЗрди" рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:





рдпрд╣рд╛рдБ рдХреЛрдИ рд╕реБрдВрджрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рдмреЗрд╢рдХ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рд░реЛрдмреЛрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдмрд╛рд╣рд░реА рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд░реЛрдмреЛрдЯ (рдЖрд░рд╡реАрдЬрд╝, рдЧрдЬрд╝реЗрдмреЛ) рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЧреЛрд▓реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд░реЛрдмреЛрдЯ рд╡рд┐рдзрд╛рдирд╕рднрд╛


рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдХ рд▓рд┐рдВрдХ , рддреЛ рдЖрдЗрдП рд╣рдо рдЙрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рдПрдирдХреЛрдбрд░ 3.3V рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИрдВ рдФрд░, рдЬрдм 5V рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рд▓рд┐рдиреЛрд░реЛрдмреЙрдЯ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ ubuntu 16.04, ubuntu 18.04 рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рд╣реИред рдЖрд░рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг: рдЖрд░рдУрдПрд╕ рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рдпрд╛ рдЖрд░рдУрдПрд╕ рдореЗрд▓реЛрдбрд┐рдХред рд░рд╛рд╕реНрдкрдмреЗрд░реА 3 рдмреА рдкрд░, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╕реНрд╡реИрдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЦреНрдп рдХрд┐рд╢реЛрд░ рдХреЛрдб рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╣реИ:

roscd linorobot/teensy/firmware/lib/config
nano lino_base_config.h

рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рдбрд╛рд▓рд╛:

roscd linorobot/teensy/firmware
platformio run --target upload

рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдмрдВрдбрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд░реЛрдмреЛрдЯ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, l298n рд╕реЗ рдХрд┐рд╢реЛрд░ рддрдХ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬреБрдбрд╝реЗ рд╕рдВрдкрд░реНрдХреЛрдВ рдХрд╛ рд╕рд╣реА рд╕рд╣рд╕рдВрдмрдВрдз рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрддреНрдпрдВрдд рд╕реНрдкрд╖реНрдЯ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд╣рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреЛрдб рдореЗрдВ рд╕рд╣реА рдкрд┐рди рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛:

/// ENCODER PINS
#define MOTOR1_ENCODER_A 14
#define MOTOR1_ENCODER_B 15 

#define MOTOR2_ENCODER_A 11
#define MOTOR2_ENCODER_B 12 
//MOTOR PINS
#ifdef USE_L298_DRIVER
  #define MOTOR_DRIVER L298

  #define MOTOR1_PWM 21
  #define MOTOR1_IN_A 1
  #define MOTOR1_IN_B 20

  #define MOTOR2_PWM 5
  #define MOTOR2_IN_A 8
  #define MOTOR2_IN_B 6

рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рд░реЛрдмреЛрдЯ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ:

//define your robot' specs here
#define MAX_RPM 210               // motor's maximum RPM
#define COUNTS_PER_REV 1365       // wheel encoder's no of ticks per rev
#define WHEEL_DIAMETER 0.065       // wheel's diameter in meters
#define PWM_BITS 8                // PWM Resolution of the microcontroller
#define LR_WHEELS_DISTANCE 0.235  // distance between left and right wheels
#define FR_WHEELS_DISTANCE 0.30   // distance between front and rear wheels. Ignore this if you're on 2WD/ACKERMANN
#define MAX_STEERING_ANGLE 0.415  // max steering angle. This only applies to Ackermann st

RPM рд╡реНрд╣реАрд▓ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди CPR (COUNTS_PER_REV) рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рди рд╣реИред
CPR = PPR x 4. рд╣рдорд╛рд░реЗ рдкрд╣рд┐рдпреЛрдВ рдХрд╛

PPR 341ред * PPR рдХреЛ рдпрд╛ рддреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреЛрдб рдХреЛ roslaunch linorobot minimal.launch рд░реЛрдмреЛрдЯ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд┐рдпрд╛ 360 рдбрд┐рдЧреНрд░реА рдХреЛ рд╕реНрдкрд┐рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред PPR рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ рдЬреЛ рд╡реНрд╣реАрд▓ рд░реЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛:



* PPR = abs (RECENT_COUNT - INITIAL_COUNT)ред

рддреЛ рд╕реАрдкреАрдЖрд░ = 1364. рдЖрдкрдХреЛ рдореАрдЯрд░ рдореЗрдВ WHEEL_DIAMETER рдФрд░ LR_WHEELS_DISTANCE рднреА рд╕реЗрдЯ рдХрд░рдиреА рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, LR_WHEELS_DISTANCE рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдХреЗрдВрджреНрд░реАрдп рдзреБрд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рд╣реИ, рдФрд░ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдХрд┐рдирд╛рд░реЗ рддрдХ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд░реЛрдмреЛрдЯ рджреЛ-рдкрд╣рд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд░ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рддреАрд╕рд░рд╛ рдмрд┐рдВрджреБ рдЬреЛ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ - imu рдЕрдВрд╢рд╛рдВрдХрдиред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рдВрдХреЗрдд рдЙрд╕ рдХреЛрдб рдореЗрдВ рд╣реЛрдВрдЧреЗ рдЬрдм rosrun imu_calib do_calib рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ :



рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде imu_calib.yaml рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрдВрд╢рд╛рдВрдХрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЕрдВрд╢рд╛рдВрдХрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
* рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ imu рдЕрдВрд╢рд╛рдВрдХрди рдЯреЗрд▓реАрдлрд╝реЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрдмреЛрдЯ рдХреА рдЧрддрд┐ рдХреА рджрд┐рд╢рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рджрд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдмрд╛рдПрдВ, рдЬрдмрдХрд┐ рдЖрдВрджреЛрд▓рди рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕рд╣реА рдерд╛)ред рдХреЛрдб рдореЗрдВ рдкрд┐рдиреЛрдВ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕реНрдерд┐рддрд┐ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИред Imu рд╣реА рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрд▓реНрдЯрд╛ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рд░реЛрдмреЛрдЯ рдмреЗрд╕ рдХреЗ рдкреАрдЫреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрд╕рдХреЗ (imu) рдЖрдЧреЗ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдлреНрд▓рд┐рдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред

рдЪреМрдерд╛ рдмрд┐рдВрджреБ - рдкрд┐рдб рдЕрдВрд╢рд╛рдВрдХрдиред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд▓рд┐рдВрдХ ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрдИрдбреА тАЛтАЛрд╡рд┐рдирд┐рдпрдорди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рд░реЛрдмреЛрдЯ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЭрдЯрдХреЗ / рдЕрдЪрд╛рдирдХ рдмреНрд░реЗрдХ рд▓рдЧрд╛рдирд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ: p, i, dред рдЙрдирдХреЗ рдореВрд▓реНрдп рдХрд┐рд╢реЛрд░ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рдореБрдЦреНрдп рдХреЛрдб рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ:

#define K_P 2.0 // P constant angle
#define K_I 0.3 // I constant
#define K_D 0.1 // D constant

рдЖрдк рд░реЛрдмреЛрдЯ рдкрд░ рдЪрд▓рд╛рдХрд░ рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

roslaunch linorobot minimal.launch

рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдореЗрдВ рдмрд╛рд╣рд░реА рдкреАрд╕реА рдкрд░ рдЖрдЧреЗ:

rosrun lino_pid pid_configure
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
rqt

рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ p, d, i рдХреЛ rqt рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░, рдФрд░ рдлрд┐рд░ teleop_twist_keyboard рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдХреЗ, рдЖрдк рд╣рд░ рдмрд╛рд░ рдЯреАрдирдПрдЬ рдореЗрдВ рдирдП pid рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ



, рдЕрд░реНрдерд╛рдд, рд╕рдм рдХреБрдЫ рдордХреНрдЦреА рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╕рдордп рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╢реЛрд░ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЕрд░реНрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред * рдЖрдк рдЪрд╛рд░реНрдЯ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрддреНрд░рд╣реАрди, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреИрд╕реЗ рдпрд╛рддреНрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╡реЗ рдорд╛рди p = 1.0, d = 0.1, i = 0.1 рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ (рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд) p = 2.0, i = 0.3, d = 0.1ред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреЛрдб рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рд╢реЛрд░ рдореЗрдВ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдб (DEBUG 0 рдХреЗ рдмрдЬрд╛рдп DEBUG 1) рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:

#define DEBUG 0

Odometry


рд░реЛрдмреЛрдЯ рдХреЗ рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдФрд░ рдмрд╛рдж рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП, рд▓рд┐рдбрд╛рд░ рдбреЗрдЯрд╛, рдЗрдореВ рдФрд░ рд╡реНрд╣реАрд▓ рдПрдирдХреЛрдбрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ imu рдЕрдВрд╢рд╛рдВрдХрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рд┐рдбрд╛рд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдФрд░ рдПрдирдХреЛрдбрд░ рдорд╛рди рд╕рд╣реА рд╣реИрдВ, рддреЛ рдУрдбреЛрдореЗрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдУрдбреЛрдореЗрдЯреНрд░реА рд╕рд╣реА рд╣реИ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреВрд░рд╕рдВрдЪрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрдмреЛрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд╡рд╛рд░реА рдХрд░рдиреЗ рдФрд░ рдУрдбреЛрдо рд╡рд┐рд╖рдп рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреГрд╖реНрда рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рд▓рд┐рдВрдХ ред

рдФрд░ rviz рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╢реЗрд▓ рдХреЛ рднреА рджреЗрдЦреЗрдВ: rviz рдореЗрдВ



рдПрдХ рд╕реЗрд▓ 1 m рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕ рдореАрдЯрд░ рдХреЛ рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдФрд░ рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рдкрд╛рд╕ рдХрд░реЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╛рддреНрд░рд╛ рдХреА рдЧрдИ рджреВрд░реА рдХреЛ рд╕рдВрдХреЗрддрдХ w рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:



рдпрд╣ 1 рдореАрдЯрд░ рддрдХ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд░реЛрдмреЛрдЯ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛрдг рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:



* Rviz рдФрд░ рдЬрд┐рдпреЛ рдореЗрдВ, рд░реЛрдмреЛрдЯ рдХреЛ рдПрдХ рд╣реА рдХреЛрдг рдкрд░ рдШреВрдордирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓рд┐рдбрд╛рд░ рд╕реЗ рдУрдбреЛрдореЗрдЯреНрд░реА рдХреЛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд▓рд┐рдВрдХред рд▓рд┐рдбрд╛рд░ рд╕реЗ рдирд┐рдХрдЯрддрдо рджреАрд╡рд╛рд░ рдХреА рджреВрд░реА рджреЛрдиреЛрдВ рдЬреАрд╡рд┐рдд рдФрд░ rviz рдореЗрдВ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред

TF


рдЖрд░рдУрдПрд╕ рдореЗрдВ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - tfред рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╣рд╕рдВрдмрдВрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рддрд╛рдХрд┐ рд╡рд╕реНрддреБрдПрдВ рд╣рд╡рд╛ рдореЗрдВ рди рд▓рдЯрдХреЗрдВ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, tf рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рднреА tf рдХрдиреЗрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддрдХ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд▓рд┐рдбрд╛рд░ рдХреИрд╕реЗ рд╕реНрдерд┐рдд рд╣реИред рд░реЛрдмреЛрдЯ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдмрд╛рдзрд╛ рд╕реАрдзреЗ рдЙрд╕рдХреЗ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЙрдарддреА рдереА, рд▓реЗрдХрд┐рди рд▓рд┐рдбрд╛рд░ рдХреЗ рд╕рд╛рдордиреЗ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА рдкрд░ рд░реЛрдмреЛрдЯ рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд▓реЛ рдЙрдкрдпреБрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ:

roscd linorobot/launch
nano bringup.launch

рдЖрдзрд╛рд░ рд╕реНрд╡рдпрдВ рдордВрдЬрд┐рд▓ рд╕реЗ 0.065 рдореАрдЯрд░ рдХреА рджреВрд░реА рдкрд░ рд╕реНрдерд┐рдд рд╣реИ:

<node pkg="tf_ros" type="static_transform_publisher" name="base_footprint_to_base_link" args="0 0 0.065 0 0 0  /base_footprint /base_link "/>

рд▓реЗрдЬрд╝рд░.рд▓рдВрдЪ рдореЗрдВ, рдЖрдкрдХреЛ рд▓рд┐рдбрд╛рд░ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд░реЛрдмреЛрдЯ рдмреЗрд╕ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

roscd linorobot/launch/include
nano laser.launch

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рд┐рдбрд╛рд░ рдХреЛ x рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: -0.08, y: 0.04 рдФрд░ рдмреЗрд╕ (z рдЕрдХреНрд╖) рдХреЗ рдКрдкрд░ "рдЙрдЧрддрд╛ рд╣реИ": 0.08m:

<node pkg="tf2_ros" type="static_transform_publisher" name="base_link_to_laser"
args="-0.08 0.04 0.08 0 0 0  /base_link /laser "/>

Rviz рдореЗрдВ, рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЬрдмрдХрд┐ рд▓рд┐рдбрд╛рд░ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдЕрдВрдХ рджреЗ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ 4k рджреЗрддрд╛ рд╣реИ), рдЗрд╕рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА:

cd linorobot/launch/include/lidar
nano rplidar.launch

рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ:

<param name="scan_mode"  type="string" value="Boost"/>

рдФрд░ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ

<param name="angle_compensate"    type="bool"   value="false"/>

рдЕрдм 8k рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╣реИ:



рд░реЛрдмреЛрдЯ рдкрд░ рд▓рд┐рдбрд╛рд░ рдХреА рднреМрддрд┐рдХ рд╕реНрдерд┐рддрд┐ рднреА рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИ:



2d рдХрдорд░реЗ рдХрд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдирд╛


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рджреЛ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдПрдХ рдХрдорд░реЗ рдХрд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:

roslaunch linorobot bringup.launch
roslaunch linorobot slam.launch

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реНрд▓реИрдо, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬрдм рд▓рд┐рдбрд╛рд░ рдореЛрдб 8k рд╣реИ: рддреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ,



рдЬрдмрдХрд┐ 4k рдореЛрдб рдореЗрдВ, рдХрд╛рд░реНрдб рдмрд╣реБрдд рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рдмрд╣реБрдд рд╢реЛрд░ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдПрдХ рдФрд░ рд╕реНрд▓реИрдо - рд╣реЗрдХреНрдЯрд░-рд╕реНрд▓реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рд╕рдВрдХреЗрдд рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп roslaunch linorobot slam.launch, рдЪрд▓рд╛рдПрдБ roslaunch my_hector_mapping my_launch.launch

рдореИрдкреНрд╕ рдХреНрд▓реАрдирд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╡реЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдПрдбрд┐рдЯрд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИрдВ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд▓рд┐рдбрд╛рд░ рджрд░реНрдкрдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рджрд░реНрдкрдг рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВред :



рдХрдорд░реЗ рдХрд╛ рдирдХреНрд╢рд╛ рдмрдЪрд╛рдирд╛ рди рднреВрд▓реЗрдВ:

rosrun map_server map_saver -f my-map

* рдореИрдкреНрд╕ рдПрдХ рд╕реБрдЦрдж рдЧреЛрдзреВрд▓рд┐ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдмрдЬрдЯ рд▓рд┐рдбрд╛рд░ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдЪреЛрдбрд╝ рд▓реЗрдЧрд╛ред

рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИред

All Articles