<style>
.reveal {
font-size:32px;
}
</style>
# 視覺地形辨識機器狗
## 6/11 進度報告
----
#### 組員:
#### E94111059許評詔、E94116130陳寬宇
#### E94116148蘇凡誠、E94116279魏君伃
#### E94114073張哲維
---
# 本周進度
---
### 行走的控制已經完成
修改ps4搖桿對照到xbox搖桿
走路方式:先按下y進入指令模式,接下來按下x開啟走路模式,
在走路模式下可以使用左蘑菇前進後退
[Demo Vedio
](https://www.youtube.com/shorts/NnvgaWCdxPk)
---
### 鏡頭架
設計完成,使用`M4-10mm`螺絲固定相機
(相機背部6mm,底座厚度3mm)

---
## IMU
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
```
https://wiki.ros.org/ros_imu_bno055
https://www.ncnynl.com/archives/202203/5075.html
----
### IMU校正
1. 加速度計 (Accel) 校正:
保持感測器水平,輕輕且緩慢地把它翻到各個面(上下、左側、右側、前後),每個面停留一點時間。
2. 陀螺儀 (Gyro) 校正:
把感測器保持平穩,持續以固定角速度繞各軸旋轉,並且中間停頓歸零。
3. 磁力計 (Mag) 校正
以「8」字形在空中揮動感測器,確保所有方向都被掃過。
----
完成校正後,就可以在 RViz/rqt_plot 或其他 downstream node 看到穩定、正確的姿態、加速度與方向資訊了!
(校正圖片還沒放)
----
## IMU節點加入系統中
1. 在`dingo_peripheral_interfacing/scripts`建立`imu_publisher.py`
2. 設置`frame_id(imu_link)`、`topic(imu/data_row)`,
3. 加入`imu = IMU()`以抓取IMU.py的數據,並透過covarience校正誤差
----
仍在熟悉ROS系統怎麼加入, 需要修改CMake File
```diff
@@
-find_package(catkin REQUIRED COMPONENTS
- rospy message_generation std_msgs
+# ─── 新增 sensor_msgs / geometry_msgs / tf ───
+find_package(catkin REQUIRED COMPONENTS
+ rospy
+ std_msgs
+ sensor_msgs
+ tf
+ message_generation
)
@@
-catkin_package(
-# INCLUDE_DIRS include
-# LIBRARIES dingo_nano_interfacing
- CATKIN_DEPENDS rospy message_runtime
-# DEPENDS system_lib
-)
+# ─── 把新依賴放進 CATKIN_DEPENDS ───
+catkin_package(
+ CATKIN_DEPENDS
+ rospy
+ std_msgs
+ sensor_msgs
+ tf
+ message_runtime # 你已有 ElectricalMeasurements.msg,所以保留
+)
@@
-## Mark executable scripts (Python etc.) for installation
-## in contrast to setup.py, you can choose the destination
-catkin_install_python(PROGRAMS
- scripts/battery_voltage_checking.py
- DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
+## ---------- 安裝 Python 腳本 ----------
+catkin_install_python(
+ PROGRAMS
+ scripts/battery_voltage_checking.py
+ scripts/imu_publisher.py # ★ 把新節點列進來
+ DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+)
+
+## ---------- 安裝 Python 函式庫 (IMU.py) ----------
+# 這一步會把整個目錄複製到 /opt/ros/…/site-packages,
+# 任何節點都可以 `import dingo_peripheral_interfacing.IMU`
+install(
+ DIRECTORY src/dingo_peripheral_interfacing
+ DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION}
+)
```
---
## 訓練模型
1. 把 isaac lab 剩下的[文檔](https://isaac-sim.github.io/IsaacLab/main/source/tutorials/03_envs/modify_direct_rl_env.htm)看完
2. 看了 [Isaac Lab: Custom Environment Training. A Step-by-Step Guide](https://www.youtube.com/watch?v=o9Bym5mOl2k)
3. 嘗試修改 Isaac Lab 中 宇樹機器狗A1訓練腳本 作為訓練腳本。
4. 展開 dingo.urdf 中的 xacro,因為 Isaac sim 不支援讀取
5. 利用 Isaac sim 將 `.urdf `檔轉成訓練需要的 `.usd`
----
### 遇到的問題
1. dingo 的部件命名方式與isaac規定的格式不同
解決方法:從urdf檔重新命名部件
2. 讀取不到foot部件
解決方法:修改joint改成continue
3. 問題:計算``獎勵函數權重``的時候,出現`nan`,目前推測試是因為把連接foot和calf的關節設成continue
---
# The End
{"title":"簡報","slideOptions":"{\"theme\":\"night\"}","description":"最近老胡 Yu-sheng Hu 啟動了大哈讀書計畫,要花兩年的時間把整本3000多頁的大磚塊唸完。痛點在於每次做簡報很煩,要把教科書的內容變成投影片,會有很多機械式的剪貼跟排版。做到讓人覺得厭世。因此想研究如何在有限時間內用最快的速度做簡報(此方法也適用報paper)。在這樣的背景下,只要能把重點條列式地呈現出來就可以。第二順位就是要快。通常美編不重要,字不要太小就好。以下是摸索出的解決方法。主要使用hackmd的簡報功能。","contributors":"[{\"id\":\"91cfbd40-cf95-47f7-99ac-bc89aba185c7\",\"add\":5266,\"del\":1872}]"}