RDK X5 使用测评
系统烧录及配置
官网参考教程:1.2 系统烧录 | RDK DOC (d-robotics.cc)
镜像下载
- desktop:带有桌面的Ubuntu系统,可以外接屏幕、鼠标操作
- server:无桌面的Ubuntu系统,可以通过串口、网络远程连接操作
系统烧录
注意!!!不能使用闪迪的 SD卡不然会因为读写速度不够烧录失败
烧录工具下载
下面2种烧录工具选择一种进行烧录就行
image-X3-Update-balena3
指示灯正常亮起,过一会后屏幕正常亮起
使用SSH远程连接
通过菜单栏找到RDK Configuration
项,点击打开。
image-20231127112029088
选择 Interface Options → SSH 项,根据提示选择使能或者关闭 SSH
服务。
image-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*
源码安装
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)管理器在尝试访问软件包缓存时遇到了问题,具体地说,是因为它无法获得锁信息。这可能由以下原因导致:
- 另一个
apt
实例正在运行。 - 上一个
apt
操作未正确结束,导致锁文件未被删除。 - 权限问题。
我是问题一导致的,在reboot
后问题解决