MING PIN LU
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.

      Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Explore these features while you wait
      Complete general settings
      Bookmark and like published notes
      Write a few more notes
      Complete general settings
      Write a few more notes
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 呂銘斌-論文文獻搜尋資料整理 ## [雲端資料夾](https://drive.google.com/drive/folders/1ZFywQSb2YnLrwttr9N9na-uEm6T9X5JU?usp=sharing) * [Robot Operating System 2: Design, architecture, and uses in the wild](https://www.science.org/doi/10.1126/scirobotics.abm6074) ROS2的[官方網站](https://docs.ros.org/en/foxy/Citations.html)說明,若有使用ROS2 則需引用此論文。 * [The Marathon 2: A Navigation System](https://ieeexplore.ieee.org/document/9341207) 有使用navigation2必須引用此論文 [Configuration and Control of KMR iiwa Mobile Robots using ROS2](https://ieeexplore.ieee.org/document/9121554) 有提到ros2 以及 Navigation [A Development of Mobile Robot Based on ROS2 for Navigation Application](https://ieeexplore.ieee.org/document/9593984) 跟我一樣使用相同的ros2系統也有用2D LIDAR,最後做出實體樹梅派自走車 [Platooning method for multiple mobile robots using laser-based SLAM](https://ieeexplore.ieee.org/document/6060613) 多個移動機器人slam [Deploy Indoor 2D Laser SLAM on a Raspberry Pi-Based Mobile Robot](https://ieeexplore.ieee.org/document/8941448) 樹梅派Gmapping Slam [Cooperative pedestrian tracking by multiple mobile robots with laser range scanners](https://ieeexplore.ieee.org/document/6217763) 機器人在一個共同的坐標系中識別自己的姿態和被跟踪行人的姿態 [Multi-camera System Calibration of Indoor Mobile Robot Based on SLAM](https://ieeexplore.ieee.org/document/9731045) V-SLAM [Modelling mobile robot navigation in 3D environments: camera-based stairs recognition in Gazebo](https://ieeexplore.ieee.org/document/9802368) ROS+GAZEBO [Towards a decentralised mobile robot learning system for indoor environments](https://ieeexplore.ieee.org/document/8211439) ROS [Indoor Autonomous Multi-Robot Communication System](https://ieeexplore.ieee.org/document/9671084) Multirobot+ROS Gazebo+ Turtlrbot3 [Determining positions and distances using collaborative robots](https://ieeexplore.ieee.org/document/7332723) 提到相機定位Sensing Depth with Vision [Local vs. global: Indoor multi-robot simultaneous localization and mapping in wireless sensor networks](https://ieeexplore.ieee.org/document/5461513) 單機器人 SLAM 以及 多機器人 SLAM [Implementation of a Person Following Robot in ROS-gazebo platform](https://ieeexplore.ieee.org/document/9726010) 使用了 ROS、Gazebo 和 RVIZ + yolo [Distributed and Synchronized Setup towards Real-Time Robotic Control using ROS2 on Linux](https://ieeexplore.ieee.org/document/9217010) [Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development](https://ieeexplore.ieee.org/document/9568801) 提到ros的UI設計 [Latency Analysis of ROS2 Multi-Node Systems](https://ieeexplore.ieee.org/document/9591166) 分析ros2的底層 [Analyzing Interoperability and Security Overhead of ROS2 DDS Middleware](https://ieeexplore.ieee.org/document/9837282) 分析ros2的底層 [Distributed Sensing and Prediction of Obstacle Motions for Mobile Robot Motion Planning](https://ieeexplore.ieee.org/document/4059183) 系統架構好像有關連可以參考 [Pedestrian localization in distributed vision system for mobile robot global path planning](https://ieeexplore.ieee.org/document/7558703) 系統架構好像有關連可以參考 [ros2_tracing: Multipurpose Low-Overhead Framework for Real-Time Tracing of ROS 2](https://ieeexplore.ieee.org/document/9772997) 提到ros2 node [Multi-Dimensional Indexing Structure for PointCloud Data](https://ieeexplore.ieee.org/document/9556109) 提到PointCloud [PointCloud2格式理解](https://blog.csdn.net/qq_45954434/article/details/116179169) [YOLOv5官網](https://docs.ultralytics.com/yolov5/) [A Case Study: Cat-Dog Face Detector Based on YOLOv5](https://ieeexplore.ieee.org/document/9581987) YOLOv5 介紹 ## 2.9 YOLO 論文用 "YOLOv5: A Universal Object Detection Framework" by Ultralytics LLC. 這是YOLOv5的官方論文,其中比較了不同版本的YOLOv5之間的性能和差異,包括YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。 "YOLOv5 Comparative Study" by Puzis et al. (2021). 這篇論文比較了YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x之間的性能和差異,評估了它們對於不同檢測任務的適應能力和速度表現。 "Comparative Evaluation of YOLOv5 on Different Datasets" by Vanshika et al. (2021). 這篇論文比較了YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x之間在不同數據集上的性能和差異,並探討了它們的優點和缺點。 "A Comparative Study on the Performance of Object Detection Models" by Bora et al. (2021). 這篇論文比較了不同的物體檢測模型,包括YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,評估了它們的準確性、速度和適應性。 --- ## 論文做了甚麼? 比較點? https://ieeexplore.ieee.org/document/9824363/references#references 基於DeepSORT和YOLOv5的車輛分析系統 採用YOLOv5檢測目標,採用卡爾曼濾波進行預測和更新,在級聯匹配中採用匈牙利算法進行軌跡匹配,從而實現車輛的多目標跟踪。 高速道路交通流量巨大,目標容易重疊模糊,本系統選用DeepSORT算法,可有效提高目標長時間跟踪精度, 減少頻繁ID Switch現象,以及YOLOv5比其他監控機型速度更快,體積更小,可以檢測到車輛目標,可以很好的應對高速道路目標移動過快造成的情況。 因此,本文結合DeepSORT與YOLOv5實現高速路面車輛多目標的檢測與跟踪,同時利用逆透視變換實現車輛多目標的單位時間車速計算和統計劃分車輛類型和速度區間。 實驗方式: 使用影片跑結果。 結論 本文采用DeepSORT和YOLOv5算法在擁擠的高速道路、目標形狀不斷變化和遮擋的情況下實現高跟踪性能。 通過逆透視映射,將圖像的位置轉換為經緯度坐標來檢測車速,處理後的視頻達到更高的刷新幀率。 但目標車輛在標定過程中僅分為兩種類型,難以泛化為多種車輛類型,後續需要對模型進行進一步標定。 --- https://ieeexplore.ieee.org/abstract/document/9431784 使用 YOLO 和 DeepSORT 進行車輛檢測和跟踪 本文建議的方法確定了 YOLOv4 最新算法與車輛檢測系統中的先前模型相比的改進。 本次車輛檢測還使用了DeepSORT算法,幫助有效統計視頻中通過的車輛數量。 結論 如果使用本節中提到的幾個建議想法,可以改進該系統以更適應車輛檢測。 第一個想法是使用樹莓派作為平台,將其放置在監控攝像頭的小地方,例如在高速公路上檢測車輛通過。 這將使它比大型機器更適合放在那個地方。 通過使用昂貴的 GPU 來計算該系統,使用雲計算作為視頻跟踪可以更好更快。 此外,它將使用於運行該系統的計算機使用更少和更小的組件,因為系統中不需要像樹莓派那樣的 GPU。 --- https://ieeexplore.ieee.org/document/9738556 使用 YOLOv5 和 DeepSORT 跟踪多個斑馬魚幼蟲 本文基於當前最先進的檢測技術YOLOv5和多目標跟踪技術DeepSORT,開發了一種準確可靠的多斑馬魚幼體跟踪系統。 基於檢測的跟踪系統分為檢測和跟踪兩部分。 在檢測階段,使用訓練好的YOLOv5模型檢測斑馬魚幼體的頭部位置。 在 DeepSORT 跟踪階段,利用級聯匹配算法匹配斑馬魚幼體的識別,該算法利用幼體的運動和外觀信息。 一方面,馬氏距離用於評估卡爾曼濾波器的預測值和YOLOv5模型的檢測值。 另一方面,訓練魚頭的外觀特徵模型,利用餘弦距離對存儲的外觀特徵值與當前幀外觀信息進行評價。 結論 針對斑馬魚幼體由於突發運動、遮擋和成像條件差等原因導致的跟踪精度差的問題,本文開發了一種基於YOLOv5-DeepSORT系統的多目標在線跟踪方法。 YOLOv5-DeepSORT 系統首先使用 YOLOv5 神經網絡進行目標檢測。 然後,DeepSORT算法利用目標的深層信息結合卡爾曼濾波器的運動信息來分配目標的標識, 級聯匹配和IoU匹配相結合,解決突發運動和短時遮擋的缺陷問題。 實驗結果表明,所提出的系統在跟踪不同年齡、不同生理活動狀態的幼蟲的跟踪精度方面具有優勢, 特別是在保持較低的ID切換率方面具有優勢。 然而,所提出的系統仍有許多局限性,例如突發運動會導致檢測邊界框漂移,從而導致錯誤和漏檢。處理這些問題將是我們正在進行的研究工作。 --- https://ieeexplore.ieee.org/document/9692002 基於 DeepSORT 和 YOLOv5 的行人目標跟踪 本文開發了一種基於YOLOv5的DeepSORT行人目標跟踪算法(YOLOv5-DeepSORT),將高性能的YOLOv5算法引入DeepSORT算法中, 逐幀檢測跟踪視頻,然後利用卡爾曼濾波預測目標位置,同時使用匈牙利算法匹配相同的目標。 結論 為了檢查 YOLOv5-DeepSORT 的性能,本文將其與 YOLOv3-DeepSORT 進行了比較。 結果表明,與YOLOv3-DeepSORT相比,YOLOv5-DeepSORT能夠很好地識別邊緣目標, 克服由於遮擋導致的恆等變換和跟踪誤差,漏檢和誤檢現像明顯減少。 提高了檢測效果和跟踪效果。 https://ieeexplore.ieee.org/document/9650063 在室內環境中實現具有 3D SLAM 和目標定位的移動多目標搜索系統 提到使用深度相機進行目標定位。 --- [在ROS-gazebo 平台中實現人員跟隨機器人](https://ieeexplore.ieee.org/document/9726010) 目的: 該機器人設計用於在跟隨人的同時攜帶重物。 這些機器人可以在購物中心使用,它可以幫助弱勢群體搬運必需品並跟隨他們。 作為這項研究的一部分創建的移動機器人包括激光雷達(激光傳感器)和 Kinect(深度相機傳感器)。 Kinect傳感器協助我們檢測到一個特定的人並自動跟隨他/她,YOLO物體檢測算法協助完成人員檢測任務。 在完成以下任務時,激光雷達傳感器有助於保持人與機器人之間的距離。 ![](https://i.imgur.com/J0F2lel.png) 文章的論文引用: [“基於藍牙和 GPS 的跟隨我機器人”,支持Human-following機器人的創新。](https://www.irjet.net/archives/V8/i4/IRJET-V8I4822.pdf) [“使用 SLAM 算法的基於 ROS 的自主室內導航模擬”,有針對性地描述了移動機器人在未知位置的導航。](https://www.researchgate.net/profile/Rajesh-Kannan-Megalingam/publication/337465619_ROS_based_Autonomous_Indoor_Navigation_Simulation_Using_SLAM_Algorithm/links/5dd902c7a6fdccdb445c6979/ROS-based-Autonomous-Indoor-Navigation-Simulation-Using-SLAM-Algorithm.pdf) [“HUMAN FOLLOWING ON ROS FRAMEWORK A MOBILE ROBOT”,主要側重於創建一個實時人跟隨機器人。](https://core.ac.uk/download/pdf/291842522.pdf) [“使用 ROS 導航堆棧比較計劃路徑和行駛路徑”,主要目標是評估差動驅動機器人的行進路徑和計劃路徑之間的約束。](https://ieeexplore.ieee.org/document/9154132) [“ROS 和 Gazebo 中的移動機器人仿真和導航”,清楚地解釋了使用 ROS 框架在 Gazebo 環境中構建移動機器人。](https://ieeexplore.ieee.org/document/9311330) [“使用玩家方向盤的基於 ROS 的輪式機器人仿真和控制”,主要側重於創建搜索和救援機器人的原型。](https://ieeexplore.ieee.org/document/8777569) [“跟我來:使用 Wi-Fi 接收信號強度指示器的人類跟隨機器人”,文中提出了創建低成本人類跟隨機器人的方法。](https://link.springer.com/chapter/10.1007/978-981-15-8289-9_57) [“人類跟隨機器人的設計與開發”,討論了模擬 Follow-Me 機器人時面臨的問題、跟踪人、避免與物體碰撞以及人與機器人之間的交互的解決方案。](https://www.researchgate.net/publication/354631715_Design_and_development_of_human_following_robot) [“Follow Me Robot Technology”,描述了客戶端如何在類人跟隨機器人中發揮關鍵作用,以及所有跟隨機器人所涉及的Kinect工程。](https://d1wqtxts1xzle7.cloudfront.net/38808776/IJSRDV2I7144-libre.pdf?1442605516=&response-content-disposition=inline%3B+filename%3DFollow_Me_Robot_Technology.pdf&Expires=1672582210&Signature=OoKefDtLELOCnZyIYyzfUvII3C6E5w8n9OxrR2ridQJGHQ1wOppj95ZTSYcly39wni~sTByJb8dsa4ijqHA7PGaZmkH1pXMEl7bY4lKzc0MDAQEyCTMqMRcZ~b~X5e7PYcq~EiINo7gffrZJkZndFV3UOkdEuDwZ-4c5zhmBVc4pTrihNNuTBtWmNqb0LWbDPj5G8oZ-AD1e0SM9W5sqi2jtE~Ds63fdxFoQw5WCsDbHV~hgtw55Q3sj-MaCxzIOkA9YV4PjrljNM0Ytr9RGB3j-wCRFjvU5GD-6~Lk5L5z-R81XCLNR-N7ayk5NNbEvsNbYlWVBh3OdcMoOoBvttw__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA) 方法: 我們使用 Gazebo 和 RVIZ 作為仿真工具來驗證輸出。使用 MakeHuman 和 Blender 軟件協助創建動畫人物並驗證gazebo中的渲染。 創建的移動機器人使用深度相機 (Kinect) 來檢測人和激光雷達來計算機器人與人之間的距離。 YOLOv3算法已被用於圖像識別。有了這個移動機器人,我們在 gazebo 軟件中模擬了多人,以確保機器人只跟隨一個特定的人。 Kinect 傳感器使用對象檢測算法來識別和跟踪特定的人。Kinect 深度相機的Depth Raw輸出和 RVIZ 中對象的輪廓視圖。 結果部分還表明,與 YOLO V3 集成的 Kinect 傳感器可以準確地檢測到特定的人。 它還給出了在圖像中檢測到的人的最大概率, 由此,我們可以得出結論,Follow-me機器人可以準確無誤地跟隨檢測到的特定人。 重點: 論文中是使用YOLOv3,使用ROS,模擬環境是使用Gazebo, 有特別捏一個3D人體,且把人體放進Gazebo,事前還先蒐集人體資料並用YOLO進行訓練, 再用Kinect深度相機來進行影像辨識,然後車子可以經由影像抓取後,且跟隨人是使用雷達來做的。 --- [使用基於 ROS 的機器人監控超市貨架](https://ieeexplore.ieee.org/document/9452895) 目的: 該系統可以自動檢查超市貨架上的產品數量,從而在產品短缺時採取相應的補貨措施。 由於目前傳統的貨架監控方法相關的人力成本很高,這些活動沒有像應有的那樣頻繁地進行,導致顧客流失增加和超市所有者的收入損失。 文章的論文引用: [“結合先進機器人技術和計算機視覺進行零售店貨架分析”,在自動化商店助理任務,從而減少人工工作。 ](https://ieeexplore.ieee.org/document/8423894) [“SLAM 中的激光雷達里程計”,描述了一種算法,該算法使用單個2D激光成像檢測和測距(LIDAR)傳感器對區域進行輪廓分析,並使用機器人操作系統(ROS)進行實施。](https://ieeexplore.ieee.org/document/8588026) [“基於 ROS 的差分機器人的映射和定位算法的定量研究”,描述了一種算法,該算法使用單個2D激光成像檢測和測距(LIDAR)傳感器對區域進行輪廓分析,並使用機器人操作系統(ROS)進行實施。](https://ieeexplore.ieee.org/document/8325609) [“使用 ROS 和 Gazebo 進行移動機器人測試的仿真環境”,描述了一種算法,該算法使用單個2D激光成像檢測和測距(LIDAR)傳感器對區域進行輪廓分析,並使用機器人操作系統(ROS)進行實施。](https://ieeexplore.ieee.org/document/7790647) [“基於激光雷達的移動機器人SLAM算法分析”,描述了一種算法,該算法使用單個2D激光成像檢測和測距(LIDAR)傳感器對區域進行輪廓分析,並使用機器人操作系統(ROS)進行實施。](https://ieeexplore.ieee.org/abstract/document/8866200) [“使用移動機器人進行遠程零售監控和庫存評估”,描述了一種基於虛擬現實 (VR) 的設備,該設備在零售店中使用移動機器人來自動執行收集和調查數據的任務。](https://ieeexplore.ieee.org/document/6869136) [“從頭開始在 Gazebo 仿真中為有腿機器人構建 ROS 包”,機器人模型以 URDF 文件格式以非常基本的形式描述,包括鏈接描述和關節描述](https://ieeexplore.ieee.org/document/9268358) [“基於機器人操作系統的四輪全向移動機器人的測繪和導航”,說明了創建的 Gazebo 環境地圖,這在未來將有助於移動機器人的路徑規劃和導航](https://ieeexplore.ieee.org/document/8998714) 方法: 在GAZEBO應用程序中模擬生成虛擬機器人、地圖和傳感器,GAZEBO 應用程序是一個有助於模擬機器人系統的動力學和物理的虛擬環境。 對於導航和地圖繪製,使用了 Gmapping 粒子云算法。 除此之外,OpenCV,一個用於圖像分析和目標檢測的 python 包,以及用於可視化目的的 RVIZ 工具被用於所提出的系統。 ![](https://i.imgur.com/ILnGiqK.png) 由於貨架的高度各不相同,單個攝像頭無法捕捉到貨架區域的整個範圍。 因此,機器人上的三個攝像頭可以正確檢測到所有貨架。 每個攝像機檢測每種類型的長方體,即紅色、綠色和藍色。 最底部camera1 用於檢測綠色長方體, 中間部camera2 用於檢測紅色長方體, 最頂部camera3 用於檢測藍色長方體。 對圖像進行高斯濾波後,邊緣被柔化,噪點也減少,進行圖像閾值處理以獲得更高的精度。 結論 此實現的目的是為可以通過 ROS 和 Gazebo 軟件部署在超市的機器人開發一個可靠的環境。 本文展示了一種有效、準確且成本低廉的方法來監控超市貨架上的庫存。 該機器人在尺寸和可用性方面進行了美觀設計,以提高執行任務的效率。 二維映射環境中的仿真結果表明,實時部署的機器人可以直接使用軟件進行控制。 執行的模擬在部署機器人時提供了額外的優勢,因為大多數實時流行的因素都可以在模擬環境中設置,從而降低了原型製作的成本。 該論文詳細演示了所使用的軟件包、工具和算法,並且此處報告的結果將對機器人專家社區有用。 然而,該系統有一些缺點需要進一步改進。 例如,在實時實施中,機器人的速度保持在最低水平,因為提高速度會導致完全錯過對貨架上某些產品的掃描。 此外,如果任何行中的某個項目放錯了位置,那麼它將不會被檢測到,這可以通過允許所有相機檢測每種類型的對象來進一步改進。 此外,機器人也只會通知人員進貨,這是一項耗時的人工任務。 為此,可以在機器人本身上進一步實施自動拾取和放置機制。 目前,庫存監控是用不同顏色的長方體進行實驗,可以與零售產品進行更換。ROS導航堆棧將來也可用於自主導航和2D導航。 為了提高里程計數據和整體效率,可以添加帶有擴展卡爾曼濾波器的 IMU 單元。有了工作論壇,改進和探索的可能性是無窮無盡的。 因此,該項目的最終目標是開發一個全自動系統,用於超市的庫存監控和重新裝載貨架。 重點: 使用ROS實現。在GAZEBO中模擬虛擬機器人、商店地圖,貨架和傳感器, 使用重新設計的機器人,可進行SLAM,及導航。 鏡頭抓取圖像,用Opencv做目標檢測,用物體外型以及顏色,去判斷貨架上是否有存貨。達到監控貨架目的。 --- [使用激光掃描儀對移動機器人進行人體跟踪和跟隨 ](https://ieeexplore.ieee.org/document/8273243) 目的: 我們提出了一種通過單個激光掃描儀檢測人的腿部的方法,並應用隨機森林分類器將腿部與其他物體區分開來。 根據激光掃描儀的數據和檢測結果,通過擴展卡爾曼濾波(EKF)算法對目標人的移動速度和相對於機器人的位置進行跟踪,得到其移動軌跡。 跟隨控制算法以人的連續位置作為輸入,移動機器人的速度規劃作為輸出,實現人的跟隨功能。 結論: 在本文中,我們用機器人完成了人體檢測、跟踪和跟隨功能。 在檢測部分,我們使用了激光掃描儀,這是一種非常有用和精確的設備,用於獲取飛機上的環境信息。 隨機森林分類器用於通過腿部形狀檢測目標人物。 移動機器人可以跟隨兩條腿的中心位置。 檢測後,使用卡爾曼濾波算法對人進行跟踪,雖然有時人的跟踪器會隨著不同的步行速度和步幅不連續,但大多數情況下,檢測到的人與跟踪器匹配。 最後,移動機器人跟隨目標人的位置。 以下功能的實驗是在辦公室和長走廊。 人和機器人的軌跡用幾張圖顯示,機器人幾乎可以順暢地跟隨被跟踪的人。 檢測算法難以區分腿與人、桌子或椅子的位置。 因此在復雜的環境中,不同的步幅、移動速度等都會對誤檢產生一定的影響。 最重要的問題是如何一直跟踪一個被跟踪的人,即使在探測範圍內突然探測到另一個人。 在本文中,我們選擇了可靠性最大的目標人物。 在未來的工作中,我們應該通過各種實驗場景來探索人類跟隨機器人的實用性。 繼智能輪椅之後,它們將應用於智能貨物運輸機器人等多個領域。 --- [基於目標跟踪和深度視覺的移動機器人人體跟隨 ](https://ieeexplore.ieee.org/document/9398366) 目的: 本文采用改進的相關濾波目標跟踪算法實現人體跟隨。 針對大多數目標跟踪器缺乏精度評估機制的問題,引入峰值旁瓣率(PSR)和深度信息的融合來評估跟踪結果的可信度。 樣本和過濾器模型以高可信度更新,以避免模型漂移。 人臉匹配用於在跟踪失敗時重新跟踪人。 基於深度攝像頭Kinect和移動機器人的跟隨人體實驗表明,所提方法具有出色的應對不同場景的能力,能夠長時間穩定地跟隨目標人體。 方法: 使用Eco-Hc 追踪器 1)首先,輸入具有感興趣區域(ROI)的目標圖像來初始化跟踪器並訓練濾波器模型。 2)在後續幀中,根據前一幀的跟踪結果,預測潛在的目標框。 3)通過餘弦窗和傅立葉變換提取並處理目標框的Hog和CN特徵。 4)用插值模型將多分辨率特徵轉化為連續空間域,得到特徵矩陣。 5) 對特徵矩陣和濾波器模型進行相關運算,得到響應圖,預測物體位置。 6) 每隔幾幀更新樣本空間和過濾模型,以提高跟踪速度並避免模型漂移。 7) 重複上述步驟進行後續目標跟踪和訓練過濾器模型。 追蹤流程 初始化跟踪器後,機器人開始跟隨人。 當跟踪失敗時,啟動重新跟踪機制,通過與保存的人臉圖片進行人臉匹配得到目標人物。 結論 文章針對人類跟隨的實現,將相關濾波目標跟踪算法ECO-HC應用到機器人上。 目標人的峰值旁瓣率和深度被用來評估跟踪結果的可信度。 採用高置信度更新樣本空間和過濾模型的策略,避免模型漂移。 同時採用人臉匹配進行跟踪失敗後的重新跟踪,提高了目標跟踪器的穩定性和魯棒性。 基於深度相機 Kinect 和 ROS 機器人,進行了在不同場景下跟隨人類的實驗。 結果表明,所提出的跟隨人的方法是可行的,並且具有可靠的檢測跟踪失敗和重新跟隨人的能力。 基於所提出的方法,機器人可以區分和處理不同的情況,並在復雜的室內環境中穩定地跟隨人類。 --- [基於圖像處理的人類跟隨推車使用360°相機 ](https://ieeexplore.ieee.org/document/9155956) 目的: 這項研究涉及一個機器人,其目的是在檢測、識別和跟踪後跟隨人類目標。 該系統採用360°攝像頭,解決了傳統攝像頭跟踪區域的局限性。 捕獲的圖像為魚眼格式,然後轉換為全景圖像,通過 You Only Look Once (yOLO) 檢測算法處理以檢測人體目標,並通過通道和空間可靠性跟踪 (CSRT) 算法跟踪目標。 支持者包括檢測後 10 秒的目標識別方法,因此系統不需要時不時地尋找目標。 結論: YOLO檢測算法可以在360度攝像頭拍攝的雙魚眼圖像轉換成的拼接全景圖像中檢測並識別目標。但是,如果檢測到的視野中有兩個以上的人,系統會發現很難識別目標。相機。 CSRT算法可以跟踪目標在雙魚眼圖像轉換的拼接全景圖像中的位置。 將YOLO算法處理後的目標精確位置數據傳遞給CSRT算法進行跟踪。 然而,有些試驗導致跟踪失敗,因為邊界框留在了目標的先前位置。 --- [基於深度相機的跟踪機器人研究 ](https://ieeexplore.ieee.org/document/9482272) 目的: 為解決移動機器人在非結構化環境中的自動跟隨問題,提出了一種基於深度相機的自主跟隨方法。 設計了一個基於ROS操作系統並配備深度攝像頭的移動平台。 根據深度相機的深度空間特性,獲取物體的3D深度數據和坐標信息。 其次,根據深度相機的RGB模式,解決了特定目標的識別和跟隨問題。 結論: 本文基於四輪差動移動小車的硬件平台,提出了一種基於深度攝像頭的移動機器人自動跟隨特定目標的方法。 輸入具體的目標標識和坐標信息,通過TF的坐標完成目標物體到汽車底盤坐標的變換。 根據小車的運動模型,計算出電機的控制信息,驅動小車進行各個方向的位移運行。 最後,在解決傳統算法存在問題的基礎上,採用改進的人工勢場算法完成後續過程的路徑規劃。 本研究預先對跟隨目標模型進行標定,並將標定後的目標貼在需要跟隨的目標上,節省了大量的計算和識別過程,為跟隨目標提供了更高的靈活性。 實驗也證明了該方法的有效性和實用性,能夠在標定物的引導下成功識別出目標物,有效地完成後續任務。 --- [使用機會約束目標跟踪的行人跟隨服務機器人應用 ](https://ieeexplore.ieee.org/document/7358815) 目的: 本文介紹了一種移動機器人系統,其中機器人跟踪移動目標。 該系統將丟失目標的可能性降至最低。 如果運動目標的下一個位置具有高斯分佈,則所提出的系統保證跟踪成功概率。 此外,我們根據所選的跟踪成功概率界限最小化移動機器人的移動距離。 結論: 我們建議使用跟踪行人的機器人系統。 跟踪算法最小化丟失目標的概率和目標的行進距離。 通過考慮目標預測位置的分佈,我們獲得了針對預測不確定性的魯棒性能。 此外,我們在現實世界中針對三個應用程序驗證了該系統,它顯示出高性能。 [用於高效 ROS 和基於 ROS2 的二維人機界面開發的開源工具 ](https://ieeexplore.ieee.org/document/9568801) 目的 二維人機界面 (HRI) 是大多數具有(可選)遠程操作組件的機器人系統的關鍵組件。 然而,創建這樣的界面通常既麻煩又耗時,因為大多數用戶界面框架需要在每次更改時重新編譯,或者即使是簡單的界面也需要編寫大量樣板代碼。 在本文中,我們介紹了五個開源包,即 ros(2)_babel_fish 包、qml_ros(2)_plugin 包和 hector_rviz_overlay 包。 這些軟件包能夠使用 QtWidget 或 QML 用戶界面框架,以簡單快速的方式為基於 ROS 和 ROS2 的機器人創建具有視覺吸引力的最終用戶或面向功能的診斷界面。 或者,將界面渲染為機器人可視化工具 RViz 的 3D 場景的疊加層,使開發人員能夠利用現有的廣泛數據可視化功能。 [連接 Gazebo-ROS 以支持 IEC 61131-3 的 PLC 控制器的實現 ](https://ieeexplore.ieee.org/document/9212096) 可以參考此篇論文的`C. 多機器人自動化任務分配算法,D.ROS接口`寫法,利用簡短的程式碼簡述,呈現自行開發的任務分配算法,可以效法此方法。 [基於ROS和MATLAB/Simulink的實時視頻中基於顏色的目標跟踪方法](https://ieeexplore.ieee.org/document/8273251) 感覺可以用來比較??? 基於ROS和Matlab 的 Simulink,本文介紹了一種方便、高效的運動目標分析和跟踪目標方法。 [基於ROS機器人操作系統的差動輪式小車設計](https://ieeexplore.ieee.org/document/9724753) 在Ubuntu 18.04系統下實現了基於ROS Melodic版操作系統的移動機器人的開發,最終可以實現地圖構建和自主導航等功能。 移動機器人採用差動輪結構,以樹莓派為上位機控制板,STM32為底層驅動板搭建硬件平台。 樹莓派與STM32通信,獲取當前速度信息、航向角信息,實現路徑規劃、自主導航和避障功能。 通過激光雷達採集周圍環境信息,進行SLAM地圖創建,通過導航功能包實現全局路徑規劃和局部路徑規劃。 [基於激光雷達和ROS的智能輪椅機器人設計與研究 ](https://ieeexplore.ieee.org/document/9930033) 可以拿來比較,是使用ROS1,但沒有設計UI介面可以點選導航點 此論文設計了一款基於ROS的智能輪椅機器人,該機器人以激光雷達為核心採集環境深度信息,具有自動導航和多點導航功能。 ![](https://i.imgur.com/gRTNrg0.png) 多點導航時,如果設置了一個坐標,在機器人到達前又設置了一個新坐標,則機器人將依次在兩個坐標上巡航。 即如果依次給機器人設置多個坐標,則機器人會依次從第一個坐標移動到最後一個坐標。 多點巡航使用以前保存的地圖。 首先將製作好的地圖保存到上位機,在機器人終端啟動多點巡航功能。 其次,在多點導航中採用了TEB、A-Star等算法。 由於DWA算法功能包不適用於Akman轉彎結構和機器人轉彎最小半徑,非原位轉彎特性需要TEB算法。 本實驗的測試步驟如下: 1. 運行機器人和激光雷達。 在機器人端運行多點巡航包。 2. 在上位機運行rviz的roslaunch文件。 3. 根據製作好的地圖選擇正確的坐標原點,在實驗地圖上隨機選擇四個目標坐標。 4. 在rviz程序中可以看到之前指定的四個不同紅色位置的坐標。 打開巡航套件後,機器人依次轉向之前設置的四個坐標。 [基於二維激光雷達 SLAM 的 ROS 自主機器人路徑規劃 ](https://ieeexplore.ieee.org/document/9620783) 本文在分析室內機器人路徑規劃需求的基礎上,提出了一種基於二維激光雷達SLAM的ROS路徑規劃方法。 該算法簡單有效。 在模擬測試中,機器人對整個區域的覆蓋率高,環境適應能力強。 [基於Ros的移動機器人Slam建圖與路徑規劃仿真](https://ieeexplore.ieee.org/document/9700877) 此論文是使用ROS1,描述很清楚,可以效仿。 詳細的描述,從Gazebo環境模擬,建構機器人,到ROS使用,SLAM方法,仿真過程及結果分析 [使用Gazebo和ROS構建基於開源機器狗的URDF模型](https://ieeexplore.ieee.org/document/8714265) 可以參考此論文使用其中展示的URDF文件架構圖。 --- # ROS2 簡介論文蒐集 * [https://ieeexplore.ieee.org/document/9593984/references#references](https://ieeexplore.ieee.org/document/9593984/references#references) 機器人操作系統 2 (ROS) 是第二代 ROS。 ROS2 建立在數據分發服務 (DDS) [3] 之上。 ROS2 比舊版本更乾淨 [4] 。 DDS 提供分佈式發現特性(在 ROS1 中不是集中式的),允許每個 ROS2 節點可以在沒有 ROS master 的情況下相互發現,DDS 使 ROS2 支持實時操作。 [3] 提出了關於 ROS2 與 ROS1 的功能和性能的比較數據,例如數據傳輸、支持的平台、服務質量 (QoS)、線程數和實時特性。 ROS2提供了navigation2和cartographer包,是移動機器人導航的相關包。 ROS navigation2可應用於自主導航移動機器人,尋找從A點到B點的安全路徑。它由定位、路徑規劃、動態避障等包組成。navigation2需要輸入的是機器人的TF(變換),它解釋了機器人參考系、機器人里程計數據、傳感器數據源和地圖的相對關係。 然後,它會發出電機的速度命令來控制機器人 [5] 。 ROS2 使用的是與 Ubuntu 20.04 兼容的 ROS Foxy Fitzroy。 ROS2 將安裝在 PC (Ubuntu 20.04) 和 Raspberry Pi4 (Ubuntu mate 20.04) 上。 * [基於 ROS2 的工業自動化系統框架](https://ieeexplore.ieee.org/document/9790247/references#references) ROS 將復雜系統分解為許多模塊化節點。 ROS 中的每個節點應負責單一模塊用途(例如,一個節點用於控制相機,一個節點用於控制電機等)。 每個節點都可以通過主題、服務或操作 [9] 向其他節點發送和接收數據。 圖1 、 圖2 和 圖3 描述了ROS下節點間的3種重要通信機制。 Topic graph ![](https://i.imgur.com/UCe1F5T.png) Service graph ![](https://i.imgur.com/jbGBOsl.png) Action graph ![](https://i.imgur.com/pDvnfjA.png) ROS1 和 ROS2 的區別 ![](https://i.imgur.com/c7QoPqu.png) ROS 最初被設計為 Willow Garage PR2 機器人的開發環境。 由於其定義良好的抽象層,ROS也被廣泛應用於其他機器人場景。 隨著 ROS 的發展,遇到了一些在初始設計中沒有考慮的用例(例如多個機器人的團隊、實時系統、非理想網絡等)。 為了在這些用例中使用 ROS,開發了 ROS2 [10] 。 Maruyama等人對ROS2的性能進行了深入研究 `探索ROS2的性能` 。 ROS1和ROS2的區別 如圖4 所示。 參考文獻 [12] 介紹了ROS 1和ROS2之間的變化。 下面描述了一些重要的區別: 在ROS 1中,通信的中間件是基於TCP/UDP的,所以應用需要主節點。 對於 ROS2,DDS 驅動分佈式架構,允許點對點通信。 ROS 1 提供“盡力而為”服務。 ROS2 引入了服務質量 (QoS),它不僅可以為實時應用程序提供盡力而為而且可靠的發布-訂閱通信策略。 QoS 使用戶可以更靈活地根據用例控制通信。 ROS 1只支持Linux和Windows,而ROS2也支持Mac OS和RTOS。 ROS1 僅在 Ubuntu 上進行 CI 測試。 ROS2 目前正在 Ubuntu Xenial、OS X E1 Capitan 以及 Windows 10 [12] 上進行 CI 測試和支持。 這意味著消息可以通過 ROS2 主題在不同的操作系統之間傳遞。 ROS1 中的實時應用程序依賴於 Orocos 等外部框架。 時編寫實時節點 與此不同,ROS2 有自己的實時框架,使開發人員能夠在使用適當的 RTOS [12] 。 DDS 是一種開放標準連接,可實現實時發布-訂閱應用程序。 在 DDS 的幫助下,ROS2 比 ROSl 更可靠,系統可以擴展到大型網絡,而不會降低整個網絡的性能。 這些特性使得 ROS2 適合在工業自動化中應用。 [探索ROS2的性能](https://ieeexplore.ieee.org/document/7743223) * [Changes between ROS 1 and ROS 2](http://design.ros2.org/articles/changes.html) * [Why ROS2](https://design.ros2.org/articles/why_ros2.html) * [使用 ROS2 配置和控制 KMR iiwa 移動機器人 ](https://ieeexplore.ieee.org/document/9121554/references#references) 活性氧 [3] 是一個機器人操作系統,可以與多種編程語言一起使用,並實現了開源功能。 它包括無需處理硬件即可處理機器人編程的工具和庫。 ROS 的主要目標是提供一個可以被任何機器人使用的標準。 ROS2 是第二代 ROS,是最先進的軟件,目前正在大規模部署中。 總的來說,ROS2 比以前的版本更乾淨、更快,而且更靈活、更通用。 這兩個版本之間的主要區別之一是 ROS2 構建在 DDS(數據分發服務)之上,它提供分佈式發現功能。 與控制KMP相關的兩個ROS2包是Cartographer [8] 和導航2 [9] . Cartographer 是一個用於實時 SLAM、同步定位和映射的軟件包,是 Google 開源項目的一部分 [10] . 可以根據機器人運動時的里程計、變換信息和傳感器信息創建地圖。 該地圖可以進一步提供給 Navigation2 並用於環境中的導航。 cartographer 節點的要求是測量到環境中障礙物的距離的傳感器數據。 可以包含來自 IMU 傳感器和里程計傳感器的數據以改進結果。 Navigation2 是一個可用於控制移動機器人的包,它基於速度控制器。 應用該包的主要目標是將機器人從起始姿勢導航到目標姿勢。 該任務可以分解為子任務,例如處理地圖、機器人定位、避障和路徑跟踪。 當計算出無障礙路徑時,會產生速度命令來描述機器人應該如何移動以遵循路徑。 導航包需要有關環境和機器人如何移動的信息,這些信息可以地圖、傳感器數據和測距數據的形式提供。 * [面向摩托車手的基於 ROS2 的小工具](https://ieeexplore.ieee.org/document/9831764) ROS2 提供了一組應用程序、庫和工具來構建機器人(和其他)應用程序,並具有異構計算的功能,例如硬件抽象、進程之間的消息傳遞和包管理。 ROS2 系統可以分成更小的部分,稱為節點。 所示 這些節點執行任務並使用發布-訂閱消息傳遞模式作為它們的通信協議,如圖 1 。 此模式考慮兩種類型的節點,發布者和訂閱者,前者通過向主題發布消息來生成數據,後者僅從他們感興趣的主題接收消息。發布者不向特定訂閱者發送消息。 相反,一條消息被發佈到一個主題,訂閱者只有在該特定主題中註冊時才會收到它。 ROS2 節點不知道它們正在向誰發送消息或從誰那裡接收消息。 ![](https://i.imgur.com/eYyGlJG.png) 基於 ROS2 的架構,因此也基於發布-訂閱消息模式。 在內部,ROS2 依賴於數據分發服務 (DDS) [10] 規範的實現,該規範旨在提供可靠性、可擴展性,在某些情況下還提供實時支持。 ROS2隱藏了DDS的複雜性,支持不同的實現方式,可以選擇最合適的。 如上所述,ROS2具有異構計算的特性,支持各種操作系統和硬件架構,包括基於微控制器的系統。 為此,micro-ROS [11] ,一種 ROS2 兼容的中間件,專為微控制器設計,也具有相同的發布-訂閱消息傳遞模式。 微型 ROS 節點集成了 ROS2 網絡,允許 ROS2 API 和工具以與“傳統”節點相同的方式與微型 ROS 節點通信。 * [用於 ROS 2 實時跟踪的多用途低開銷框架 ](https://ieeexplore.ieee.org/document/9772997) 在本節中,我們總結了支持後續部分所需的相關背景信息。 請注意,我們使用“ROS 1”來指代 ROS 的第一個版本,並使用“ROS”來泛指 ROS 1 和 ROS 2,因為許多概念都適用於兩者。 A. ROS 2 架構 ROS 2 架構有多個抽象層; 從上到下,或用戶代碼到操作系統: RCPP / 回复 , rcl , 和 RMW . 上面是用戶代碼,下面是中間件實現。 RCPP 和 回复 分別是 C++ 和 Python 客戶端庫。 他們得到了支持 rcl ,一個用 C 編寫的通用客戶端庫 API,提供基本功能。 然後客戶端庫實現提供應用程序級 API 所需的其餘功能。 這包括實現執行器,它們是高級調度程序,用於使用一個或多個線程管理回調(例如,定時器、訂閱和服務)的調用。 RMW 是中間件抽象接口。 每個與 ROS 2 一起使用的中間件都有這個接口的實現。 一個系統上可以安裝多個中間件實現,可以在運行時通過環境變量選擇所需的實現,否則使用默認實現。 從 ROS 2 Galactic Geochelone 開始,默認中間件是 Eclipse Cyclone DDS [24] 。 B. ROS 節點和包 ROS 基於發布-訂閱範式,也支持“服務”名稱下的 RPC 模式。 ROS 節點既可以在主題上發布類型化消息,也可以訂閱主題,它們可以使用和提供服務。 雖然系統中節點的粒度和語義是一種設計選擇,但由此產生的節點和主題結構類似於計算圖。 還有一些專門的節點稱為“生命週期節點” [25] 。 它們是基於標準狀態機的有狀態管理節點。 這使得它們的生命週期更易於控制,這對於安全關鍵型應用程序是有益的 [18] 。 節點生命週期也可以分為初始化階段和運行時階段,動態內存分配和其他非確定性操作被限制在實時應用程序的初始化階段。 至於代碼,在ROS中,一般會拆分成多個包,直接或間接依賴其他包。 每個包都有特定的用途,可以提供多個庫和可執行文件,每個可執行文件包含任意數量的節點。 ROS 生態系統是聯合的:包分佈在多個代碼存儲庫、不同的主機上,並且由不同的人編寫和維護。 ROS 2 源代碼本身由與其架構大致匹配的多個包組成。 C. 可用性和編排工具 與 ROS 1 非常相似,ROS 2 有許多用於內省、編排和一般可用性的工具。 有各種各樣的 ros2 命令,包括 ros2運行 運行可執行文件和 ros2主題 手動發布消息和內省已發布的消息。 包還可以提供添加其他自定義命令的擴展。 這 ros2 發布 命令是 ROS 2 編排系統的主要入口點,允許一次啟動多個節點。 這是通過 Python、XML 或 YAML 啟動文件配置的,這些啟動文件描述了要使用來自任何包或什至其他啟動文件的節點啟動的系統。 由於 ROS 系統可能非常複雜並且包含多個節點,因此編排系統是必不可少的。 啟動文件還可用於編排測試系統並驗證某些行為或結果。 D. 普遍性 圖 1 顯示了 ROS 2 架構和主要工具交互的摘要。 架構和啟動系統可以概括為一個編排工具,用於管理中間件之上的應用程序層。 因此,這封信中介紹的工具可以應用於其他類似的機器人系統。 ![](https://i.imgur.com/fbv4C6l.png) 總體 ROS 2 架構和工具交互。 * [PlanSys2:ROS2 的規劃系統框架 ](https://ieeexplore.ieee.org/document/9636544) ROS2 是 ROS 框架的新版本,它渴望成為機器人技術的標準,因為它的前身是事實上的。 其前身的主要區別在於它使用了航天器、飛機、超級高鐵或下一代汽車等關鍵系統中使用的數據分發服務 (DDS) 通信標準。 包括 DDS 作為其組件的粘合劑,ROS2 被賦予了新的能力,使其適用於對實時性、安全性和安全性有高要求的工業級移動機器人。 ROS2 在實時通信中嚴格的服務質量及其安全特性方面公開了 DDS 配置。 ROS2 還引入了託管節點(也稱為生命週期節點)的概念。 這些節點基於狀態和從創建到銷毀的轉換具有清晰的生命週期。 這些狀態是可觀察的,並且它們的轉換是在內部和外部觸發的。 作為應用程序一部分的節點的啟動過程是確定性的。 每個狀態和轉換都有明確的職責,包括內存分配、配置、通信管理、中央處理或錯誤處理,使使用它們的軟件可預測。 所有 PlanSys2 組件和機器人必須執行的動作的實現都是生命週期節點。 # GAZEBO 簡介論文 * [使用 Gazebo-ROS 設計和開發多移動機械手機器人 ](https://ieeexplore.ieee.org/document/9557660) 本文的目的是通過簡單易用但功能強大的模擬器為多移動機械手開發有效的 Gazebo-ROS。 該模擬器非常適合模擬多個移動機械手的協調行為,因為它可以直接移植到真實的機器人上,未來運行真實生活測試只需很少的改動。 問題目標包括確定移動平台和操縱器末端執行器的通信。 使用Gazebo ROS開發多移動機械手,需要安裝多主包。 這 多主機_fkie 允許 有 兩個重要節點: master_discovery 和 _ _ 主同步 節點同時運行。 開發多移動機器人的程序 在我們的工作中,我們採用多主機通信平台來實現使用 ROS [14] 。 A. 系統建模和描述 機械手系統可以樹形結構建模。 在 ROS 中,構建了統一機器人描述格式 (URDF) 來表示系統模型配置。 URDF 文件是一個 XML 規範,記錄了鏈接、關節、屬性、執行器和傳感器的全部物理信息。 所示 如圖 7 ,我們創建了部分機械臂 urdf 文件。 基本上,URDF 機械手由五個連桿和四個關節組成。 在 圖7 中,每個鏈接以不同的顏色表示。 每個連桿的設計都是根據實際形狀調整的,由伺服電機和支架組成,因此必須先經過CAD處理。 每個表格都是使用 CAD 軟件設計的,以調整其原始大小以生成具有該格式的 3D 設計文件。 STL。 在每個鏈接上獲得 .STL 設計文件後,使用 MeshLab 軟件調整中心點。 以便將 .STL 集成到 URDF 文件中時可以輕鬆使用。 MeshLab 軟件中該過程的最終結果以新格式導出,即 .DAE。 目標是在創建 URDF 時為文件嵌入更多信息,例如顏色和紋理。 在形成所有鏈接設計後,將以 XML 格式創建一個 URDF 文件,其中包含鏈接和關節位置、每個鏈接的形狀以及每個鏈接的顏色,如果它在 Gazebo 模擬視圖中生成,它看起來如圖 所示 7 . 第一個關節位於與父連接世界涼亭的座椅底座上。 此外,URDF 機械手必須與 URDF Festo Robotino 結合才能成為移動機械手。 這種組合非常簡單,因為它利用了可用的 URDF Festo Robotino。 只需將 URDF 操縱器上的第一個父鏈接關節從 world Gazebo 更改為 Festo Robotino 上的 Base Link。 機械手的位置在 Festo Robotino 的前面。 結果見圖 8 。 要實現握手場景,需要兩個移動操縱器,因此在同一個世界 Gazebo 中,移動操縱器必須生成兩次。 通過在URDF文件中加入namespace參數,生成兩次不同的namespace,這樣就可以出現兩個同類型的移動機械臂,如圖 9 所示。 * [使用 ROS 和 Gazebo 進行 Erle-copter 仿真 ](https://ieeexplore.ieee.org/document/9140476) 機器人操作系統 (ROS) 是用於機器人的元操作系統。 ROS 提供的服務類似於任何操作系統,可能包括硬件抽象、低級設備控制、進程間消息傳遞能力和包管理。 此外,它還為用戶提供庫和工具來幫助跨多台計算機構建、編寫和運行代碼。 通過使用 ROS,用戶可以使用多種通信方式,例如服務上的同步 RPC 式通信、主題上的異步數據流以及參數服務器上的數據存儲 [8] 。 ROS 目前既可以在基於 UNIX 平台的系統上運行,也可以在 Mac OS 系統上運行 [8] 。 Gazebo 是一種機器人模擬器,可用於在虛擬環境中為真實機器人創建應用程序。 該軟件可用於模擬具有真實世界參數的機器人,以可視化機器人在實際硬件測試環境中的行為。 Gazebo 模擬硬件旨在反映其在現實中的等效行為。 因此,客戶端軟件使用與真實機器人相同的界面 [9] 。 因此,這將節省直接在硬件上進行測試的時間和金錢,而無需了解機器人在物理世界場景中的實際行為。 使用 Gazebo 軟件的一個優勢是能夠模擬各種類型的位置傳感器,例如激光掃描、聲納和全球定位系統 (GPS)。 此外,在其庫中,它包含常用的機器人,可以對剛體物理進行逼真的模擬 [9] 。 * [使用 Gazebo 3D 模擬器的機器人平台的基於 ROS 的控制應用程序](https://ieeexplore.ieee.org/document/9257256/references#references) 該項目包括為基於 ROS(機器人操作系統)的機器人平台創建控制應用程序以及 3D 模擬器 Gazebo。 在本文中,我們描述了我們團隊使用 ROS 和 Gazebo 軟件模擬實際機器人構建所需的開發環境的設計和實現。 當今的機器人系統是複雜的硬件設備,具有許多由複雜的分佈式軟件管理的傳感器和控制器 [1] 、 [2] 、 [3] 、 [4] 。 機器人的目的是在不同的環境和不斷變化的條件下導航並成功執行特定任務。 然而,構建不同的測試場並評估機器人在不同條件下的行為需要時間。 使用完善的仿真環境可以對開發中的機器人系統進行安全且經濟高效的測試 [5] 、 [6] 、 [7] 。 儘管有多個用於機器人仿真和控制的軟件平台,ROS 系統 [8] 允許構建可靠機器人的控制和導航程序,而 Gazebo 模擬器與 ROS 的 RViz 庫一起幫助創建仿真,並且結果可以直接在實際機器人上實現。 使用 ROS 模擬真實機器人的主要貢獻是: 顯著減少開發人員調試時間; 創建特定於機器人將被送去探索的開發環境的地圖; 使用地圖作為後續機器人測試的輸入; 在機器人實際用於現實世界之前,機器人將探索的開發環境的模擬和可視化。 * [機器人 3D 模擬器的分析與比較 ](https://ieeexplore.ieee.org/document/8921035) 對使用機器人模擬器等計算工具感興趣的機器人研究人員應該熟悉以下術語: ROS 1 :機器人操作系統代表開發機器人項目的框架。 有了它,開發人員可以共享和/或重用一種方法來控制機器人。 ROS 是一種開源機器人軟件,一直在解決開發人員面臨的許多常見問題,例如坐標系轉換、運動規劃、通信和傳感器集成。 URDF 和 SDF: 通用機器人描述格式和模擬描述格式都使用 XML(可擴展標記語言)文件格式來描述機器人或環境的所有元素。 所示 如圖 1 ,URDF 表示單個機器人的描述,而 SDF 可以表示單個機器人或整個場景。 重要的是要提到 ROS 能夠解釋它們。 ![](https://i.imgur.com/66mgkr6.png) 要描述一個獨特的機器人,可以使用 URDF 和 SDF 文件,而只有 SDF 文件才能描述整個場景。 此論文是比較Unity、V-Rep 和 Gazebo此三個當前最多人討論的模擬器,比較不同方面的性能 Gazebo 是開源軟件 在ROS集成方面,Gazebo易於集成,有很好的物理引擎選項,Gazebo 提供了一個龐大的場景元素庫 Gazebo 需要通過 SDF 文件創建和編輯模型 Gazebo 需要插件來實現等效的特性。 Gazebo 是一套容易處理和開發的軟件,可以節省時間,但缺點是只對教育建議有免費許可。 [使用 ROS 和 Gazebo 進行移動機器人測試的仿真環境](https://ieeexplore.ieee.org/document/7790647) Gazebo 是 Player Project [21] 的一部分,允許在三維室內和室外環境中模擬機器人和傳感器應用。 它具有 客戶端/服務器 架構,並具有基於主題 的進程間通信發布/訂閱 模型。 Gazebo 有一個標準的播放器界面,另外還有一個本地界面。 Gazebo 客戶端可以通過共享內存訪問其數據。 Gazebo 中的每個模擬對像都可以與一個或多個 控制器 相關聯,這些控制器處理用於控制對象的命令並生成該對象的狀態。 生成的數據 控制器 )發佈到共享內存中 使用 Gazebo 接口 ( Ifaces 。 其他進程的 Ifaces 可以從共享內存中讀取數據,從而允許機器人控制軟件和Gazebo之間的進程間通信,獨立於編程語言或計算機硬件平台。 在動態仿真過程中,Gazebo 可以訪問高性能物理引擎,如 Open Dynamics Engine (ODE) [22] 、Bullet [23] Simbody [24] 和 Dynamic Animation and Robotics Toolkit (DART) [25] 、 用於剛體物理模擬。 面向對象的圖形渲染引擎 (OGRE) [26] 提供 Gazebo 環境的 3D 圖形渲染。 向 Client Server發送控制數據、模擬物體坐標, Server 對模擬機器人進行實時控制。 可以將 Client 和 Server 放在不同的機器上,實現分佈式仿真。 為 Gazebo 部署 ROS 插件有助於實現與 ROS 的直接通信接口,從而使用相同的軟件控制模擬和真實機器人。 這為真實機器人系統的測試和開發提供了有效的仿真工具。 B. 讚美 ROS [1] 是用於有效開發和構建機器人系統的庫、驅動程序和工具的集合。 它有一個類似 Linux 的命令工具、進程間通信系統和許多與應用程序相關的包。 ROS 可執行進程稱為 節點 ,進程間通信具有 發布/訂閱 模型。 通信數據稱為 Topic 。 Publisher 進程可以發布一個或多個主題,訂閱某個 主題 的進程可以接收其內容。 進程間通信庫允許輕鬆添加用戶開發的庫和 ROS 可執行文件。 此外,基於 ROS 的軟件是獨立於語言和平台的——它是用 C++、Python 和 LISP 實現的。 此外,它還有 Java 和 Lua [1] 的實驗性庫。 進程名稱解析和執行由 主 服務器調度。 ROS 軟件包包括許多傳感器驅動程序、導航工具、環境映射、路徑規劃、進程間通信可視化工具以及 3D 環境可視化工具等。 ROS 允許有效開發新的機器人系統,當與 Gazebo 等模擬中間件一起使用時,可以顯著減少開發可靠和高性能機器人控制軟件的時間。 C. 機器人與環境建模 在 ROS 中表示機器人和環境模型時,使用了 URDF(通用機器人描述格式)。 URDF 是一種在 ROS 中使用和標準化的 XML 文件格式,用於描述機器人模型的所有元素(傳感器、關節、鏈接等)。 因為 URDF 只能單獨指定單個機器人的運動學和動態屬性,為了使 URDF 文件在 Gazebo 中正常工作,添加了關於機器人姿態、摩擦、慣性元素和其他屬性的額外模擬特定標籤 [27] 。 這些屬性的添加使得原始 URDF 文件與原生 SDF(Simulation Description Format)Gazebo 的模型描述格式兼容。 SDF 可以連同完整的機器人模型一起完整地描述模擬世界。 添加到 URDF 文件中,可以輕鬆完成從 URDF 到 SDF 的轉換過程 通過將所謂的gazebo_plugins 。 gazebo_plugins , 可以附加到 ROS 消息和服務調用中,傳感器輸出和驅動電機輸入 [28] 即 gazebo_plugins 創建一個完整的接口( 主題 在 ROS 和 Gazebo 之間 )。 ROS下的控制進程互通是通過 進行發布/訂閱 對該 Topic 來實現的。 中有幾個可用的插件 gazebo_plugins [28] :Camera(用於模擬相機的 ROS 接口)、Multicamera(同步多個相機快門以一起發布它們的圖像——通常是立體相機)、GPU Laser、F3D(用於身體上的外力)、慣性測量單元 (IMU)、保險槓、差動驅動、滑移轉向驅動、平面移動插件等。 圖 1 顯示了將 URDF 格式轉換為 SDF 格式的結果。 # YOLO 簡介論文 * [YOLO](https://ieeexplore.ieee.org/document/7780460) 須引用此論文 * [基於改進Yolov3-Tiny的行人檢測算法在ROS框架下的實現](https://ieeexplore.ieee.org/document/9842037) 提到目標檢測算法,算法實現的敘述寫法,可以參考應用 * [基於YOLOv5和深度相機的目標檢測與測距技術研究](https://ieeexplore.ieee.org/document/9851025) 提到深度相機的計算模型,可以使用 YOLOv5 對象檢測是一項計算機視覺任務,可將圖像或視頻中的對象與其他不感興趣的區域區分開來,定位對象並識別對像類型。 隨著深度學習的發展越來越快,基於深度學習的檢測效率更高的目標檢測得到全面發展。 許多學者進行了深入的研究,得到了一些深度學習目標、檢測模型。 基於深度學習模型的目標檢測算法可以分為兩大類:兩階段檢測算法和一階段檢測算法。 YOLO系列中最具代表性的是one-stage detection算法。 2020 年 6 月,Ultralytics 團隊提出了 YOLOv5 模型,引入了全新的 Pytorch 訓練和部署框架,使得自定義模型可以用於檢測過程 [9] 。 YOLOv5算法有四種網絡結構,YOLOv5s、YOLOv5m、YOLOv51和YOLOv5x,它們在Backbone和Neck部分的CSP結構的寬度和深度不同,即卷積數和殘差塊數不同。 YOLOv5簡單網絡結構 如圖1 所示,其網絡模型分為四個部分,分別是Input、Backbone、Neck和Prediction。 ![](https://i.imgur.com/RSOt4Kh.png) Yolov5網絡結構圖 B. 深度相機 實現目標檢測與測距技術,離不開通過攝像頭測量特徵物體,同時獲取物體的顏色和深度信息。 本文使用 RGBD 深度相機作為目標檢測工具。 與傳統的單目和雙目相機相比,深度相機最重要的特點和作用是能夠主動獲取圖像的深度信息。 本文采用Intel REALSENSE D455結構光相機獲取目標的深度信息,如圖 2 所示。 左右成像器和紅外投影儀測量計量信息。 攝像頭通過USB接口連接到工控機。 圖 2. - Realsense d455 結構光相機 圖 2。 ![](https://i.imgur.com/oWA3eol.png) Realsense d455結構光相機 RGBD模型包括針孔相機和深度信息計算模型。 針孔相機模型示意圖 如圖3 所示 所示,深度信息計算模型如圖4 。 圖 3.- 針孔相機模型 圖 3。 ![](https://i.imgur.com/x8BlcKO.png) 針孔相機型號 圖 4. - 深度信息計算模型 ![](https://i.imgur.com/LVfWBf9.png) 圖 4。 深度信息計算模型 C. 編程和物理 目標探測與測距程序的開發系統為Ubuntu系統,開發語言為Python。 在 GitHub YOLOv5 下載目標檢測模型。 從RealSense網站下載D455工作程序。 將兩個程序進行融合,獲取D455工作程序中的RGB圖像作為YOLOv5的目標檢測輸入。 完成目標檢測後,通過D455深度讀取程序接收攝像頭到避難所的距離,從而實現對避難所的定位。 其工作流程如下: AGV運動。 深度相機工作。 檢測視頻流中的方形模塊。 獲取深度距離信息。 執行避難所定位。 D.模型訓練 在進行模型訓練之前,為避難所數據集創建了 1000 張圖像,然後對數據集中的所有圖像使用 Labelimg 進行標註。 實驗環境為基於Pytorch框架的Ubuntu18.04操作系統。 CPU:英特爾酷睿 I9-10900K,GPU:NVIDIA RTX 3090、24GB。 YOLOv5的十個預訓練模型的訓練參數設置如 表1 所示。 表 I. 實驗訓練參數 ![](https://i.imgur.com/pDqobXS.png) 在YOLOv5系列算法中,YOLOv51兼具檢測性能和速度,YOLOv51可以更好的應用到實際工程中。 因此,本文選擇YOLOv51作為目標檢測算法,使用避難所數據進行訓練。 訓練過程中各參數變化趨勢 如圖6 所示,YOLOv51可以從中得出曲線擬合狀態良好,參數趨於穩定。 所以,使用YOLOv51訓練數據得到的模型是可用的。 ![](https://i.imgur.com/rgVIIfP.png) * [基於Yolov5的機場場景多目標檢測 ](https://ieeexplore.ieee.org/document/9633567) YOLO算法將目標檢測問題看成一個回歸問題 [5] ,直接返回目標在圖像中的類型和坐標。 因此速度比RCNN算法快很多,是目前最好的檢測算法之一。 YOOLOv1 [6] 算法中,首先將輸入圖像劃分為7×7的網格,然後在每個網格中預測兩個邊界框和20個類別的概率,即一張圖片將有98個邊界框,然後根據設定的閾值去除概率較低的邊界框,最後使用NMS算法(非極大值抑制算法)去除多餘的邊界框,最後輸出結果。 YOLOv1的檢測速度有了很大的提升,但是其檢測精度還有待提高。 YOLOv2 [7] 算法在許多方面改進了 YOLOv1 算法。 它使用了5個Anchor boxes來提高算法的召回率,而這些anchor boxes是通過k-means算法計算出來的,更有利於YOLO算法的回歸。 還使用了很多科學的訓練方法,比如使用不同的數據集組合來擴大訓練範圍,聯合訓練來增加詞彙量和魯棒性。 網絡中採用batch normalization提高網絡收斂速度,加入passthrough層提高小目標檢測精度。 YOLOv3 [8] 算法主要藉鑑了一些好的解並融入到YOLO中,在保持速度優勢的同時提高了預測精度,尤其是對小物體的檢測能力。 YOLOv3採用Darknet-53網絡結構,借鑒殘差網絡思想,利用多尺度特徵進行目標檢測,並將YOLOv2算法中的Anchor box增加到9個,分別覆蓋大中小三個目標。 對於形狀,嘗試預測的框數比YOLOv2增加了十倍以上,因此mAP和小物體的檢測效果有了很大的提升。 YOLOv4 [9] 在 YOLOv3 的基礎上進行了多方面的改進和加強,只需要普通的 GPU 即可完成訓練。 作者將這些改進的方法稱為 Bag of freebies 和 Bag of specials。 例如Mosaic和CutMix的數據增強方法,DropBlock緩解過擬合的正則化方法,Mish激活函數,損失函數中CIoU的使用,可以加快收斂速度,更準確的預測Bounding box。 YOLOv5算法目前只有官方代碼,還在更新中。 雖然沒有和YOLOv4直接比較,但還是有很多突出的地方。 它比 YOLOv4 更小更輕。 有4種網絡模型。 最小的可以在移動端使用,可以在手機上檢測目標。 效果非常驚人。 YOLOv5使用了很多優化方法,使用GIOU Loss來計算損失函數,還加入了自適應Anchor box計算,自適應圖像縮放,在網絡結構中加入了Focus結構和CSP結構。 針對不同的網絡模型,作者提供了不同的網絡深度和寬度。 YOLOv5繼續使用Mosaic拼接圖像來增強模型的魯棒性。 Mosiac方法是一種數據增強方法。 4張 圖片隨機縮放、隨機裁剪、隨機排列拼接成一張圖片。 這不僅可以豐富檢測目標的背景和小目標的數量,還可以使算法在batch normalization計算時一次計算4張圖片。 這樣算法只需要一個GPU就可以達到更好的效果 [9] 。 * [使用 YOLOv5 進行垃圾分類 ](https://ieeexplore.ieee.org/document/9550790/references#references) YOLOv5 目標檢測算法 在目標檢測領域,YOLO [5] 是一種典型的基於深度學習的檢測算法。 具有良好的全局感受野、網格劃分、錨框匹配和多語義融合檢測機制。 與傳統的物體檢測方法相比,YOLO模型通過CNN直接預測圖像物體的邊界框和概率,從而有效提高檢測精度 [6] 。 然而,YOLOv1 也存在泛化能力弱、檢測精度低等問題 [7] 。 之後 YOLOv2 [8] 和YOLOv3 [9] 引入了 來逐步改善這些問題。 與 YOLOv2 相比,YOLOv3 在檢測性能上有很大的提升 [10] - [12] 。 YOLOv4 [13] 和最新的 YOLOv5 出現在 YOLO 系列中。 YOLOv5 基於 PyTorch 框架,其檢測速度非常快,可以達到 140 fps [14] 。 與之前的 YOLO 系列相比,YOLOv5 速度更快、精度更高,模型輕巧,適合部署到嵌入式設備中 [15] 。 YOLOv5採用了與YOLOv4相同的Mosaic數據增強方法。 通過隨機縮放、隨機裁剪和隨機排列拼接輸入圖像,提高小目標的檢測性能。 * [基於 DeepSORT 和 YOLOv5 的行人目標跟踪](https://ieeexplore.ieee.org/document/9692002/keywords#keywords) YOLOv5目標檢測算法 目標檢測是目標跟踪的基礎,通過它可以確定行人目標在視頻的每一幀中的位置,並在此基礎上實現對行人目標的跟踪。 目標檢測算法的準確性也會影響跟踪的準確性。 Utralytics在2020年提出了YOLOv5,它是在YOLOv3的基礎上改進而來的輕量級檢測網絡。 YOLOv5網絡結構由四部分組成:輸入端、Backbone、Neck和Prediction。 所示 如圖1 ,輸入端採用了Mosaic數據增強,針對不同的數據集也進行了自適應錨框計算和自適應圖像縮放。 然後,骨幹網採用focused結構,同時設計了兩種CSP結構,一種應用於Backbone骨幹網,一種應用於Neck; Neck部分為FPN和PAN結構,與YOLOv4不同,與YOLOv5的不同之處在於Neck結構採用了借鑒CSPnet設計的CSP2結構,增強了網絡特徵融合的能力; 輸出端採用Bounding box loss function來達到更快更好的收斂效果。 ![](https://i.imgur.com/Zdg26iQ.png) YOLOv5網絡結構 --- [基於Yolov5的機場場景多目標檢測 ](https://ieeexplore.ieee.org/document/9633567) (可以參考這篇論文中這段來寫自己的訓練過程) A. 數據收集 機場現場監控數據來自成都雙流機場高清攝像頭。 為保證數據的豐富性和有效性,採集的實驗數據需要滿足高清化、多樣化的要求,因此在機場內不同時間、多地點、多角度拍攝視頻以滿足要求。 然後通過截取視頻幀得到實驗圖片,丟棄不符合要求的圖片。 然後人為調整這些圖像,加入乾擾因素,通過改變圖像的亮度和對比度來增加模型的魯棒性。 由於YOLOv5模型在訓練時對輸入數據採用了Mosaic數據增強,因此沒有對數據進行拼接、遮擋等操作。 然後參照Pascal VOC數據集格式製作數據集,使用“LabelImg”軟件對數據集進行標註,生成XML文件,再對沒有目標的圖片進行去重,最後得到一個實驗數據集,大約3000張有效圖片。 數據按照8:2的比例分為訓練集和測試集。 訓練集有2370張圖片,測試集有607張圖片。 B、模型訓練 數據集製作完成後,使用準備好的數據集進行模型訓練。 實驗使用的硬件為NVIDIA 2070 GPU,軟件環境為pycharm編譯器和Pytorch深度學習框架。 首先將學習率設置為 0.001。 為了提高精度,在設備允許的條件下,預訓練的權重模型選擇為YOLOv5x,是YOLOv5中最寬最深的模型,但因此batch-size只能設置為2。訓練時,訓練過程中自動保存訓練日誌和最優訓練模型。 隨著訓練的進行,學習率降低到0.0001以提高檢測精度。 輸入圖像的大小為 608×608。 經過32次下採樣後,三種不同尺度的輸出特徵圖分別為19×19、38×38和76×76。 經過80代迭代訓練,損失函數穩定保存。 最優訓練模型後,訓練結束。 在訓練過程中,隨著訓練的迭代,mAP逐漸穩定在85%左右,召回率在98%以上。 訓練過程中各項性能指標的變化如圖2。 ![](https://i.imgur.com/zHkbf2r.png) 圖2:訓練期間的各種性能指標 C. 測試結果 使用訓練好的模型檢測測試集。 每張圖片的平均檢測速度約為0.023s。 如果是視頻,速度大概是43fps,平均精度大概是0.8577。 在測試中,模型會用方框標記檢測到的飛行器,並在方框上方標記物體類別和置信度。 效果 如圖3 所示。 可以看出該模型也可以很好地處理輕微的遮擋。 所示 該模型與其他檢測方法的性能比較如表一 。 mAP指平均精度,V fps 指每秒幀數。 --- [QR Code Detector and Follower with Kalman Filter](https://ieeexplore.ieee.org/document/10060570) 論文有使用文章中部分相關的卡爾曼濾波簡介的部分 [卡尔曼滤波](https://blog.csdn.net/Hachiko_BJTU/article/details/114795130) [卡爾曼濾波-wiki](https://zh.wikipedia.org/zh-tw/%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2) [基於opencv卡爾曼濾波(KalmanFilter)理論與實踐](https://www.twblogs.net/a/5d1deef2bd9eee1e5c834d40) --- # UI界面 ![](https://hackmd.io/_uploads/rkvpl9nN2.png) ![](https://hackmd.io/_uploads/HJc_x52En.png) ![](https://hackmd.io/_uploads/BkDkgc2V2.png) ![](https://hackmd.io/_uploads/HJwdO0E82.png) ![](https://hackmd.io/_uploads/ByvaTxSIh.png) --- [用於車輛中心坐標軌跡預測的高斯過程自回歸](https://ieeexplore.ieee.org/document/8929719)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Google Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully