Hello everyone, for the purpose of transferring experience, as well as in order to structure and consolidate the entire amount of information that had to be shoveled, I am writing this article. I do not set myself the goal of presenting a manual for creating our solution ( since the source code is already completely open). I mean that the main interest is to outline the basic principles of building such systems, to outline the sources used, to tell about what we gave up and what we came to. I will try to keep a balance between the amount of information and readability.
If you do not know what ROS is, I advise you to study the resource Voltbto.com , for example, here is an article on working with services in ROS .
At the end of March 2020, Starline held a hackathon for the second time in its history .
Compared to the previous hackathon ( youtube ), held in October 2018, this time the level of organization has greatly increased: there were clear regulations, an assessment system, equal conditions for all participants and a complex qualification assignment - the way it should be.
This time, the organizers set a high bar in terms of the complexity of the competition: so much so that out of 25 applications submitted, only 5. To solve the qualifying task, it was necessary to set up the robot in the simulator gazebo
to travel from one point to another. More on this here .
: , . , ( ):
, [] .
. , , , . : , ( ).
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.
The RoboFinist portal , by the way, its main developer is only one person - Kirill Gorev. And on this portal you can find more photos from this wonderful event.
YouTube channel of Nikolay Dem . Kohl is a cool robotics engineer and interesting videos appear on his YouTube from time to time.
That's all, thank you very much for reading!