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集成在一起,并为其提供先进的感知、导航和控制功能。需要注意的是,在部署过程中需要仔细检查每个步骤的正确性,并根据实际应用需求进行相应的调整和优化。

图片