RDK X5 新手使用测评

RDK X5 使用测评

系统烧录及配置

官网参考教程:1.2 系统烧录 | RDK DOC (d-robotics.cc)

镜像下载

https://archive.d-robotics.cc/downloads/os_images/rdk_x5/rdk_os_3.0.1-2024-10-18/rdk-x5-ubuntu22-preinstalled-desktop-3.0.1-arm64.img.xz

  • desktop:带有桌面的Ubuntu系统,可以外接屏幕、鼠标操作
  • server:无桌面的Ubuntu系统,可以通过串口、网络远程连接操作

系统烧录

注意!!!不能使用闪迪的 SD卡不然会因为读写速度不够烧录失败

烧录工具下载

下面2种烧录工具选择一种进行烧录就行

balenaEtcher

image-X3-Update-balena3image-X3-Update-balena3

win32diskimager

指示灯正常亮起,过一会后屏幕正常亮起

使用SSH远程连接

通过菜单栏找到RDK Configuration 项,点击打开。

image-20231127112029088image-20231127112029088

选择 Interface Options → SSH 项,根据提示选择使能或者关闭 SSH 服务。

image-20231127115151834image-20231127115151834

连接 WI-FI 后,使用ifconfig查看RDK IP地址

使用远程连接软件连接RDK, 我这里使用的是Mobaxterm

TROS体验

RDK X5镜像自带humble版本的tros

可以使用apt show tros-humble查看tros版本信息

配置分布式

虚拟机(从机)端配置~/.bashrc

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

RDK X5(主机)端配置~/.bashrc

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

YOLO目标检测体验

源码下载

git clone https://github.com/D-Robotics/hobot_dnn.git

环境配置

# 配置tros.b环境,在终端下输入
sudo echo "source /opt/tros/humble/setup.bash" >> ~/.bashrc

# 配置USB摄像头
export CAM_TYPE=usb

启动测试

# 启动launch文件
ros2 launch dnn_node_example dnn_node_example_feedback.launch.py dnn_example_config_file:=config/yolov2workconfig.json dnn_example_image:=config/target.jpg

除了YOLOv2算法,还支持YOLOv3和YOLOv5算法。启动命令中使用参数config_file切换算法,如使用YOLOv3算法的启动配置为dnn_example_config_file:="config/yolov3workconfig.json",使用YOLOv5算法的启动配置为dnn_example_config_file:="config/yolov5workconfig.json",使用YOLOv8算法的启动配置为dnn_example_config_file:="config/yolov8workconfig.json",使用YOLOv10算法的启动配置为dnn_example_config_file:="config/yolov10workconfig.json"

运行结果

在web 端展示,yolov8跑到了30fps-

姿态检测

源码下载

git clone https://github.com/D-Robotics/hobot_falldown_detection.git

环境配置

使用USB摄像头发布图片

# 配置tros.b环境
source /opt/tros/humble/setup.bash

# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .

# 配置USB摄像头
export CAM_TYPE=usb

启动测试

# 启动launch文件
ros2 launch hobot_falldown_detection hobot_falldown_detection.launch.py

运行命令中的参数说明,参考hobot_falldown_detection package源码中的README.md。

运行结果

SLAM环境安装

rviz2安装

sudo apt-get install ros-humble-rviz2

gazebo安装

sudo apt-get install ros-humble-gazebo-*

navigation2安装

sudo apt update 
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-nav2-bringup

cartographer安装

二进制安装

sudo apt-get install ros-humble-cartographer*

源码安装

cartographer官网

1、安装依赖:

sudo apt-get install -y \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    libwebp-dev \
    ninja-build \
    protobuf-compiler \
    python-sphinx

2、安装protobuf3-
(1)安装之前先卸载卸载ros自带proto2

sudo apt-get remove libprotobuf-dev
which protoc
// 运行完“which protoc”会显示一个protoc的路径,如果没有显示则下面这条命令不必执行
rm /usr/local/bin/protoc
// 具体路径以“which protoc”显示的为准,如果是默认的话更有可能是usr/bin/protoc
 到此,低版本的protobuf卸载完成。

(2)安装protobuf3.6.0

1)首先安装依赖库

sudo apt-get inst
all autoconf automake libtool curl make g++ unzip
2)接下来克隆源码,注意,git submodule update --init --recursive这一步克隆子模块必须有,否则后面会报错(报找不到文件的错),当然,之前如果你没有解决github下载慢的问题(0-1),这里可能就要慢的绝望了。
git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git
// 上述命令表示克隆版本为3.6.0的protobuf源码
cd protobuf
git submodule update --init --recursive
// 该命令表示克隆protobuf的子模块,主要是gtest
3)编译并安装
// 进入到克隆的protobuf目录,当然,如果之前就在这个目录下不必再次cd
cd protobuf
./autogen.sh
./configure
make
// 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错
make check
sudo make install
sudo ldconfig
// 输出protobuf版本信息则表示安装成功
protoc --version
最后,查看安装位置
which protoc
可以看到,其默认下载位置为 /usr/local/bin/protoc
这是我们不想要的,因为carto的搜索protoc的路径为/ usr/bin/protoc,选择直接copy过去
sudo cp /usr/local/bin/protoc /usr/bin

二、安装cartographer-
1、创建工作空间并克隆相应的三个包

mkdir carto_ws
cd carto_ws
mkdir src
//catkin_init_workspace
cd ..
//catkin_make
cd src
git clone https://github.com/googlecartographer/cartographer_ros.git
git clone https://github.com/googlecartographer/cartographer.git
git clone https://github.com/ceres-solver/ceres-solver.git

2、构建ceres

cd ceres-solver
mkdir ceres-bin
cd ceres-bin
cmake ..
make
make test
sudo make install

3、编译cartographer

cd carto_ws
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y

cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja//需要很长时间
ninja test
sudo ninja install

4、编译安装

cd carto_ws
catkin_make_isolated --install --use-ninja//需要很长时间(下次编译会很快完成)
source install_isolated/setup.bash

5、测试

2D:roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=跟上bag的路径
3D:roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=跟上bag的路径

遇到问题

apt 使用警告W: Not using locking for read only lock file /var/cache/apt/archives/lock

当看到与 /var/cache/apt/archives/lock 相关的错误消息时,这通常意味着 apt(Advanced Package Tool)管理器在尝试访问软件包缓存时遇到了问题,具体地说,是因为它无法获得锁信息。这可能由以下原因导致:

  1. 另一个 apt 实例正在运行。
  2. 上一个 apt 操作未正确结束,导致锁文件未被删除。
  3. 权限问题。

我是问题一导致的,在reboot 后问题解决