# Dingo 期末報告 >[HackMD連結](https://hackmd.io/@DingoBell/SJLhv6JNxg) >[ 期中報告](https://hackmd.io/PU-IMZr-T4qc0oHrfqBXpQ?both) >[Slide](https://docs.google.com/presentation/d/1PcN57-9hIHpBcS6xbGaHTz6qPtMZRbfjDCU5KOzFcwc/edit?slide=id.g36882a821f8_0_0#slide=id.g36882a821f8_0_0) ## 電量偵測修復 我們發現LCD螢幕上顯示的電量會一直卡在99% ## 電量顯示檢測 ### 排查邏輯 設定log在ROS運行時 如果不變 → 檢查 topic 名是否生效 / 檢查百分比計算、round() 邏輯 如果 log 顯示在變,但畫面不變 → 或 ImageDraw 坐標是否把新值畫進去了 依序檢查每個節點的output - 快速測試方式: 將 battery line 接到直流供電器直接改變電壓來看液晶螢幕上面的值有沒有變 電壓電阻分配正常,而程式碼在經過測試後要吃到2.1-1.9V電壓才會改變,但PCB分壓結果為4.5-3V,後續應該會採用更改程式碼,修正成4.5-3V range,並再次測試 ### 排查結果 發現問題1: BOM表上面的電阻值錯誤! 電路圖上面為22k電阻,但實際購買的是47k電阻,算完分壓後,應購買22k才是正確的! 發現問題2: PCB的分壓為4.5-3V, 但arduino中推算相對電量的程式需要2.1-1.9才會改變,重新調整範圍 ## 腳部結構穩定度不足 1. Bambu A1設定: 在 Leg Offset Mod 的.gcode檔案中,到 Layer43 設定 Pause,手動把培林放進去再繼續列印 2. 加入螺絲膠 ## IMU 原本的package中並沒有IMU節點,需要加入作為強化學習的sensor ==-> 在dingo.launch新增IMU節點== `imu_publisher.py` ### 新增步驟: - 建立坐標系廣播(TF) - CMakelists.txt變更 - find_package、catkin_package、catkin_install_python - 對應的package.xml - 查找ros msg and topic - 開rviz檢查是否有IMU相關節點資料 :::spoiler rosmsg show sensor_msgs/Imu ```bash= $ rosmsg show sensor_msgs/Imu std_msgs/Header header uint32 seq time stamp string frame_id geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w float64[9] orientation_covariance geometry_msgs/Vector3 angular_velocity float64 x float64 y float64 z float64[9] angular_velocity_covariance geometry_msgs/Vector3 linear_acceleration float64 x float64 y float64 z float64[9] linear_acceleration_covariance ``` ::: ### 移動控制問題 1. 修改部分 `InputInterface.py` 中xbox對應ps4按鈕的問題,現在可以[踏步](https://youtube.com/shorts/Xw4FGWJ9rDc?si=j0AFEoZbxDPZq5Tc)了 2. 了解整個控制流程,之後debug應該可以更順利([chatgpt對話紀錄](https://chatgpt.com/share/68333422-5700-8001-a54b-cc01d654d2e6)) 3. 接下來要解決前進的問題 4. 也發現沒辦法支撐自己 -> 新的腳掌還沒實裝 5. E-stop會一直被按下 ### 行走的控制已經完成 修改ps4搖桿對照到xbox搖桿 走路方式:先按下y進入指令模式,接下來按下x開啟走路模式,在走路模式下就可以使用左蘑菇前進後退 ### 問題:沒辦法承受負載 正常行走後,把狗放在地上卻沒辦法如預期移動 1. 檢查機構是否有正常安裝 在檢查過後發現,螺桿的長度有一隻特別長,沒有鎖到底 2. 測試馬達力量是否足夠 3. 嘗試使用巧拼作為增加地面摩擦力的方式 ### 鏡頭架 設計完成,使用M4-10mm螺絲固定相機 (相機背部6mm,底座厚度3mm)  ## 決策模型訓練 環境: ``` $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 158 Model name: Intel(R) Core(TM) i7-9700F CPU @ 3.00GHz Stepping: 13 CPU MHz: 4456.526 CPU max MHz: 4700.0000 CPU min MHz: 800.0000 BogoMIPS: 6000.00 Virtualization: VT-x L1d cache: 256 KiB L1i cache: 256 KiB L2 cache: 2 MiB L3 cache: 12 MiB NUMA node0 CPU(s): 0-7 $ python3 -V Python 3.8.10 ``` 平台:```Isaac Sim 4.5.0``` ### 進度 #### 1. 建置環境(80%) - 包括```ground```, ```light```, ```camera``` 以及 ```robot``` - ```robot```的`foot`因為技術問題一直讀取不到,導致後面設定獎勵函數有問題 #### 2. 設定`ObservationsCfg`(60%) - 身體的速度與角速度,並且加上noise(即`IMU`輸入) - `projected_gravity`,重力加速度投影 - 前進方向指令 - 前一次的動作輸出 - 關節速度與關節位置(之後為了符合我們的機器狗會刪除) - RGB相機(還未加入) #### 3. 設定```ActionsCfg```(100%) - 所有12個關節的馬達 #### 4. 設定```EventCfg```(90%) - 一些初始化設定包括摩擦力,質量等的隨機初始化,但因還不確定載重設定確切的數值 - 設定要機器人朝向的方向 #### 5. 設定```RewardsCfg```(60%) - 沿著指定方向前進 權重:1.0 - 往其他方向前進 權重:-0.05 - 腳停留在空中 權重:0.5 - 大腿碰到地板 權重:-1.0 - 應該要加上觸發中止條件時的負權重`reward` - 腳停留在空中目前設定是用小腿偵測,應該改成腳底 #### 6. 設定`TerminationsCfg`(100%) - 身體碰到地板時重置 ### 目前問題 - 訓練出來的狗幾乎不會動,只維持站姿 推測是因為腳停留在空中的偵測條件不正確 - 雖然不太會跌倒,但應該要做到100%不會倒 推測是沒有加上當觸發跌倒時的負權重獎勵 - 初始設定還未調整好 - 關節移動限制範圍還未設定完成 [決策模型成果影片](https://youtu.be/hEkcGRbYn7U) ## ## 補充tips ### 網路設定修改 可以進去netplan/50......yaml 改設定 改完輸入sudo netplan apply ## 進度表  BOM更新 新增一台D455 rgb深度攝影機 ## 未來展望 - 串聯影像辨識模型,透過深度相機快速辨識障礙並自動繞過。 - 負載約1.5公斤的物品(模擬救援物資或偵測儀器),並確保依然能有效執行任務並維持步態穩定。 - 定點巡航、繞行工科系館。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up