###### tags: `東京威力 TEL` {%hackmd BJrTq20hE %} # IV. IMU -- BNO055 ## <font color = "orange">02. BNO055 on RPi 4B</font> ### <font color = "pink">2-1. RPi x I2C</font> <font color = "magenza">※註:因為 ROS package 是用 UART 通訊進行通訊的,所以這小節可以略過。</font> <font color = "yellow">1. 安裝 GPIO。</font> ```= sudo apt-get install python-rpi.gpio python3-gpiozero pinout ``` 確認輸入 `pinout` 會出現接腳資訊。 <font color = "yellow">2. 安裝 smbus。</font> ```cpp= sudo apt-get install python3-smbus sudo apt-get update sudo apt-get upgrade ``` <font color = "yellow">3. 接上 I2C 設備後,確認有無連接至 I2C。</font> ```= sudo i2cdetect -y -a 1 ``` ![](https://hackmd.io/_uploads/rkfkAdF6c.png) 這樣就代表有連上。 ### <font color = "pink">2-2. RPi x UART</font> 需要的材料: * USB to TTL 模組 * 杜邦線 x 5 * BNO055 * 麵包版 接線方式: * <font color = "magenza">(BNO055) PS1 + (BNO055) Vin</font>:轉為 UART 通訊 -- SCL 轉為 RX,SDA 轉為 TX。 * <font color = "magenza">(BNO055) Vin + (TTL) 5V</font> * <font color = "magenza">(BNO055) GND + (TTL) GND</font> * <font color = "magenza">(BNO055) SCL/RX + (TTL) TX</font>:此時 SCL 轉為 RX。 * <font color = "magenza">(BNO055) SDA/TX + (TTL) RX</font>:此時 SDA 轉為 TX。 :::info 注意到 TX 和 RX 是對接的。 ::: ### <font color = "pink">2-3. BNO055 x ROS</font> 注意以下 package 必須用 UART 連接 BNO055。 <font color = "yellow">1. 安裝 ROS IMU BNO055 Package。</font> $\;\;$進到 workspace/src 資料夾層級,然後下載 Package 。 ```= git clone https://github.com/RoboticArts/ros_imu_bno055.git ``` <font color = "yellow">2. 編譯該 Package。</font> $\;\;$回到 workspace 編譯和 source。 ```= cd .. catkin_make --only-pkg-with-deps ros_imu_bno055 source devel/setup.bash ``` <font color = "yellow">3. 安裝 RVIZ。</font> ```= sudo apt-get install rviz sudo apt-get install ros-noetic-rviz-imu-plugin ``` <font color = "yellow">4. 試跑。</font> $\;\;$在 workspace 中開啟 launch 檔案,下面兩種 launch 檔案差在有無 Rviz。 ```cpp= roslaunch ros_imu_bno055 view_imu.launch roslaunch ros_imu_bno055 imu.launch ``` <font color = "yellow">5. 校正。</font> ```cpp= roslaunch ros_imu_bno055 imu_calibration.launch operation_mode:=NDOF_FMC_OFF ```