{"id":338555,"date":"2022-09-20T21:00:32","date_gmt":"2022-09-20T21:00:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=338555"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=338555","title":{"rendered":"<span>ORB_SLAM3 \u043d\u0430 raspberry pi 4<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6329b84c4c0070cee05ceae8\" data-style=\"\" id=\"6329b84c4c0070cee05ceae8\" width=\"\"><\/div>\n<\/div>\n<p>  \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u044e\u0430\u043d\u0441\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 ORB_SLAM3 \u043d\u0430 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u043e\u043c \u043f\u043a \u2014 raspberry pi 4 c \u041e\u0421 Raspbian buster,<br \/>  \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 raspberry, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e ROS noetic \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0435\u0435 \u0437\u0432\u0435\u043d\u043e \u043c\u0435\u0436\u0434\u0443 imu, csi \u043a\u0430\u043c\u0435\u0440\u043e\u0439 raspberry pi \u0438 ORB_SLAM3. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u043d\u0430\u0443\u0447\u043d\u043e\u0441\u0442\u044c, \u0438\u0437\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043c\u043d\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u0430 \u0441 \u043e\u043f\u043e\u0440\u043e\u0439 \u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0431\u0430\u0437\u0443.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435.<\/h3>\n<p>  \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430: \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0432 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438, \u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u0442.\u043f., \u0434\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u00ab\u043f\u0440\u043e\u0439\u0442\u0438 \u0438 \u043d\u0430\u0437\u0430\u0434 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f\u00bb. \u0421\u0432\u0435\u0440\u0445\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0432\u0430\u0436\u043d\u0430, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430. \u041f\u043e\u0434 \u00ab\u043f\u0440\u043e\u0439\u0442\u0438\u00bb \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u043b\u0430\u0431\u043e\u0432\u0438\u0434\u044f\u0449\u0435\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0441 \u043d\u0435\u043a\u0438\u043c \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u043c \u0432 \u0440\u0443\u043a\u0435.<br \/>  \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u043d\u0430 \u0443\u043c \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043b\u0438\u0434\u0430\u0440\u044b \u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0433\u043b\u0443\u0431\u0438\u043d\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u044b \u043a\u0430\u043a \u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\/\u0438\u043b\u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u0435. <br \/>  \u0411\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 <a href=\"https:\/\/github.com\/UZ-SLAMLab\/ORB_SLAM3\" rel=\"nofollow noopener noreferrer\">ORB_SLAM<\/a>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u00ab\u043f\u043e\u0441\u043f\u0435\u043b\u0430\u00bb 3-\u044f \u0432\u0435\u0440\u0441\u0438\u044f (\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 2021\u0433.).<br \/>  \u0422\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u043d\u0435\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 ORB_SLAM2, \u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043d\u0430 \u0441\u043b\u0430\u0431\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 (raspberry pi3), \u0442\u043e \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430 raspberry pi4 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 ORB_SLAM3 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0432\u0435\u0441\u0442\u0438\u0441\u044c. <br \/>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<br \/>  \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u2014 <\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c ROS noetic.<\/h3>\n<p>  ROS \u2014 robot operation system \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043e\u0442 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430\/\u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430, \u043a\u0430\u043c\u0435\u0440\u044b raspberry pi \u0438 ORB_SLAM.<br \/>  \u041a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ROS \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a, \u0441\u043b\u0435\u0434\u0443\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ROS \u043d\u0430 raspbian buster \u2014 <a href=\"https:\/\/varhowto.com\/install-ros-noetic-raspberry-pi-4\/\" rel=\"nofollow noopener noreferrer\">\u0437\u0434\u0435\u0441\u044c<\/a>,<br \/>  \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435.<\/p>\n<p>  \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f, \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c &#171;*&#187;.<br \/>  ROS \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u00ab\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e\u00bb \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u043c. \u0422\u0430\u043a \u0434\u043b\u044f raspbian buster \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u2014 ROS noetic.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 ROS \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">sudo sh -c 'echo \"deb http:\/\/packages.ros.org\/ros\/ubuntu buster main\" > \/etc\/apt\/sources.list.d\/ros-noetic.list' sudo apt-key adv --keyserver 'hkp:\/\/keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake sudo rosdep init rosdep update mkdir ~\/ros_catkin_ws &amp;&amp; cd ~\/ros_catkin_ws sudo apt install -y python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential cmake rosinstall_generator desktop --rosdistro noetic --deps --wet-only --tar > noetic-ros_comm-wet.rosinstall *rosinstall_generator ros_comm --rosdistro noetic --deps --wet-only --tar > noetic-ros_comm-wet.rosinstall wstool init src noetic-ros_comm-wet.rosinstall rosdep install -y --from-paths src --ignore-src --rosdistro noetic -r --os=debian:buster sudo src\/catkin\/bin\/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space \/opt\/ros\/noetic -j1 -DPYTHON_EXECUTABLE=\/usr\/bin\/python3  check: source \/opt\/ros\/noetic\/setup.bash roscd roscore<\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  *\u043a\u043e\u043c\u0430\u043d\u0434\u0430 <\/p>\n<pre><code class=\"python\">rosinstall_generator ros_comm --rosdistro noetic --deps --wet-only --tar > noetic-ros_comm-wet.rosinstall<\/code><\/pre>\n<p> \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e (\u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443) \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430.<br \/>  **swap file \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 raspberry pi c 8 \u0413\u0431 RAM.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b ROS:  <\/p>\n<pre><code class=\"python\">cd ~ mkdir -p ~\/catkin_ws\/src cd ~\/catkin_ws\/ catkin_make source devel\/setup.bash echo $ROS_PACKAGE_PATH *outputs: \/home\/pi\/catkin_ws\/src:\/opt\/ros\/noetic\/share<\/code><\/pre>\n<h3>Usb camera node.<\/h3>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u043d\u0430 raspberry \u0447\u0435\u0440\u0435\u0437 ROS, \u043d\u0443\u0436\u043d\u0430 \u0435\u0435(\u043a\u0430\u043c\u0435\u0440\u044b), \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f, \u043d\u043e\u0434\u0430 (node). \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0435\u0435, \u0445\u043e\u0442\u044f \u044d\u0442\u043e\u0442 \u0448\u0430\u0433 \u043c\u043e\u0436\u043d\u043e \u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u00ab\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e\u00bb \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f raspberry \u043d\u043e\u0434\u0443 \u2014 raspicam node. <br \/>  \u041e\u0434\u043d\u0430\u043a\u043e usb camera node \u0431\u043e\u043b\u0435\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430, \u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441 raspicam node, \u044d\u0442\u0430 \u0442\u043e\u0447\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.  <\/p>\n<pre><code class=\"python\">cd ~\/catkin_ws\/src git clone https:\/\/github.com\/bosch-ros-pkg\/usb_cam.git git clone https:\/\/github.com\/ros-perception\/image_common.git git clone https:\/\/github.com\/ros-perception\/image_pipeline.git git clone https:\/\/github.com\/ros-perception\/vision_opencv.git cd .. catkin_make<\/code><\/pre>\n<p>  \u041f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u043e\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<h3>Imu node (mpu650)<\/h3>\n<p>  \u042d\u0442\u043e\u0442 \u0448\u0430\u0433 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0434\u043b\u044f ORB_SLAM \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b (\u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e imu), \u043e\u0434\u043d\u0430\u043a\u043e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u043e\u043c\u0430\u0442\u044c \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u043c inertial.<br \/>  \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0434\u0430, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\/\u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440 GY-521 (mpu-650). \u0414\u0430\u043d\u043d\u044b\u0439 imu \u0434\u0435\u0448\u0435\u0432 \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d. \u0415\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u0438 \u043e\u043d \u0442\u0430\u043a \u0436\u0435 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445. \u042d\u0442\u043e\u0442 \u0444\u0430\u043a\u0442 \u043c\u044b \u0443\u0447\u0442\u0435\u043c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. \u0425\u043e\u0440\u043e\u0448 imu \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0438\u0445\u043e\u0442\u043b\u0438\u0432 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a raspberry pi gpio, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f 5V, \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 3.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b imu \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c   <\/p>\n<pre><code class=\"python\">sudo nano \/etc\/modules<\/code><\/pre>\n<p>  \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:  <\/p>\n<pre><code class=\"python\">i2c-bcm2708 i2c-dev<\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 imu:  <\/p>\n<pre><code class=\"python\">sudo apt-get install i2c-tools python-smbus i2cdetect -y -r 1 sudo i2cget -y 1 0x68 0x75<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u044d\u0442\u043e 0x68.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u044c\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 imu, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u2014 <a href=\"https:\/\/www.electronicwings.com\/raspberry-pi\/mpu6050-accelerometergyroscope-interfacing-with-raspberry-pi\" rel=\"nofollow noopener noreferrer\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  \u0421\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 imu:  <\/p>\n<pre><code class=\"python\">Error: Could not set address to 0x68: Device or resource busy<\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b, \u043d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 rtc \u0447\u0430\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0431\u044b\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0438 \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u00ab\u0437\u0430\u0431\u044b\u043b\u0438\u00bb. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0430\u0441\u044b, \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f:  <\/p>\n<pre><code class=\"python\">lsmod | grep rtc sudo rmmod rtc-ds1307<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, imu \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>  \u0423\u0431\u0435\u0434\u0438\u0432\u0448\u0438\u0441\u044c, \u0447\u0442\u043e imu \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0432 serial \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043f\u043e\u0440\u0442, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c ROS \u043d\u043e\u0434\u0443 \u0434\u043b\u044f \u043d\u0435\u0433\u043e.<br \/>  \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442 \u043f\u0430\u043a\u0435\u0442 \u043d\u043e\u0434\u044b mpu6050 \u2014 <a href=\"https:\/\/github.com\/chrisspen\/ros_mpu6050_node\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>. <br \/>  \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 readme \u043d\u0430 github.<br \/>  \u0414\u0430\u043b\u0435\u0435 \u043f\u043e readme \u0440\u0435\u043f\u043e.<br \/>  \u0417\u0434\u0435\u0441\u044c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439:  <\/p>\n<pre><code class=\"python\">sudo mkdir -p \/usr\/share\/arduino\/libraries cd \/usr\/share\/arduino\/libraries sudo git clone https:\/\/github.com\/chrisspen\/i2cdevlib.git<\/code><\/pre>\n<p>  *\u0412 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f patch, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043e\u0442\u0441\u044e\u0434\u0430 \u2014 <a href=\"https:\/\/disk.yandex.ru\/d\/VZJKP4KkvVlfkg\" rel=\"nofollow noopener noreferrer\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c<\/a>.  <\/p>\n<pre><code class=\"python\">cd \/tmp wget http:\/\/www.airspayce.com\/mikem\/bcm2835\/bcm2835-1.59.tar.gz cd bcm2835-1.59 tar zxvf bcm2835-1.59.tar.gz patch -lNp1 --input=bcm2835_rpi4.patch .\/configure make make check sudo make install<\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0441\u0430\u043c\u0443 \u043d\u043e\u0434\u0443 \u0434\u043b\u044f imu:  <\/p>\n<pre><code class=\"python\">cd ~\/catkin_ws source devel\/setup.bash cd ~\/catkin_ws\/src git clone https:\/\/github.com\/chrisspen\/ros_mpu6050_node cd .. catkin_make --pkg ros_mpu6050_node<\/code><\/pre>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0436\u0438\u0434\u0430\u0442\u044c:<br \/>   \u2014 <\/p>\n<pre><code class=\"python\">Initializing I2C... bcm2835_init: gpio mmap failed: Cannot allocate memory [mpu6050_node-2] process has died [pid 3427, exit code -11,<\/code><\/pre>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u044b <a href=\"https:\/\/groups.google.com\/g\/bcm2835\/c\/BwZXVsDRtwI\" rel=\"nofollow noopener noreferrer\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438 <a href=\"https:\/\/groups.google.com\/g\/bcm2835\/c\/ZQnleyhLWiE?pli=1\" rel=\"nofollow noopener noreferrer\">\u0437\u0434\u0435\u0441\u044c<\/a>.<br \/>   \u2014 <\/p>\n<pre><code class=\"python\">error FIFO overflow!<\/code><\/pre>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435: \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432 launch \u0444\u0430\u0439\u043b\u0435 imu:<\/p>\n<pre><code class=\"xml\">&lt;param name=\"frequency\" type=\"int\" value=\"10\" \/><\/code><\/pre>\n<p> \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 100 \u0438\u043b\u0438 200 \u0441 10.<\/p>\n<p>  <b>\u041d\u0430\u0434\u043e \u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c imu?<\/b><br \/>  \u0417\u0434\u0435\u0441\u044c \u043c\u043d\u0435\u043d\u0438\u044f \u0432 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f, \u043e\u0434\u043d\u0438 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0438\u0437 datasheet \u0438 \u0434\u043b\u044f \u0434\u0435\u0448\u0435\u0432\u044b\u0445 imu \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 10, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438. \u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043e\u0441\u0442\u0430\u0432\u043b\u044e <a href=\"https:\/\/github.com\/inaciose\/ros_mpu6050_calibration\" rel=\"nofollow noopener noreferrer\">\u0441\u0441\u044b\u043b\u043a\u0443<\/a>.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 ROS \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u0434\u044b imu \u0438 \u043a\u0430\u043c\u0435\u0440\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.<br \/>  \u041f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c 3\u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430, \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:  <\/p>\n<pre><code class=\"python\">bash -c \"source \/opt\/ros\/noetic\/setup.bash; roscore\"<\/code><\/pre>\n<p>  *\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u0430\u0441\u0442\u0435\u0440 \u043d\u043e\u0434\u0443  <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch usb_cam usb_cam-test.launch\"<\/code><\/pre>\n<p>  *\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u043e\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u044b  <\/p>\n<pre><code class=\"python\">sudo bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch ros_mpu6050_node mpu6050.launch\"<\/code><\/pre>\n<p>  *\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u043e\u0434\u0443 imu<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043e\u0442\u043b\u0438\u0447\u043d\u043e! \u0414\u0432\u0438\u0436\u0435\u043c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h3>Raspicam-node.<\/h3>\n<p>  Raspicam \u043d\u043e\u0434\u0430 \u043c\u0435\u043d\u0435\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 usb camera \u043d\u043e\u0434\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f (\u0430\u0432\u0442\u043e\u0440\u043e\u043c) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<br \/>  \u0412\u043e\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u043e\u0434\u0430\u043c\u0438-\u043f\u043e\u0431\u0440\u0430\u0442\u0438\u043c\u0430\u043c\u0438 \u043f\u0440\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4e\/ks\/vd\/4eksvduarqz3ylb7evwrghickzo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/4e\/ks\/vd\/4eksvduarqz3ylb7evwrghickzo.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/8i\/ll\/ur\/8illurbs69hzy05kcpaddg4rsxw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/8i\/ll\/ur\/8illurbs69hzy05kcpaddg4rsxw.png\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u043f\u043e \u2014 <a href=\"https:\/\/github.com\/UbiquityRobotics\/raspicam_node\" rel=\"nofollow noopener noreferrer\">github.com\/UbiquityRobotics\/raspicam_node<\/a>, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.  <\/p>\n<pre><code class=\"python\">sudo apt-get install libogg-dev libvorbis-dev libtheora-dev cd catkin_ws\/src git clone https:\/\/github.com\/ros-perception\/image_transport_plugins git clone https:\/\/github.com\/UbiquityRobotics\/raspicam_node.git cd .. catkin_make<\/code><\/pre>\n<p>  \u041d\u043e\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:  <\/p>\n<pre><code class=\"python\">roslaunch raspicam_node camerav2_1280x960.launch<\/code><\/pre>\n<p>  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442, \u0442.\u043a. \u0432 launch \u0444\u0430\u0439\u043b\u0435 \u043d\u0435\u0442 image_viewer, \u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0442\u043e\u043f\u0438\u043a <\/p>\n<pre><code class=\"python\">rostopic echo rostopic echo \/raspicam_node\/image_raw<\/code><\/pre>\n<p> \u043b\u0438\u0431\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 rviz, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0432\u0448\u0438\u0441\u044c \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u043e\u043f\u0438\u043a.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 ORB_SLAM3<\/h3>\n<p>.<br \/>  \u041f\u0430\u043a\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432 catkin_ws!<br \/>  \u0412 \u0446\u0435\u043b\u044f\u0445 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430 \u0438 \u0442\u0435\u0440\u043f\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0448\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0435\u0437\u0438\u0441\u043d\u043e:<br \/>  &#8212;libraries&#8212;  <\/p>\n<pre><code class=\"python\">sudo apt-get install libboost-all-dev libboost-dev libssl-dev libpython2.7-dev libeigen3-dev<\/code><\/pre>\n<p>  &#8212;Pangolin&#8212;  <\/p>\n<pre><code class=\"python\">cd ~ git clone https:\/\/github.com\/stevenlovegrove\/Pangolin cd Pangolin .\/scripts\/install_prerequisites.sh recommended cmake -B build -GNinja cmake --build build<\/code><\/pre>\n<p>  &#8212;opencv&#8212;<br \/>  *https:\/\/qengineering.eu\/install-opencv-4.5-on-raspberry-pi-4.html  <\/p>\n<pre><code class=\"python\">wget https:\/\/github.com\/Qengineering\/Install-OpenCV-Raspberry-Pi-32-bits\/raw\/main\/OpenCV-4-5-5.sh sudo chmod 755 .\/OpenCV-4-5-5.sh .\/OpenCV-4-5-5.sh<\/code><\/pre>\n<p>  &#8212;ORB_SLAM3&#8212;  <\/p>\n<pre><code class=\"python\">git clone https:\/\/github.com\/UZ-SLAMLab\/ORB_SLAM3.git ORB_SLAM3 cd ORB_SLAM3 chmod +x build.sh sed -i 's\/++11\/++14\/g' CMakeLists.txt .\/build.sh<\/code><\/pre>\n<p>  ORB_SLAM \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0449\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e ROS \u043d\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 (\u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 .\/build.sh):<br \/>  1. \u0418\u0437\u043c\u0435\u043d\u0438\u043c CMakeLists.txt:  <\/p>\n<pre><code class=\"python\">cd \/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3 sed -i 's\/++11\/++14\/g' CMakeLists.txt<\/code><\/pre>\n<p>  \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c AR nodes, \u0442.\u043a. \u043e\u043d\u0438 \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f:  <\/p>\n<pre><code class=\"python\"># Node for monocular camera (Augmented Reality Demo) #rosbuild_add_executable(MonoAR #src\/AR\/ros_mono_ar.cc #src\/AR\/ViewerAR.h #src\/AR\/ViewerAR.cc #) #target_link_libraries(MonoAR #${LIBS} #)<\/code><\/pre>\n<p>  \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0444\u0430\u0439\u043b\u0430 CMakeLists.txt \u0434\u043e\u0431\u0430\u0432\u0438\u043c:  <\/p>\n<pre><code class=\"python\">project(ORB_SLAM3)<\/code><\/pre>\n<p>  2. \u0418\u0437\u043c\u0435\u043d\u0438\u043c build_ros.sh (\/home\/pi\/ORB_SLAM3):  <\/p>\n<pre><code class=\"python\">echo \"Building ROS nodes\" cd Examples_old\/ROS\/ORB_SLAM3 mkdir build cd build cmake .. -DROS_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=\/usr\/bin\/python3 make -j<\/code><\/pre>\n<p>  3.\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:  <\/p>\n<pre><code class=\"python\">---Sophus--- cd ~ git clone https:\/\/github.com\/strasdat\/Sophus.git cd Sophus mkdir build &amp;&amp; cd build &amp;&amp; cmake .. &amp;&amp; sudo make install ---fmt--- sudo apt install libfmt-dev<\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0438\u043c Sophus \u0438\u0437 \/home\/pi\/ORB_SLAM3\/Thirdparty\/Sophus<br \/>  \u043d\u0430 Sophus \/home\/pi\/Sophus<br \/>  *\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0443, \u0447\u0442\u043e \u0441\u0431\u0438\u043b\u0434\u0438\u043b\u0438 \u0432\u044b\u0448\u0435.<br \/>  4. \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u043f\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442 \u00ab\u0441\u043b\u0443\u0448\u0430\u0442\u044c\u00bb ORB_SLAM3, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043c\u0435\u0440\u0430(raspicam_node) \u0438 ORB_SLAM \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u043e\u043f\u0438\u043a\u0435:  <\/p>\n<pre><code class=\"python\">nano \/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3\/src\/ros_mono.cc ros::Subscriber sub = nodeHandler.subscribe(\"\/camera\/image\", 1, &amp;ImageGrabber::GrabImage,&amp;igb);<\/code><\/pre>\n<p>  *\u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u043d\u043e \u043f\u043e\u0442\u043e\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c remap \u0432 launch \u0444\u0430\u0439\u043b\u0435 \u0441 \u043a\u0430\u043c\u0435\u0440\u043e\u0439. \u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0442\u043a\u0430.<br \/>  5. \u0421\u043e\u0431\u0440\u0430\u0442\u044c ORB_SLAM3 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"python\">export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:\/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3 source \/opt\/ros\/noetic\/setup.bash cd ~\/ORB_SLAM3 .\/build_ros.sh<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u043e\u0434\u044b, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043d\u043e\u0434\u0430\u043c\u0438 ORB_SLAM3, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u0436\u0435 4-\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430:  <\/p>\n<pre><code class=\"python\">bash -c \"source \/opt\/ros\/noetic\/setup.bash; roscore\"<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch usb_cam usb_cam-test.launch\"<\/code><\/pre>\n<p>  *\u043b\u0438\u0431\u043e <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch raspicam_node camerav2_1280x960.launch\"<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash;cd \/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3; .\/Mono \/home\/pi\/ORB_SLAM3\/Vocabulary\/ORBvoc.txt \/home\/pi\/ORB_SLAM3\/Examples\/Monocular\/TUM1.yaml\"<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"python\">sudo bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch ros_mpu6050_node mpu6050.launch\"<\/code><\/pre>\n<h3>\u0421\u0442\u0440\u043e\u0438\u043c \u043a\u0430\u0440\u0442\u0443 \u0441 ORB_SLAM3.<\/h3>\n<p>  ORB_SLAM \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u0438 \u043a \u043d\u0438\u043c \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u043a \u043a\u0430\u0440\u0442\u0430\u043c, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043b\u0438\u0434\u0430\u0440\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u044b\u043c \u00ab\u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u00bb \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u043c. <br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/9n\/jq\/bh\/9njqbhbhx8i2h8fgconc8saj3u0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/9n\/jq\/bh\/9njqbhbhx8i2h8fgconc8saj3u0.jpeg\" data-blurred=\"true\"\/><br \/>  \u041d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0432\u0438\u0434\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u00ab\u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u00bb \u2014 \u044d\u0442\u043e \u043a\u0430\u043c\u0435\u0440\u0430. \u041f\u0440\u0438 \u0435\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043e\u0431\u043b\u0430\u043a\u043e \u0442\u043e\u0447\u0435\u043a (\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435 \u0435\u0433\u043e \u043d\u0435\u0442), point cloud.<br \/>  \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044e, \u043d\u0443\u0436\u0435\u043d \u0445\u0443\u0434\u043e-\u0431\u0435\u0434\u043d\u043e \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u0431\u043e\u0440.<br \/>  \u041c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0437\u0430 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0444\u0430\u043d\u0435\u0440\u0435 \u043e\u0442 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vs\/40\/lo\/vs40lo91gjq3dbb9gvqnjmmien4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vs\/40\/lo\/vs40lo91gjq3dbb9gvqnjmmien4.jpeg\" data-blurred=\"true\"\/> <br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/8n\/bs\/-l\/8nbs-l1hjfzz7qaemplumbbne7w.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/8n\/bs\/-l\/8nbs-l1hjfzz7qaemplumbbne7w.jpeg\" data-blurred=\"true\"\/><br \/>  \u0414\u0432\u0443\u0445 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432 18650 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043d\u0430 2-3 \u0447\u0430\u0441\u0430.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 launch \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0433\u043e ORB_SLAM3 \u0442\u0430\u043a \u0438 \u043d\u043e\u0434 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 imu.<\/p>\n<p>  <b>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u0430\u043c\u0435\u0440\u044b.<\/b>  <\/p>\n<pre><code class=\"python\">nano \/home\/pi\/catkin_ws\/src\/raspicam_node\/launch\/camerav2_512x512_fish.launch<\/code><\/pre>\n<p>  \u041f\u043e\u043f\u0440\u0430\u0432\u0438\u043c launch \u0444\u0430\u0439\u043b raspicam_node, \u0441\u043d\u0438\u0437\u0438\u0432 fps \u0434\u043e 20, \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 enable_raw \u0432 true, \u0442\u0430\u043a \u043a\u0430\u043a ORB_SLAM3 \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 (image_compressed) \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0448\u043b\u0435\u0442 raspicam_node.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">camerav2_512x512_fish.launch<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\"> &lt;launch>   &lt;arg name=\"enable_raw\" default=\"true\"\/>   &lt;arg name=\"enable_imv\" default=\"false\"\/>   &lt;arg name=\"camera_id\" default=\"0\"\/>   &lt;arg name=\"camera_frame_id\" default=\"camera\"\/>   &lt;arg name=\"camera\" default=\"camerav2_640x480\"\/>    &lt;node type=\"raspicam_node\" pkg=\"raspicam_node\" name=\"camera\" output=\"screen\">     &lt;param name=\"private_topics\" value=\"true\"\/>      &lt;param name=\"camera_frame_id\" value=\"$(arg camera_frame_id)\"\/>     &lt;param name=\"enable_raw\" value=\"$(arg enable_raw)\"\/>     &lt;param name=\"enable_imv\" value=\"$(arg enable_imv)\"\/>     &lt;param name=\"camera_id\" value=\"$(arg camera_id)\"\/>      &lt;param name=\"camera_info_url\" value=\"package:\/\/raspicam_node\/camera_info\/camerav2_640x480.yaml\"\/>     &lt;param name=\"camera\" value=\"$(arg camera)\"\/>     &lt;param name=\"width\" value=\"512\"\/>     &lt;param name=\"height\" value=\"512\"\/>      &lt;param name=\"framerate\" value=\"20\"\/>     &lt;!-- &lt;remap from=\"\/camera\/image\" to=\"\/camera\/image_raw\"\/> -->     &lt;!-- &lt;remap from=\"\/camera\/image\/compressed\" to=\"\/camera\/image_raw\"\/> -->   &lt;\/node> &lt;\/launch> <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432 ORB_SLAM \u0444\u0430\u0439\u043b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 512\u0445512.<\/p>\n<p>  *<b>\u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\/\u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440, \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043d\u043e\u0434\u0443.<\/b><br \/>  nano \/home\/pi\/catkin_ws\/src\/ros_mpu6050_node\/launch\/mpu6050.launch<br \/>  \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0434\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u2014 100-200 \u0413\u0446, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c remap (\u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435) \u0442\u043e\u043f\u0438\u043a\u043e\u0432, \u0447\u0442\u043e\u0431\u044b imu \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u043e\u043f\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c ORB_SLAM3.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">mpu6050.launch<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;!-- http:\/\/wiki.ros.org\/roslaunch\/XML\/node --> &lt;launch>    &lt;node name=\"mpu6050_node\" pkg=\"ros_mpu6050_node\" type=\"mpu6050_node\" output=\"screen\">       &lt;!--&lt;rosparam file=\"$(find mypackage)\/config\/example.yaml\" command=\"load\" \/>-->       &lt;param name=\"frequency\" type=\"int\" value=\"200\" \/>       &lt;param name=\"frame_id\" type=\"str\" value=\"base_imu\" \/>       &lt;param name=\"ax\" type=\"int\" value=\"0\" \/>       &lt;param name=\"ay\" type=\"int\" value=\"0\" \/>       &lt;param name=\"az\" type=\"int\" value=\"0\" \/>       &lt;param name=\"gx\" type=\"int\" value=\"0\" \/>       &lt;param name=\"gy\" type=\"int\" value=\"0\" \/>       &lt;param name=\"gz\" type=\"int\" value=\"0\" \/>       &lt;param name=\"ado\" type=\"bool\" value=\"false\" \/>       &lt;param name=\"debug\" type=\"bool\" value=\"false\" \/>       &lt;remap from=\"\/imu\/data\" to=\"\/imu\"\/>    &lt;\/node> &lt;\/launch><\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <b>\u041e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 ORB_SLAM3.<\/b><br \/>  \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435.<br \/>  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yaml, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0445. \u0427\u0442\u043e \u043c\u044b \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c.<br \/>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043a\u0430\u043c\u0435\u0440\u0430 \u0442\u0438\u043f\u0430 Pinhole, \u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043c TUM1.yaml:  <\/p>\n<pre><code class=\"python\">nano  \/home\/pi\/ORB_SLAM3\/Examples\/Monocular\/TUM1.yaml<\/code><\/pre>\n<p>  \u0435\u0441\u043b\u0438 fish-eye, \u0432 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u0445 ORB_SLAM3 \u044d\u0442\u043e \u0442\u0438\u043f KannalaBrandt8, \u0442\u043e TUM-VI.yaml:  <\/p>\n<pre><code class=\"python\">nano  \/home\/pi\/ORB_SLAM3\/Examples\/Monocular\/TUM-VI.yaml<\/code><\/pre>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c \u0443 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 TUM \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432 \u0447\u0430\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e.<br \/>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c ORBextractor.nLevels, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 fps, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 512\u0445512, \u0430 \u0442\u0430\u043a\u0436\u0435 ORBextractor.nFeatures \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0447 (\u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438\/ \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2014 \u043c\u0435\u043d\u044c\u0448\u0435 \u0444\u0438\u0447 \u2014 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0445\u0443\u0436\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442).  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">TUM-VI.yaml<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\"> %YAML:1.0  #-------------------------------------------------------------------------------------------- # Camera Parameters. Adjust them! #-------------------------------------------------------------------------------------------- File.version: \"1.0\"  Camera.type: \"KannalaBrandt8\"  # Camera calibration and distortion parameters (OpenCV)  Camera1.fx: 190.978477 Camera1.fy: 190.973307 Camera1.cx: 254.931706 Camera1.cy: 256.897442  # Equidistant distortion 0.0034823894022493434, 0.0007150348452162257, -0.0020532361418706202, 0.0002029$ Camera1.k1: 0.003482389402 Camera1.k2: 0.000715034845 Camera1.k3: -0.002053236141 Camera1.k4: 0.000202936736  # Camera resolution Camera.width: 512 Camera.height: 512  # Camera frames per second  Camera.fps: 20  # Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale) Camera.RGB: 1 #-------------------------------------------------------------------------------------------- # ORB Parameters #-------------------------------------------------------------------------------------------- # ORB Extractor: Number of features per image ORBextractor.nFeatures: 1000 # Tested with 1250 # ORB Extractor: Scale factor between levels in the scale pyramid       ORBextractor.nLevels: 3 #8  # ORB Extractor: Fast threshold # Image is divided in a grid. At each cell FAST are extracted imposing a minimum response. # Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST # You can lower these values if your images have low contrast ORBextractor.iniThFAST: 20 ORBextractor.minThFAST: 7  #-------------------------------------------------------------------------------------------- # Viewer Parameters #-------------------------------------------------------------------------------------------- Viewer.KeyFrameSize: 0.05 Viewer.KeyFrameLineWidth: 1.0 Viewer.GraphLineWidth: 0.9 Viewer.PointSize: 2.0 Viewer.CameraSize: 0.08 Viewer.CameraLineWidth: 3.0 Viewer.ViewpointX: 0.0 Viewer.ViewpointY: -0.7 Viewer.ViewpointZ: -3.5 Viewer.ViewpointF: 500.0 Viewer.imageViewScale: 0.3 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0432\u0441\u0435 (\u043f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043d\u043e\u0434\u044b imu):<br \/>  1-st terminal: <\/p>\n<pre><code class=\"python\">bash -c \"source \/opt\/ros\/noetic\/setup.bash; roscore\"<\/code><\/pre>\n<p>  2-d: <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch usb_cam usb_cam-test.launch\"<\/code><\/pre>\n<p>  \u043b\u0438\u0431\u043e  <\/p>\n<pre><code class=\"python\"> bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash; roslaunch raspicam_node camerav2_512x512_fish.launch\"<\/code><\/pre>\n<p>  3d: <\/p>\n<pre><code class=\"python\">bash -c \"source \/home\/pi\/catkin_ws\/devel\/setup.bash;cd \/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3; .\/Mono \/home\/pi\/ORB_SLAM3\/Vocabulary\/ORBvoc.txt \/home\/pi\/ORB_SLAM3\/Examples\/Monocular\/TUM-VI.yaml\"<\/code><\/pre>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, raspberry \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nb\/tr\/s9\/nbtrs9bjpcll6lo4_rlhsjjovkq.gif\" data-src=\"https:\/\/habrastorage.org\/webt\/nb\/tr\/s9\/nbtrs9bjpcll6lo4_rlhsjjovkq.gif\"\/><br \/>  \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438 \u0440\u0435\u0437\u043a\u0438\u0445 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u044f\u0432\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442.<br \/>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043f\u0435\u0448\u0430 \u0438 \u043d\u0435 \u0434\u0435\u0440\u0433\u0430\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u043e\u0439, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u00ab\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u00bb:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gv\/md\/6l\/gvmd6ljcxzskftnjmpkvrllvble.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gv\/md\/6l\/gvmd6ljcxzskftnjmpkvrllvble.png\"\/><br \/>  \u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u0442\u0443\u0434\u0430 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441 \u043f\u043b\u0430\u0432\u043d\u044b\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u043e\u043c \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<p>  \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 gui \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0422\u0430\u043a\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043a\u0430\u0440\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0430\u0440\u0442\u043e\u043c ORB_SLAM3 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 TUM.yaml \u0444\u0430\u0439\u043b:  <\/p>\n<pre><code class=\"python\">System.SaveAtlasToFile: \"my_01\"<\/code><\/pre>\n<p>, \u0433\u0434\u0435 my_01 \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b.<br \/>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u0430\u0440\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \/home\/pi\/ORB_SLAM3\/Examples_old\/ROS\/ORB_SLAM3 \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f my_01.osa.<br \/>  \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 ORB_SLAM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432 \u0442\u043e\u043c \u0436\u0435 TUM \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c:  <\/p>\n<pre><code class=\"python\">System.LoadAtlasFromFile: \"my_01\"<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442.<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/689168\/\"> https:\/\/habr.com\/ru\/post\/689168\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6329b84c4c0070cee05ceae8\" data-style=\"\" id=\"6329b84c4c0070cee05ceae8\" width=\"\"><\/div>\n<\/div>\n<p>  \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u044e\u0430\u043d\u0441\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 ORB_SLAM3 \u043d\u0430 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u043e\u043c \u043f\u043a \u2014 raspberry pi 4 c \u041e\u0421 Raspbian buster,<br \/>  \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 raspberry, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e ROS noetic \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0435\u0435 \u0437\u0432\u0435\u043d\u043e \u043c\u0435\u0436\u0434\u0443 imu, csi \u043a\u0430\u043c\u0435\u0440\u043e\u0439 raspberry pi \u0438 ORB_SLAM3. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u043d\u0430\u0443\u0447\u043d\u043e\u0441\u0442\u044c, \u0438\u0437\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043c\u043d\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u0430 \u0441 \u043e\u043f\u043e\u0440\u043e\u0439 \u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0431\u0430\u0437\u0443.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-338555","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/338555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=338555"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/338555\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=338555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=338555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=338555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}