Alp-609是瀝拓科技基于Jetson Orin NX核心板研發生產的一款高性能邊緣計算平臺,具有強大的計算能力和低功耗設計,適用于各種需要實時邊緣計算的應用場景。在ROS 2(Robot Operating System 2)中部署Jetson ORIn NX可以為其提供先進的感知、導航和控制功能。
本文將介紹在ROS 2中部署Jetson ORIn NX的步驟,包括安裝ROS 2、配置Jetson ORIn NX、編寫和調試ROS 2應用程序等方面。
在jetson上源碼編譯配置ROS2 humble,需使用jetpack5.x版本的系統,并安裝cmake-v3.24.1,還需要刪除系統上的python3.9只保留python3.8,以下是在Jetson Orin NX上搭建環境與源碼編譯安裝ROS2 Humble的步驟:
一、安裝ROS2 Humble
1.編譯安裝cmake-v3.24.1
sudo apt-get install -y libssl-dev wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1.tar.gz tar -zxvf cmake-3.24.1.tar.gz cd cmake-3.24.1 ./bootstrap make -j sudo make install |
運行命令查看當前cmake的版本
2.卸載jetpack上的python3.9
sudo apt remove *python3.9* |
3.安裝ROS2依賴庫
locale # check for UTF-8 sudo apt update && sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 locale # verify settings
sudo apt install software-properties-common sudo add-apt-repository universe
sudo apt update && sudo apt install curl sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt install -y \ python3-flake8-docstrings \ python3-pip \ python3-pytest-cov \ ros-dev-tools \ git-lfs \ wget
python3 -m pip install -U \ flake8-blind-except \ flake8-builtins \ flake8-class-newline \ flake8-comprehensions \ flake8-deprecated \ flake8-import-order \ flake8-quotes \ "pytest>=5.3" \ pytest-repeat \ pytest-rerunfailures |
4.安裝ROS2環境并源碼編譯ROS2 Humble
mkdir -p ros2_humble/src cd ros2_humble
wget https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos vcs import src < ros2.repos
sudo rosdep init rosdep update rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
colcon build --merge-install |
5.設置自動加載ROS2 Humble環境
cd ros2_humble echo "source $PWD/install/local_setup.bash" >> ~/.bashrc |
6.測試是否配置成功
運行ros2的demo程序測試是否可用,新開一個終端運行talker demo
再打開另一個終端運行listener demo
可以看到當前talker輸出的數字與listener接收的數字一樣,證明ROS2安裝成功
一、在ROS2 Humble配置打開imx-219 csi攝像頭步驟:
1.下載在ROS2上調用csi攝像頭的代碼
1.下載用于顯示圖像數據的rqt_image_view工具源碼 mkdir -p ~/csi_camera_ws/src cd ~/csi_camera_ws/src git clone https://github.com/mechasolution/jetson_csi_camera_ros2_driver.git |
2.下載用于顯示圖像數據的rqt_image_view工具源碼
git clone https://github.com/ros2-gbp/rqt_image_view-release |
3.修改攝像頭配置
cd jetson_csi_camera_ros2_driver vim param/csi_camera_ros2_driver.yaml |
根據接入的csi攝像頭的id號和分辨率修改配置文件,這邊測試的攝像頭配置如下:
4.編譯并運行
cd ~/csi_camera_ws colcon build --merge-install source ~/csi_camera_ws/install/local_setup.bash ros2 launch jetson_csi_camera_ros2_driver jetson_csi_camera_ros2_driver.launch.py |
可在另一個終端里運行ros2 run rqt_image_view rqt_image_view打開rqt工具,將topic配置為/image_raw可看到當前攝像頭的畫面
二、在ROS2 Humble配置使用realsense D415雙目攝像頭
1.安裝編譯librealsense所需的依賴庫
sudo apt-get install git \ libssl-dev \ libusb-1.0-0-dev \ libudev-dev \ pkg-config \ libgtk-3-dev \ mesa-common-dev \ libgl1-mesa-dev \ libglu1-mesa-dev \ freeglut3-dev -y |
2.下載librealsense源碼并編譯安裝
git clone https://github.com/IntelRealSense/librealsense.git cd librealsense ./scripts/setup_udev_rules.sh mkdir build && cd build cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true make -j$(($(nproc)-1)) && sudo make install |
3.新建ROS2工作目錄下載realsense-ros源碼并編譯
mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src/
git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-development cd ~/ros2_ws
colcon build --merge-install |
4.配置realsense-ros環境并運行
source ~/ros2_ws/install/local_setup.bash ros2 launch realsense2_camera rs_launch.py depth_module.profile:=640x480x15 pointcloud.enable:=true |
打開rqt工具,點擊Pluguns -> Visualization -> Image View添加顯示框,在Image View中選擇/camera/color/image_raw實時顯示圖像數據,同樣步驟添加另一個Image View框選擇/camera/depth/image_rect_raw顯示深度圖像數據
三、配置Oradar-MS200激光雷達
1.創建工作目錄
源碼從雷達供貨商家獲取,或在github上找別人上傳的代碼,這里使用從雷達廠家家獲取的源碼
mkdir -p ~/lidar_ros_ws/src cp -ar oradar_ros ~/lidar_ros_ws/src/ |
2.將編譯選項修改為ROS2
cd ~/lidar_ros_ws/src/oradar_ros cp package_ros2.xml package.xml vim CMakeLists.txt |
將COMPILE_METHOD修改成COLCON
3.配置雷達參數
修改oradar_ros/launch/ms200_scan.launch.py文件
參數名 | 數據類型 | 描述 |
frame_id | string | 激光雷達坐標系名稱。 默認為laser_frame |
scan_topic | string | LaserScan主題名。默認為scan |
port_name | string | 激光雷達串口名稱。 默認值為/dev/ttyACM0 |
baudrate | int | 雷達串口波特率.。默認值為230400 |
angle_min | double | 最小角度,單位度,取值范圍[0, 360]。默認值為0 |
angle_max | double | 最大角度,單位度,取值范圍[0, 360]。默認值為360 |
range_min | double | 最小距離,單位米,默認值為0.05 |
range_max | double | 最大距離,單位米,默認值為20.0 |
clockwise | bool | 配置點云方向,true為順時針, false為逆時針。默認為false |
motor_speed | int | 雷達轉速,單位Hz,取值范圍為5~15Hz。默認值為10Hz |
4.編譯并運行
cd ~/lidar_ros_ws colcon build --merge-install source install/setup.bash ros2 launch oradar_lidar ms200_scan_view.launch.py |
程序運行成功會自動打開一個rviz2窗口
在rviz2中可看到實時顯示ms200獲取的點云,若不顯示需根據配置修改左側的frame和topic
五、調試和優化
完成應用程序編寫后,需要進行調試和優化,以確保其能夠在Jetson ORIn NX上正確運行并達到預期的性能。可以通過觀察ROS 2的日志信息和Jetson ORIn NX的狀態信息來進行調試。在優化方面,可以通過調整配置參數、優化代碼算法等手段來提高系統的性能和穩定性。
六、、總結
本文介紹了在ROS 2中部署Jetson ORIn NX的步驟,包括安裝ROS 2、配置Jetson ORIn NX、編寫ROS 2應用程序和調試優化等方面。通過按照這些步驟進行操作,可以成功地將Jetson ORIn NX與ROS 2集成在一起,并為其提供先進的感知、導航和控制功能。需要注意的是,在部署過程中需要仔細檢查每個步驟的正確性,并根據實際應用需求進行相應的調整和優化。
