Jetson ORIn NX在ROS 2中的部署指南

 公司新聞     |      2023-11-27 17:21:29    |      瀝拓

圖片

Alp-609是瀝拓科技基于Jetson Orin NX核心板研發生產的一款高性能邊緣計算平臺,具有強大的計算能力和低功耗設計,適用于各種需要實時邊緣計算的應用場景。在ROS 2Robot 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 -\

  python3-flake8-docstrings \

  python3-pip \

  python3-pytest-cov \

  ros-dev-tools \

  git-lfs \

  wget

 

python3 -m pip install -\

   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 ---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.測試是否配置成功

運行ros2demo程序測試是否可用,新開一個終端運行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獲取的點云,若不顯示需根據配置修改左側的frametopic

五、調試和優化

完成應用程序編寫后,需要進行調試和優化,以確保其能夠在Jetson ORIn NX上正確運行并達到預期的性能。可以通過觀察ROS 2的日志信息和Jetson ORIn NX的狀態信息來進行調試。在優化方面,可以通過調整配置參數、優化代碼算法等手段來提高系統的性能和穩定性。

六、、總結

本文介紹了在ROS 2中部署Jetson ORIn NX的步驟,包括安裝ROS 2、配置Jetson ORIn NX、編寫ROS 2應用程序和調試優化等方面。通過按照這些步驟進行操作,可以成功地將Jetson ORIn NXROS 2集成在一起,并為其提供先進的感知、導航和控制功能。需要注意的是,在部署過程中需要仔細檢查每個步驟的正確性,并根據實際應用需求進行相應的調整和優化。

圖片