Hola a todos, con el propósito de transferir experiencia, así como con el fin de estructurar y consolidar toda la cantidad de información que hubo que trasladar, estoy escribiendo este artículo. No pretendo presentar un manual para crear nuestra solución ( ya que el código fuente ya está completamente abierto). Quiero decir que el interés principal es delinear los principios básicos de la construcción de tales sistemas, delinear las fuentes utilizadas, de contar a qué nos rendimos y a qué llegamos. Intentaré mantener un equilibrio entre la cantidad de información y la legibilidad.
Si no sabes qué es ROS, te aconsejo que estudies el recurso Voltbto.com , por ejemplo, aquí hay un artículo sobre cómo trabajar con servicios en ROS .
A finales de marzo de 2020, Starline celebró un hackathon por segunda vez en su historia .
En comparación con el hackathon anterior ( youtube ), celebrado en octubre de 2018, esta vez el nivel de organización ha aumentado considerablemente: había regulaciones claras, un sistema de evaluación, igualdad de condiciones para todos los participantes y una tarea de calificación compleja, como debería ser.
En esta ocasión, los organizadores pusieron un listón muy alto en cuanto a la complejidad de la competición: tanto que de las 25 candidaturas presentadas, solo 5. Para resolver la tarea clasificatoria, era necesario configurar el robot en el simulador gazebo
para que se desplazara de un punto a otro. Más sobre esto aquí .
: , . , ( ):
, [] .
. , , , . : , ( ).
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
–LaserScan
PointCloud
costmap_2d::InflationLayer
–costmap
costmap_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_converter
costmap
. github, DBSCAN.
TurtleBot . .
RGBD- ( ). , .
SLAM , , , .
, RGBD- .
. , , teb_local_planner
. , . , , . 2 , . , , . - , , .
, , , .
. Starline, : , , , , .
- :
developer.starline.ru – API Starline.
El portal RoboFinist , por cierto, su principal desarrollador es solo una persona: Kirill Gorev. Y en este portal puedes encontrar más fotos de este maravilloso evento.
Canal de YouTube de Nikolay Dem . Kohl es un ingeniero en robótica genial y de vez en cuando aparecen videos interesantes en su YouTube.
Eso es todo, ¡muchas gracias por leer!