###### tags: `程式組工筆` # 2023 賽季工筆 # 20230125(三) ## Image Recognition ### 陳伯豪 ``` MEMO 1. ctrl c -> stop terminal you will absolutely want to use this command while running anything related to apriltag 2. make sure webcam can be used on my laptop 2-1. didn't know if webcam can be used on robot Cuz i don't know where to plug the webcam lmao 3. setup apriltag 3-1. finish install newest version v2023.1.2, here is the link. -> https://github.com/PhotonVision/photonvision/releases 3-1-1. remember to download the **photonvision-v2023.2.1-winx64.jar** one 4. PhotonLib: Robot Code Interface 4-1. Installing PhotonLib ( library ) 4-1-1. notice to install online, cuz the offline one is still work-in-progress -> https://maven.photonvision.org/repository/internal/org/photonvision/PhotonLib-json/1.0/PhotonLib-json-1.0.json ``` :::warning **NO 1** I think this is really IMPORTANT when you want to set up your environment or start to use apriltag. [This screenshot is in the bottom of this page](https://docs.photonvision.org/en/latest/docs/getting-started/installation/sw_install/windows-pc.html) ![](https://i.imgur.com/vPmYvMh.png) **NO 2** something i think is very important, too. [Link](https://docs.photonvision.org/en/latest/docs/getting-started/installation/networking.html#) its pictures ![](https://i.imgur.com/4YAcDwY.png) **NO 3** [Website](https://docs.photonvision.org/en/latest/docs/programming/photonlib/index.html) teach you how to use apriltag ![](https://i.imgur.com/AoeNdCX.png) ::: ## Chassis ### 倪睿宏 * 早上我跑去拆機器人 清場地 還有其他雜工 * 本來要測Andymark底盤車結果壞了 顯庭幫我修 * 研究PathPlanner Lib 結果發現蠻多東西的 要花一些時間研究 * todo:PathPlanner, SetPointPID * Chassis的Prototype Code有放在GitHub了 * Andymark底盤成功修好了,但是兩邊轉速不一樣,Victor沒有Encoder也很難用程式調整,不過至少能正常動起來 * 自動模式的軌跡追蹤還不知道怎麼寫,明天先從Charge Station的PID下手 * 結果現在的底盤車沒有Encoder,所以還是得先從PathPlanner下手 哭 # 20230126(四) ## Image Recognition ### 陳伯豪 ``` MEMO 1. Github 1-1. 完成push 1-1-1. Markdown 要排時間講如何寫 1-1-1-1. 格式 1-1-1-2. 之後每個人要寫之前都要先 pull 下來再開始寫,不然之後 push 會有 error 1-1-2. 同 Hong 寫的,之後要統一很多東西 1-2. 解決Github相關問題 2. Update 2-1. WPILib VS Code 2-1-1. 更新到2023版本 2-1-2. 要把檔案更新 2-2. Library 2-2-1. 之後都使用 Manage -> Online 2-2-2. Library 的整理彙整我放在下面,建議每個人把他寫成 .txt 檔案放桌面 3. Apriltag 3-1. 所有的程式備註我都放在Github的Markdown裡面了,可以直接去Github找 ``` :::info **Library 整理彙整** , * Kauai Labs ``` https://dev.studica.com/releases/2023/NavX.json ``` * REV Robotics REVLib ``` https://software-metadata.revrobotics.com/REVLib-2023.json ``` * PhotonVision ``` https://maven.photonvision.org/repository/internal/org/photonvision/PhotonLib-json/1.0/PhotonLib-json-1.0.json ``` * Phoenix ( Pro and v5 ) ``` https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2023-latest.json ``` **NOTICE** Phoenix 一定要用 v5 或是 Pro and v5,不然你會抓不到馬達(TalonFX)的 library ::: ## Chassis ### 倪睿宏 * 未來開會討論事項: * Git Commit 訊息規範 * Pull & Push 相關注意事項 * 常數 & 函數命名與寫法規範 * 程式分工 * 雖然說GitHub Repo的Markdown要打Feature,但也不至於這麼誇張那麼多啦,這些感覺可以私底下傳Discord就好,不然真的會看到眼花 * 重點是Commit訊息要清楚:簡短但明確 * (雜工閒話) 今天早上被姜在宬找去分螺絲ㄏㄏ,下午又被幫幫找去切角鐵 * 今天我研究了PathPlanner的寫法,總算找出追蹤路徑的方法了 * PathPlanner只是幫助我們畫路徑的一個工具,它本質上只是Wpilib Trajectory System的一個外掛插件,所以我跑去看了官方的教學Docs * 最後完成的程式我放在GitHub,下禮拜底盤出來就能測了,雖然還需要一些優化 * 2/18 有南科模擬賽,我們得加緊腳步! * 明天Todo:完成SetPoint PID,優化Auto程式 ## SuperStructure ### 彭柏鈞 #### 今日進度: - 和王敬銜討論了機械手臂的運作方式 1.**絕對座標(X,Y,Z和rotate)**--以車子上的其中一點為原點(0,0,0)紀錄爪子當前所在位置及面朝方向,並用transform3D()來算出並讓手臂能正確抵達需要到的位置 2.**挖土機**--直接以搖桿來操作手臂,分別將leftstick和rightstick的X軸和Y軸共四個控制方向來操作機器人 * 這方法比較好用程式實行,但相對操作難度比較大 - 自動模式就讓它跑到指定地點用指定高度來算就好 # 20230127(五) ## Image Recognition ### 陳伯豪 ``` 2. -> I2 -> Enable Login : pi Password : FRC7130 sudo raspi-config sudo service photonvision status ifconfig sudo shutdown -h now ``` ## Chassis ### 倪睿宏 * 學會如何Code氣動 * 優化了Path Following的程式,把它寫成一個Command * 完成Intake的程式 # 20230128(六) ## Image Recognition ### 施暄庭 #### **photon API** - hasTarget boolean Whether the pipeline is detecting targets or not. - targetPitch double The pitch of the target in degrees (positive up). - targetYaw double The yaw of the target in degrees (positive right). - targetArea double The area (percent of bounding box in screen) as a percent (0-100). - targetSkew double The skew of the target in degrees (counter-clockwise positive). #### **AprilTags Locations** ![](https://i.imgur.com/I8WlEC9.png) # 20230130(一) ## Chassis ### 倪睿宏 未來研究事項: * 路徑規劃 x 手臂移動的方法 * 把機器人鎖在充電台上的方法 ## Imagine ### 陳伯豪 ``` MEMO 1. Solenoid 1-1. PDP 記得接保險絲 ``` # 20230131(二) ## SuperStructure ### 吳玠廷 #### 今日進度: 1. 研究出氣動(測試完成) 2. 測試底盤(鋁管歪掉不能走直線,機械組在重做) 3. 測試grabber arm(原本氣動兩段式改成夾三角錐單邊夾,抓方形夾單邊) #### 問題解決: 1. ontrue/onfalse不支援Lambda所以改成 ```java new JoystickButton(js1, OIConstants.Btn_A).onFalse(grab); ``` ### 彭柏鈞 #### 今日進度: - 和Gayting一起寫完了氣動程式+測試 - 上傳Github😦 #### 問題解決: - 氣動排除koff函式只用kforward和kreverse - 上傳Github問題用"-f"~~硬推上去了~~ # 20230202(四) ## Image Recognition ``` MEMO 1. 從FABLAB借了樹梅派4與盒子,短HDMI線與轉接頭 2. 樹梅派接ROBOT鏡頭找不到待處理 ``` ### 今日進度 1. Apriltag update to v1.2 2. Apriltag update to v1.2.3 ### 問題解決 - 重灌一次樹梅派,並使用指令確認是否有讀取到鏡頭,然後接上機器人就好了 ``` v4l2-ctl --list-devices ``` ``` v4l2-ctl --list-formats ``` - 但有發現了一個問題,在插上相機後,會導致樹梅派啟動程序重啟,是否會影響到運作,有待觀察 ~~考驗人品的時候~~ ### command撰寫 基礎原理: - 使用getBestCameraToTarget()函數將相機至目標的位移量以三維向量表示 > X正-->前 > Y正-->左 > Z正-->上 - 分別使用前進和轉彎之PID進行機器速度之定義 AUTO 應用: - 加入辨識ID之函數getFiducialId() - 依據場地ID配置設定出追縱ID的排序 - 在未找到特定ID之AprilTag時以一特定速度旋轉旋轉盤(預想) ## Superstructure ### 彭柏鈞 今天只有我來好孤單🥲但手臂那些的都還沒做好也就很難處理了 #### 今日進度 - 將只有手動操控的手臂程式打好了 - 上傳Github + 終於弄懂Git那~~天殺的~~邏輯了 <img src="https://imgur.dcard.tw/iccjoSSh.png"></img> #### 問題解決 - Git上傳Github一直卡的問題(不用-f) * 用新branch之後再merge就好 # 20230203(五) ## Superstructure 利用 - Transland2d(3d) - Rotation2d(3d) - Transform2d(3d) 完成手臂到Track conter的座標轉換 ### Prototype_Arm 1. 目前選擇用搖桿操控,X軸控制spinner、Y軸控制手臂 2. 手動完成(還沒測試過) ## Chassis * Intake 程式完成 * Charge Station LockPID 程式完成 * Todo: Auto動作串聯 * Refactor intake code # 20230204 (六) ## Chassis * Intake button bindings -> Down + Run 合併成一個動作 * 研究 pathplanner ### Paths 命名原則:<起始位置> - <獲取物件數量> - <是否登上充電台> e.g. Pos1 - 1B - C 起始位置在Pos1 獲取1個遊戲物件 會登上充電台 * Pos1-2B * Pos1-1B-C * Pos2-2B * Pos2-1B-C * Pos3-2B * Pos3-1B-C :::danger PathPlanner 有自動鏡像功能,所以紅藍聯盟的路徑只要畫一次就好。 ::: # 20230205(日) ## Chassis * 路徑我全刪了 還沒重畫 * 底盤確定能動了 * CANCoder能正常傳輸訊號 但數值出來都是0 不知為啥 * Auto沒測 因為Encoder還沒好 * 做場地囉 * 他們說有訂了4隻XBOX搖桿 # 20230206(一) ## Chassis * 今天將Encoder數值回傳的問題修好了,問題是出在PID公式的除法 ### 陳伯豪 今天有把底盤的 LockPID 寫好了,之後等東西弄好之後再去調整數據就可以了 然後有改動的地方我已經放在 Github 上面了 ## Imagine ### 陳伯豪 今天就優化一下程式然後處理一下Github的東西 # 20230207(二) ## Chassis * 路徑全部畫完了,總共45條,可模組化自由選配,但有一些曲線拉的不太好,要再修一下。 * 今天測試了昨天伯豪寫的LockPID,結果非常成功,感謝! * 晚上跟Henry測試了Ramsete PathFollowing,結果Enable車子直接暴衝,發現是Odometry沒辦法正確抓取車子的位置,導致程式以為車子還停在原地就一直無腦加速。 * 目前有兩種解決方案: 1. 自己寫一個 2. 去研究Wpilib是怎麼算的,在看哪裡出問題 * 今日成就解鎖:開底盤車開到馬達掉下來AwA # 20230208 (三) ## Chassis * 今天發現Odometry的問題所在了,原本應該是更新機器人的位置的程式,我寫成重設機器人位置了哈哈哈,禮拜四再去測試看看 # Chassis 總統整 ## 倪睿宏 ### Spark Max