徐明瑄

@ming0071

https://github.com/ming0071

Joined on Mar 20, 2023

  • mechatronics system main (sencor + tf + chassic) cd ~/ros2_ws/ source install/setup.bash ros2 launch scl_amr mechatronics.launch.py keyboard control ros2 run teleop_twist_keyboard teleop_twist_keyboard TF + sensor cd ~/ros2_ws/ source install/setup.bash
     Like  Bookmark
  • Git 與 GitHub 的區別 首先初學者很容易會搞混的是 Git 和 GitHub 是不同的東西 Git 是一個版本控制工具,就像玩遊戲時儲存進度一樣,可以保存專案的歷史紀錄。當出現問題時,透過 Git 可以「回到」先前的版本,防止因錯誤導致資料遺失或破壞。 GitHub 則是一個雲端儲存平台,用來存放 Git 儲存庫(repository, repo),也方便與其他人協作開發專案。GitHub 提供遠端版本控制的功能,讓多個人可以在不同的設備上共同工作,並且同步專案進度。 安裝 Git 在 Windows 上使用 Git 需要先進行安裝。可以由 git for windows 下載。安裝完成後,即可使用 Git 進行版本控制。 git-flow Image source
     Like  Bookmark
  • 參考資料 : ROS 2 導覽調整指南 – Nav2 AMCL alpha1~5: 0.01 使amcl更信賴odom的資訊 laser_model_type: "likelihood_field_prob" 比較精準 max_particles: 2000 → 2500 更多粒子數 min_particles: 500 → 1000 更多粒子數 update_min_a: 0.2 → 0.05 更新位姿(弧度) update_min_d: 0.25 → 0.05 更新位姿(米) scan_topic: scan_hokuyo topic 來源
     Like  Bookmark
  • ROS2 Jazzy install ros2 jazzy 建議使用 Debian 方式安裝,請參考官方安裝指南進行 echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc echo "export ROS_DISTRO=jazzy" >> ~/.bashrc rosdep 安裝與更新 sudo apt-get install python3-rosdep sudo rosdep init
     Like  Bookmark
  • AMR 實體圖 ![SCL AMR](https://hackmd.io/_uploads/HkIytk-_el.png =350x) AMR在構造上主要可以分為感測器部分、底盤部分。 感測器 詳細的設定與介紹在 ROS2 hokuyo、velodyne 設定 Velodyne VLP-16 Puck 3D LiDAR 作為 3D 點雲資訊的蒐集,提供建圖、定位使用。
     Like  Bookmark
  • Hokuyo urg_node2 連接設定 hokuyo ip前面的 hokuyo 設備 ip:192.168.0.10 後面的 hokuyo 設備 ip:192.168.1.11 Ubuntu 網路設定檔由於把遮罩設為255.255.255.0,因此位址的前三碼跟設備 ip 相同就好,像是下面的後 hokuyo,位址設為192.168.1.100 ,而閘道不必設定。 ![hokoyo back](https://hackmd.io/_uploads/ryKFQRiRke.png =500x) 使用指令檢查連接: ping 192.168.1.11 or ping 192.168.0.10
     Like  Bookmark
  • What is micro-ros ? 基於 Micro XRCE-DDS Client 構建的 package,使 ROS 2 可以與資源受限的嵌入式平台上通訊 微控制器可以透過串口、藍牙、乙太網路、Wi-Fi 等多種協定將數據傳遞給Agent,Agent 再轉換成 ROS2 的 Topic 等資訊,以此完成通訊 ![micro-ros structure](https://hackmd.io/_uploads/SkhbF1FxJx.png =500x) 透過 RCLC-API 呼叫 MicroROS,程式碼風格和在上位機中使用 Python C++ 呼叫 MicroROS 有所不同 下位機:micro_ros_arduino 在嵌入式平台安裝 Micro-ROS 需要經過一系列的建立、設定、建造和刷新過程。將 Micro-ROS 整合到 Arduino IDE 中可以達成這些步驟。 設定流程,以 ESP32 為例:
     Like  Bookmark
  • URDF URDF 是用來描述機器人硬體結構的文件,通常由 base_link 開始,展開到各種感測器、輪子、相機等設備。 在 ROS 中,URDF 有兩種主要的協定,以下有官方的說明連結以及程式碼實現範例。而我正在將實驗室的舊有 URDF 從 REP 120 轉換到 REP 105,因為我認為 REP 105 更符合 AMR 的特性: REP 105 協定:適用於移動平台的座標系 座標系簡化為僅包含 base_link,更加簡潔 我的改版 URDF REP 120 協定:
     Like  Bookmark
  • Ubuntu 系統重灌 下載 Ubuntu iso 檔注意,若使用 AMD GPU,建議不要選擇 22.04 版,可能會發生相容性問題導致無法安裝。 使用 Rufus 工具製作 Ubuntu 開機隨身碟Rufus 載點![image](https://hackmd.io/_uploads/HJcTYE120.png =275x) 安裝 Ubuntu 插入 USB 隨身碟,開啟電腦後進入 BIOS 設定(ASUS 機型通常按 F2 進入),選擇從 USB 開始安裝流程。 安裝時選擇「最小安裝」以降低系統資源需求。 Ubuntu 一般設定
     Like  Bookmark
  • OpenCR controller CPU 為 STM32F746ZGT6,時脈 216Mhz 具有 MPU9250 可做為 IMU Arduino IDE 中需要安裝的 libraries 這是在底盤中有用到的兩個額外套件,需要自行安裝 library micro-ros git clone https://github.com/micro-ROS/micro_ros_arduino.git -b humble PID_v1
     Like  Bookmark
  • ROS2 humble install ros2 humble 建議使用 Debian 方式安裝[^註腳],請參考官方安裝指南進行 echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc echo "export ROS_DISTRO=humble" >> ~/.bashrc rosdep 安裝與更新 sudo apt install python3-rosdep2 rosdep update 機電系統 Packages
     Like  Bookmark
  • 建立一個 package 用指令直接創造出一個包,不要自己生成文件,會編到瘋掉... 可以選用 ament_cmake 或 ament_python 來編譯,package name 是 scl_amr ros2 pkg create --build-type ament_cmake --license Apache-2.0 scl_amr 以 ament_cmake 來編譯的話需要對 CMakeLists.txt 修改,讓自己另外新增的資料夾在編譯時也會同步新增到 install 內,如 launch、config、urdf cmake_minimum_required(VERSION 3.8) project(scl_amr)
     Like  Bookmark
  • Install ( noetic ) hdl_graph_slam 在 hdl_graph_slam 的 github 下載 package 到自己的電腦上 sudo apt-get install ros-noetic-geodesy ros-noetic-pcl-ros ros-noetic-nmea-msgs ros-noetic-libg2o cd ~/catkin_ws/src git clone https://github.com/koide3/ndt_omp.git git clone https://github.com/SMRT-AIST/fast_gicp.git --recursive git clone https://github.com/koide3/hdl_graph_slam
     Like  Bookmark
  • 這是在碩一上的自動光學檢測這門課的做了一個期末專案,目的是要檢測出排列好在桌上的圓管缺陷,看否有凹陷、突起的情況發生,藉由光學檢測的形式標記 NG 品出來,本專案的程式也有公開在GitHub提供有興趣的人參考。 專案方法是由工業相機對金屬圓管取像之後,再由 C++ 結合 OpenCV 函式庫進行後續的影像處理,本篇文章主要針對軟體上影像處理的過程進行說明。 以下是專案中的圓管的實際照片示例: ![AOI-tube](https://hackmd.io/_uploads/BJlVjFBg2A.png =300x) 程式流程圖: ![AOI-code-flow](https://hackmd.io/_uploads/BJW3tSgh0.png =700x) 圖片預處理 第一步讀取經由工業相機拍攝之後的照片,後續經由中值濾波、二值化、開運算等基本影像處理後,接著提取出最外輪廓去除(即最大面積輪廓),得到僅保留內圓輪廓的效果,確保後續的霍夫測圓可以只抓取內圓的特徵做後續的影像辨識。
     Like  Bookmark
  • 當要執行任何程式語言時都需要有 編輯器 + 編譯器,其中編輯器負責 coding 的介面,讓使用者可以方便而美觀的修改程式;編譯器負責編譯程式碼,把程式碼轉譯成機器碼後執行,兩者都準備好了才能夠好好的執行程式。 以下是透過 Visual Studio Code( VS Code )作為編輯器,MinGW 作為編譯器,執行 C/C++ 的方法。 安裝 VS Code 編輯器 首先到 VS Code 官網上安裝應用程式,基本上都是按下一步繼續安裝就可以了。 安裝完成之後需要再安裝執行 C/C++ 所需的延伸模組,在左側延伸模組搜尋Code Runner & C/C++並安裝。也推薦安 Chinese (Traditional) Language Pack for Visual Studio Code 繁中模組在後續的過程更方便的操作。 再來按下 Ctrl + , 搜尋 code runner terminal 把 Whether yo run code in integrated Terminal. 的選項打勾,這樣程式就可以透過按下右上角的三角形符號在終端機執行了,省去都要輸入 g++ [檔案名稱] -o [編譯後檔案名稱] e.g. g++ test.cpp -o test 這樣指令編譯程式的麻煩。
     Like  Bookmark