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