{"id":18620,"date":"2018-11-09T10:09:26","date_gmt":"2018-11-09T02:09:26","guid":{"rendered":"\/blog\/?p=18620"},"modified":"2019-01-21T14:27:55","modified_gmt":"2019-01-21T06:27:55","slug":"rplidar-and-ros-the-best-way-to-learn-robot-and-slam","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/","title":{"rendered":"RPLIDAR and ROS programming- The Best Way to Build Robot"},"content":{"rendered":"<p class=\"p1\" style=\"text-align: left;\"><span style=\"color: #000000;\">As <a href=\"https:\/\/www.seeedstudio.com\/s\/lidar.html\">LIDAR<\/a> becomes more and more popular in different areas, including self-driving cars, robotics research, obstacle detection &amp; avoidance, environment scanning and 3D modeling etc., we\u2019ve also got many inquiries about <a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR<\/a> recently. Why it&#8217;s a good product for research in <a href=\"https:\/\/ieeexplore.ieee.org\/document\/8215333\/\">SLAM<\/a> (not the NBA news magazine of course!)? What software is recommended for <a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR<\/a> and robotic applications?<\/span><\/p>\n<p class=\"p1\" style=\"text-align: left;\"><span style=\"color: #000000;\">Here we go! We\u2019ve prepared a guide with details about how to quickly learn software and hardware for <a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR<\/a> and apply SLAM in robotic research!<\/span><\/p>\n<h2><span style=\"color: #000000;\"><strong>A Brief Background of ROS and <\/strong><a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/lidar.html\"><strong>Lidar<\/strong><\/a><\/span><\/h2>\n<p><span style=\"color: #000000;\">As a robot software platform, <a href=\"http:\/\/www.ros.org\/\">ROS<\/a> provides similar operating system functions for heterogeneous computer clusters and plays an important role in research of robot walking. However, as the core sensor of robot positioning navigation, Lidar plays an important role in robot autonomous walking and positioning navigation. <a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR <\/a>is the ideal cost-effective sensor for robots and hardware researchers and hobbyists. The combination of the ROS and <a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR<\/a> will definitely make the robot autonomous positioning navigation better.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.youtube.com\/watch?v=9U6GDonGFHw&amp;t=194s\">The tutorial for ROS<\/a> well explains ROS as the open-source software library, it is greatly used by robotics researchers and companies.<\/span><\/p>\n<h1><span style=\"color: #000000;\"><strong>1.What is RPLIDAR? <\/strong><\/span><\/h1>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/s\/rplidar.html\">RPLIDAR<\/a> is a low-cost LIDAR sensor suitable for indoor robotic SLAM application. The produced 2D point cloud data can be used in mapping, localization and object\/environment modeling. RPLIDAR will be a great tool using in the research of SLAM (Simultaneous localization and mapping)<\/span><\/p>\n<p><span style=\"color: #000000;\">Right now, there are three kinds of RPLIDAR for different features.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/RPLiDAR-A1M8-360-Degree-Laser-Scanner-Kit-12M-Range-p-3072.html\">RPLIDAR A1M8<\/a> is based on laser triangulation ranging principle and uses high-speed vision acquisition and processing hardware developed by <a href=\"https:\/\/www.slamtec.com\/en\">SLAMTEC<\/a>. The system measures distance data in more than 8000 times per second.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/RPLiDAR-A2M6-360-Degree-Laser-Scanner-Kit-18M-Range-p-3073.html\">RPLIDAR A2M5\/A2M6<\/a> is the enhanced version of 2D laser range scanner(LIDAR). The system can perform 2D 360-degree scan within 18-meter range. The generated 2D point cloud data can be used in mapping, localization and object\/environment modeling.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.seeedstudio.com\/RPLiDAR-A3M1-360-Degree-Laser-Scanner-Kit-25M-Range-p-3080.html\">RPLIDAR A3<\/a> can take up to 16000 samples of laser ranging per second with high rotation speed. And equipped with SLAMTEC patented OPTMAG technology, it breakouts the life limitation of traditional LIDAR system so as to work stably for a long time.<\/span><\/p>\n<h2><span style=\"color: #000000;\">RPLIDAR Application Scenarios<\/span><\/h2>\n<figure id=\"attachment_18629\" aria-describedby=\"caption-attachment-18629\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-18629 size-medium\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.54-300x206.png\" alt=\"Obstacle detection and avoidance\" width=\"300\" height=\"206\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.54-300x206.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.54.png 454w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-18629\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Obstacle detection and avoidance<\/span><\/figcaption><\/figure>\n<figure id=\"attachment_18630\" aria-describedby=\"caption-attachment-18630\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img decoding=\"async\" class=\"wp-image-18630 size-medium\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.49-300x205.png\" alt=\"Environment scanning and 3D modeling\" width=\"300\" height=\"205\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.49-300x205.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.49.png 448w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-18630\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Environment scanning and 3D modeling<\/span><\/figcaption><\/figure>\n<figure id=\"attachment_18628\" aria-describedby=\"caption-attachment-18628\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img decoding=\"async\" class=\"wp-image-18628 size-medium\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.58-300x205.png\" alt=\"Multi-touch technology and man-machine interaction\" width=\"300\" height=\"205\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.58-300x205.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.58.png 454w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-18628\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Multi-touch technology and man-machine interaction<\/span><\/figcaption><\/figure>\n<figure id=\"attachment_18631\" aria-describedby=\"caption-attachment-18631\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-18631 size-medium\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.43-300x204.png\" alt=\"Robot simultaneous localization and mapping\" width=\"300\" height=\"204\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.43-300x204.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0b\u53484.11.43.png 448w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-18631\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Robot simultaneous localization and mapping<\/span><\/figcaption><\/figure>\n<h2><\/h2>\n<h2><\/h2>\n<h2><\/h2>\n<h2><\/h2>\n<h2 style=\"text-align: right;\"><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: left;\"><span style=\"color: #000000;\">2. Overview of ROS Package for RPLIDAR<\/span><\/h2>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/wiki.ros.org\/rplidar\">The rplidar_ros package<\/a><\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\">This package provides basic device handling for 2D Laser Scanner RPLIDAR A1\/A2 and A3.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\">Through the <a style=\"color: #000000;\" href=\"http:\/\/wiki.ros.org\/rplidar\">wiki<\/a>, you can learn about the description and usage flow of the corresponding RPLIDAR products, interfaces and parameters, as well as the latest version information of the current ROS support.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\">In any package of ROS ecosystem, you only need to find the corresponding wiki and <a style=\"color: #000000;\" href=\"https:\/\/github.com\/robopeak\/rplidar_ros\/\">github page<\/a>, you can clearly understand its data interface and internal implementation.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/github.com\/robopeak\/rplidar_ros\/\">The github of rplidar_ros<\/a> mainly contains the source code of the package and the version management and developer problem dialogue of the package.<\/span><\/p>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18646\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u53489.53.15-300x206.png\" alt=\"The github of rplidar_ros\" width=\"628\" height=\"431\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u53489.53.15-300x206.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u53489.53.15-768x528.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u53489.53.15-1030x708.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u53489.53.15.png 1618w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/span><\/p>\n<p><span style=\"color: #000000;\">Any problem with the package, developers could ask questions and search for solution in the file of <a style=\"color: #000000;\" href=\"https:\/\/github.com\/Slamtec\/rplidar_sdk\/issues\">Issue<\/a>.<\/span><\/p>\n<p><span style=\"color: #000000;\">It is welcomed to send Pull Request to improve the original code to enhance the function!<\/span><\/p>\n<h2><span style=\"color: #000000;\">3.\u00a0<strong>ROS Nodes<\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">Basically there are one topic that publishes scan topic from the laser and two services in the communication interface: start_motor and stop_motor, calling the service for starting\/stopping the motor of RPLIDAR. The ROS package needs to call the data of topic of \/scan to complete the mapping or obstacle avoidance.\u00a0<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/github.com\/Slamtec\/rplidar_ros\/tree\/master\/launch\">Rplidar.launch<\/a> given by rplidar_ros, the actual usage depends on the specific parameters of the port number (serial_port), coordinate system name (frame_id), forward and reverse (inverted)<\/span><\/p>\n<h2><span style=\"color: #000000;\"><strong>4. RPLIDAR Frame<\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">RPLIDAR rotates in clockwise direction. The SDK data output is left-handed data with distance and angle information, and the rplidar_ros output has converted it to the right-handed coordinate system output.<\/span><\/p>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18645\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.47-300x207.png\" alt=\"RPLIDAR frame\" width=\"475\" height=\"328\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.47-300x207.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.47-768x529.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.47-1030x710.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.47.png 1100w\" sizes=\"(max-width: 475px) 100vw, 475px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18644\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.53-300x203.png\" alt=\"RPLIDAR frame\" width=\"478\" height=\"323\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.53-300x203.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.53-768x521.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.53-1030x699.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/\u5c4f\u5e55\u5feb\u7167-2018-11-08-\u4e0a\u534810.19.53.png 1144w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #000000;\"><strong>After all document, build a robot system with RPLIDAR <\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">After getting the instructions for the rplidar_ros package, let\u2019s build the robot system to better operate robot autonomous positioning navigation<\/span><\/p>\n<p><span style=\"color: #000000;\">If I want to use LIDAR on a robot body, how to set it up?<\/span><\/p>\n<p><span style=\"color: #000000;\">In fact, in ROS, you can use the existing package to build the system to achieve basic functions. You only need to pay attention to whether the topic\/service and TF frame are coordinated. TF is the main concept in ROS, which maintains the pose transformation relationship between the coordinate systems of each data. To build a robot ROS system with RPLIDAR,<\/span><\/p>\n<p><span style=\"color: #000000;\">You need to unify the transformation relationship between the RPLIDAR coordinate system and the base coordinate system of the robot body based on the actual installation information. There are three main ways to implement this transformation:<\/span><\/p>\n<h2><span style=\"color: #000000;\"><strong>4.1\u00a0<\/strong><strong>Add rplidar to the URDF file<\/strong><\/span><\/h2>\n<p><span style=\"color: #000000;\">In the URDF of the known robot model, add elements of the joint for LIDAR and link describing the robot body. The picture below shows that add the RPLIDAR model in the turtlebot simulation model.<\/span><\/p>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18641\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/urdf-rplidar-300x278.jpg\" alt=\"Add rplidar to the URDF file\" width=\"723\" height=\"669\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/urdf-rplidar-300x278.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/urdf-rplidar-768x712.jpg 768w\" sizes=\"(max-width: 723px) 100vw, 723px\" \/><\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>4.2 TF static_transform_publisher:<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\">Add the static TF transformation information to the launch file of the robot startup.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">&lt;node name=&#8221;base2laser&#8221; pkg=&#8221;tf&#8221;<\/span><\/p>\n<p><span style=\"color: #000000;\">Type=&#8221;static_transform_publisher&#8221; args=&#8221;0.07 0 0 0 0 0 1<\/span><\/p>\n<p><span style=\"color: #000000;\">\/base_link \/laser 50&#8243;\/&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #000000;\"><strong>4.3 View the TF tree by rqt\/tf_echo:<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18649\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/v2-5a83ca0c6c48abee3890c2bf84029753_hd-215x300.jpg\" alt=\"TF tree by rqt\/tf_echo:\" width=\"350\" height=\"489\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/v2-5a83ca0c6c48abee3890c2bf84029753_hd-215x300.jpg 215w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/v2-5a83ca0c6c48abee3890c2bf84029753_hd.jpg 310w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/span><\/p>\n<h2><span style=\"color: #000000;\">5.<strong>ROS package for current open source 2D Lidar<\/strong><\/span><\/h2>\n<h3><span style=\"color: #000000;\">5.1 The current open source 2D laser radar slam ROS package mainly includes:<\/span><\/h3>\n<p><span style=\"color: #000000;\">Gmapping<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\">ros-perception<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\/slam_gmapping\">slam_gmapping<\/a>\u00a0<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\">ros-perception<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\/openslam_gmapping\">openslam_gmapping<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Hector<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/tu-darmstadt-ros-pkg\">tu-darmstadt-ros-pkg<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/tu-darmstadt-ros-pkg\/hector_slam\">hector_slam<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">karto<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\">ros-perception<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\/slam_karto\">slam_karto<\/a>\u00a0<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\">ros-perception<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/ros-perception\/open_karto\">open_karto<\/a>\u00a0<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/skasperski\">skasperski<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/skasperski\/navigation_2d\">navigation_2d<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">cartographer<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/googlecartographer\">googlecartographer<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/googlecartographer\/cartographer\">cartographer<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/googlecartographer\">googlecartographer<\/a>\/<a style=\"color: #000000;\" href=\"http:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/googlecartographer\/cartographer_ros\">cartographer_ros<\/a><\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>5.2 TF Tree<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18656\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/TF-TREE-178x300.png\" alt=\"TF TREE\" width=\"391\" height=\"660\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/TF-TREE-178x300.png 178w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/TF-TREE.png 302w\" sizes=\"(max-width: 391px) 100vw, 391px\" \/><\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>5.3 rqt_graph<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18640\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/rqt_graph-300x250.png\" alt=\"rqt_graph\" width=\"551\" height=\"459\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rqt_graph-300x250.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rqt_graph.png 600w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>5.4 SLAM <\/strong><strong>Graph Construction<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\">Setting up the system depends on unifying the interface names of topic\/service and tf. How the system will run depends on the algorithm implementation inside.<\/span><\/p>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18659\" src=\"https:\/\/blog.seeedstudio.com\/wp-content\/uploads\/2018\/11\/slam-graph-construction-300x210.jpg\" alt=\"SLAM Mapping\" width=\"508\" height=\"355\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/slam-graph-construction-300x210.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/slam-graph-construction.jpg 720w\" sizes=\"(max-width: 508px) 100vw, 508px\" \/><\/span><\/p>\n<p class=\"p1\"><span style=\"color: #000000;\">I know this is not a quick read (thank you for your patience &amp; precious time!), and hopefully it is informative for you, in providing both hardware and software knowledge.<\/span><\/p>\n<p class=\"p1\"><span style=\"color: #000000;\">If you have any questions, suggestions or complaints, feel free to comment on this blog! <\/span><br \/>\n<span style=\"color: #000000;\">Stay tuned for our next sharing about RPLIDAR and SLAM \ud83d\ude42<\/span><\/p>\n<p><span style=\"color: #000000;\">Related Links:<\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/www.slamtec.com\/en\/Lidar\">SLAMTEC<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/www.seeedstudio.com\/s\/rplidar.html\">More RPLIDAR product information\u00a0<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"http:\/\/wiki.ros.org\/rplidar\">The rplidar_ros package<\/a><\/span><\/p>\n<p><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"https:\/\/github.com\/robopeak\/rplidar_ros\">The github of rplidar_ros<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As LIDAR becomes more and more popular in different areas, including self-driving cars, robotics research,<\/p>\n","protected":false},"author":200,"featured_media":18721,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[1088,330,1086,1084,1083,1085],"class_list":["post-18620","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-360-degree-laser-scanner","tag-lidar","tag-robotics","tag-ros","tag-rplidar","tag-slam"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"As LIDAR becomes more and more popular in different areas, including self-driving cars, robotics research,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-09T02:09:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-21T06:27:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"481\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Elaine Wu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elaine Wu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/\",\"name\":\"RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg\",\"datePublished\":\"2018-11-09T02:09:26+00:00\",\"dateModified\":\"2019-01-21T06:27:55+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg\",\"width\":720,\"height\":481},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RPLIDAR and ROS programming- The Best Way to Build Robot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11\",\"name\":\"Elaine Wu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g\",\"caption\":\"Elaine Wu\"},\"description\":\"Head of AI Robotics @seeed Every day holds new magic \u2728 on ne sait jamais\u2601\ufe0f\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/elaine1994\/\"],\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/","og_locale":"en_US","og_type":"article","og_title":"RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio","og_description":"As LIDAR becomes more and more popular in different areas, including self-driving cars, robotics research,","og_url":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2018-11-09T02:09:26+00:00","article_modified_time":"2019-01-21T06:27:55+00:00","og_image":[{"width":720,"height":481,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg","type":"image\/jpeg"}],"author":"Elaine Wu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elaine Wu","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/","url":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/","name":"RPLIDAR and ROS programming- The Best Way to Build Robot - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg","datePublished":"2018-11-09T02:09:26+00:00","dateModified":"2019-01-21T06:27:55+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg","width":720,"height":481},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2018\/11\/09\/rplidar-and-ros-the-best-way-to-learn-robot-and-slam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"RPLIDAR and ROS programming- The Best Way to Build Robot"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11","name":"Elaine Wu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g","caption":"Elaine Wu"},"description":"Head of AI Robotics @seeed Every day holds new magic \u2728 on ne sait jamais\u2601\ufe0f","sameAs":["https:\/\/www.linkedin.com\/in\/elaine1994\/"],"url":"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/"}]}},"modified_by":"Elaine Wu","views":45460,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2--80x80.jpg",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2--300x200.jpg",300,200,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",640,428,false],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",640,428,false],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",32,21,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",720,481,false],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",569,380,false],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2018\/11\/rplidar-A2-.jpg",675,450,false]},"author_info":{"display_name":"Elaine Wu","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"1","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/18620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/200"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=18620"}],"version-history":[{"count":60,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/18620\/revisions"}],"predecessor-version":[{"id":20073,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/18620\/revisions\/20073"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/18721"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=18620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=18620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=18620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}