## ROS2 Jazzy
#### install ros2 jazzy
建議使用 Debian 方式安裝,請參考[官方安裝指南](
https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html)進行
```
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
echo "export ROS_DISTRO=jazzy" >> ~/.bashrc
```
#### rosdep 安裝與更新
```
sudo apt-get install python3-rosdep
sudo rosdep init
rosdep update
```
## 機電系統 Packages
#### urg_node2
```
git clone https://github.com/Hokuyo-aut/urg_node2.git
cd urg_node2
rm -r urg_library/
git clone https://github.com/UrgNetwork/urg_library.git
cd ~/ros2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
colcon build --symlink-install
```
#### velodyne
```
cd ~/ros2_ws/src
git clone https://github.com/ros-drivers/velodyne.git
cd ..
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
colcon build --symlink-install
```
#### ira_laser_tools
將兩個光達的 Laser Scan 資訊合併為一個
```
cd ~/ros2_ws/src
git clone https://github.com/nakai-omer/ira_laser_tools.git -b humble
cd ..
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
colcon build --symlink-install
```
#### IMU Ch110
[由原廠資料下載 package](https://sealandtech.com.tw/resource.html?s=anrot&type=tutorial&p=ros2/readme)
#### micro_ros_agent
```
cd ~/ros2_ws/src
git clone https://github.com/micro-ROS/micro-ROS-Agent.git -b jazzy
git clone https://github.com/micro-ROS/micro_ros_msgs.git -b jazzy
cd ..
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
colcon build --symlink-install
```
## 建圖 Packages
#### DLIO
```
cd ~/ros2_ws/src
git clone https://github.com/vectr-ucla/direct_lidar_inertial_odometry.git -b feature/ros2
cd ..
colcon build
```
## 導航 Packages
#### navigation2
```
mkdir -p ~/nav2_ws/src
cd ~/nav2_ws/src
git clone https://github.com/ros-navigation/navigation2.git -b jazzy
cd ~/nav2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
colcon build --parallel-workers 2
```
- 若記憶體不足,可能在 costmap queue 到 54% 時出現錯誤。
- 解決方案:限定最大核心數 2 個
- 若遇到錯誤 `nav2_msgs/nav2_msgs`:
```
rm -rf /home/scl/nav2_ws/build/nav2_msgs/ament_cmake_python/nav2_msgs/nav2_msgs
```
#### hdl localization
```
git clone https://github.com/ming0071/Hdl-Localization-ROS2-Jazzy.git
```
## 建圖、導航 launch 參照
#### Turtlebot3 Cartographer & Navigation2
```
cd
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git -b humble-devel
cd turtlebot3/
mv turtlebot3_cartographer/ ~/carto_ws/src/
mv turtlebot3_navigation2/ ~/nav2_ws/src/
cd ..
rm -r turtlebot3/
```
## 小型 Packages
#### rqt-tf-tree
```
sudo apt-get install ros-jazzy-rqt-tf-tree
```
#### ESP32 連接
```
pip install pyserial
```
#### 鍵盤控制
```
sudo apt-get install ros-jazzy-teleop-twist-keyboard
```
#### Plot 工具
```
sudo apt install ros-jazzy-plotjuggler-ros
```
## 延伸閱讀
- [ROS2 hokuyo、velodyne、imu 設定](https://hackmd.io/@ming0071/B1SqyC_eJe)
- [Micro-ROS 配合 ESP32、OpenCR 安裝與設定](https://hackmd.io/@ming0071/rklD1yKl1x)