Olá a todos, com o propósito de transferir experiência, bem como com o objetivo de estruturar e consolidar toda a quantidade de informação que teve que ser escavada, estou escrevendo este artigo. Não me proponho a apresentar um manual para a criação da nossa solução ( visto que o código fonte já está totalmente aberto). Quero dizer que o principal interesse é delinear os princípios básicos da construção de tais sistemas, delinear as fontes utilizadas, falar do que desistimos e do que viemos. Tentarei manter um equilíbrio entre a quantidade de informações e a legibilidade.
Se você não sabe o que é ROS, aconselho que estude o recurso Voltbto.com , por exemplo, aqui está um artigo sobre como trabalhar com serviços em ROS .
No final de março de 2020, a Starline realizou um hackathon pela segunda vez em sua história .

Em comparação com o hackathon anterior ( youtube ), realizado em outubro de 2018, desta vez o nível de organização aumentou muito: havia regulamentações claras, um sistema de avaliação, igualdade de condições para todos os participantes e uma tarefa de qualificação complexa - do jeito que deveria ser.
: , . , ( ):
, [] .
. , , , . : , ( ).
Turtlebot E2 :
Kobuki
RGBD- Orbbec Astra
Rplidar A2
Intel NUC [BOXNUC7I7BNH]
Logitech HD Pro C920
, , . , , .
4 , , .
(7x7 ): , . , - , . .

( ):
“”
“ ”
, .
( ) . ́ .
:
“”
, ROS
, . TurtleBot3 robotis.com, autorace: turtlebot3autorace, https://github.com/ROBOTIS-GIT/turtlebot3autorace2020. :
-.
State Machine
: - : GOTO_0, GOTO_1. 0 1 .
, 0, , ; , 0, , , , . , , , .
( ) . , .
GOTO_0, GOTO_1 - , “”. , .
INIT IDLE. INIT , IDLE. IDLE GOTO_0 GOTO_1. state-machine , - Karn Saheb. StateMachine S ObjectStorage. setattr(Class, Attr, Value) Class.Attr = Value.
, lane-detection:
birdview dynamic_reconfigure.
color-segmentation. dheera/ros-semantic-segmentation. .
, , , - . . .
. gmapping . , .
- . , , R1 , , R2.
, . ROS find_object_2d: , /objects objectsStamped. , , , opencv. detect_objects_node.py. CarND-Capstone .

, /objects, .
detected_stop, , .
dynamic_reconfigure, ( ) rqt. :
. find_object_2d . . - , ( ). - . .
: HSV, , ( Hough Circles) . - , .
- , , ( ). , , , , .
, Astra . Logitech HD Pro C920 - – . - .
Navigation Stack
ROS Navigation Stack ( PhD Paul‑Edouard Sarlin) .
Map prior:
Kinect: ,
Odometry:
Map updater:
Global planner: ,
Local planner:
- navigation, move_base( ) : . – , , , . . , , .
Navigation Stack . ROS Navigation Stack.
amcl. , , .
teb_local_planner (github), TU Dortmund University. c :
- , , .
:
:
costmap_2d::StaticLayer– ,costmap_2d::ObstacleLayer–LaserScanPointCloudcostmap_2d::InflationLayer–costmapcostmap_2d::VoxelLayer– 3D
, . costmap_2d::StaticLayer, , costmap .
costmap_2d . (1, 2, 3), (staticmap, obstacles), flat layered.
Sr4l/virtualobstacles, Costmap Plugin costmap_2d::MovingObjects. , Lars Kistner , . - . .
() Maps Merger.
:
/maps/map_mb–/maps/map_amcl+ ( )/maps/crossroads–/maps/start_wall–/maps/map_merged-/maps/map_mb,/maps/crossroads,/maps/start_wall( )
:
rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped '{header: {stamp: now, frame_id: "map"}, pose: {position: {x: 0.674, y: 0.119, z: 0.0}, orientation: {w: 1.0}}}'
# PS ( )
Layered Costmaps for Context-Sensitive Navigation David V. Lu, Dave Hershberger, and William D. Smart
Fast Gaussian Process Occupancy Maps. In 2018 15th International Conference on Control, Automation, Robotics and Vision (ICARCV) (pp. 1502–1507). IEEE. Yuan, Y., Kuang, H. & Schwertfeger, S. ( gpmaps.py)
TU Dortmund University
costmap_convertercostmap. github, DBSCAN.
TurtleBot . .
RGBD- ( ). , .
SLAM , , , .
, RGBD- .
. , , teb_local_planner . , . , , . 2 , . , , . - , , .
, , , .
. Starline, : , , , , .

- :
developer.starline.ru – API Starline.
Portal RoboFinist , aliás, seu principal desenvolvedor é apenas uma pessoa - Kirill Gorev. E neste portal você encontra mais fotos desse maravilhoso evento.
Canal do YouTube de Nikolay Dem . Kolya é um engenheiro robótico duro e vídeos interessantes aparecem periodicamente em seu YouTube.
Isso é tudo, muito obrigado pela leitura!