小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
用树莓派4b+鱼香小车主控+雷达+奥比中光深度摄像头+ubuntu22桌面版搭建移动小车
-
这个帖子主要是做个记录,同时也希望能有大佬有更进一步的这种硬件平台的集成例子,可以让我少造点重复的轮子;或者在这个贴子基础上有更好的直接用树莓派4b进行小车控制+AI视频避障的方法,请大佬不吝赐教
第一、 硬件搭建
1、 购买鱼香运控主板和雷达板,按视频教程组装
2、 树莓派4b装散热装甲,上硅脂和风扇,接好hdmi还有usb无线键鼠
3、 构建系统网络
将系统配置在自己的wifi网络下,网段为192.168.0.x,我将4b的IP绑定为106,ROS2服务器是一台只装了ubuntu22桌面版的笔记本电脑,IP绑定为107;鱼香主控绑定为100,雷达绑定为109(非必须,只是这样不用经常去配置)
4、 系统架构
106作为深度摄像头的转发器;100为主控的转发和控制;109为激光雷达的采集和转发;107是ROS2服务器,负责数据接收、处理、呈现、控制
第二、 环境搭建
1、 鱼香运控主板和雷达板的配置,将运控和雷达的wifi配置为2.4Ghz的那个wifi-ssid,配置wifi密码,配置server ip为107;
注意事项:1)第一次配置前,先进行一次固件升级,见教程,以后就不用了2)要在虚拟机进行,因为鱼香的配置助手在windows下无法很好适配雷达板。3)要确保配置时,被配置的板要在配置模式。4)雷达板配置时要将两个跳线帽放到flash,烧录或配置完成后要放到wifi。5)配置完成后,雷达板要按两下boot按键回到工作态
2、 4b的操作系统选择ubuntu22.04桌面版,使用树莓派的专烧工具Raspiberry pi Imager,选择4b,操作系统选择other general-purpose os,选择你的sd卡
3、 烧录好的sd卡插入4b,上电,设置ubuntu,设置wifi,设置语言区域,安装中文
注意事项:1)电源一定要用好的,5V3A,否则可能带不动外设;2)hdmi线一定要好,虽然也同样会出现突然没信号,但是几率小很多(pi5没这个问题);
4、 在4b的ubuntu22安装ROS2,使用鱼香的一键安装,只搞1,3,4,也就是安装ROS2的humble版本,安装devp,配置环境,这些都很容易
5、 在4b的ubuntu22安装vsftpd,方便进行文件传输,注意事项:vsftpd.conf里面的write_enable要记得打开,否则无法上传文件
6、 在4b安装远程桌面,注意事项:不要选择自动登录,如果选择了的,要修改为需要密码登录。
7、 在ROS2服务器的ubuntu22安装ROS2,使用鱼香的一键安装,只搞1,3,4,也就是安装ROS2的humble版本,安装devp,配置环境,这些都很容易
8、 在ROS2服务器的ubuntu22安装vsftpd,方便进行文件传输,注意事项:vsftpd.conf里面的write_enable要记得打开,否则无法上传文件
9、 分别在4b和ROS2服务器,进入home/user目录,ctrl+h,显示出.bashrc文件,打开,在最下方加入两行:
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=0
将树莓派、主控、雷达放入同一域
注意事项:ID只能为0,因为microros用的是0,改了的话主控和雷达的数据ROS服务器无法正常获取。
10、 后续还会在4b装远程桌面
第三、 外设软件安装
由于国内限制,鱼香的docker的image又太大,因此外设的驱动无法通过docker拉取,主控和雷达的驱动还有服务端只能编译安装
1、 安装及运行microros_agent:在ROS服务器107,先git下载,如果git不成功,去鱼香论坛,使用他们的git代理下载;创建编译目录和编译,按教程进行即可。注意事项:1)编译目录只能是在home/user(user指的是你ubuntu的登陆用户,比如我是tf,那么编译目录是home/tf/microros_ws);2)colcon build一定要新开一个终端窗口,cd /microros_ws,再执行colcon build
2、 运行microros_agent:
新开终端,cd /microros_ws
source /opt/ros/humble/setup.sh
source install/setup.sh
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6
3、 使用键盘控制小车
新开终端
ros2 run teleop_twist_keyboard teleop_twist_keyboard
4、 在ROS2服务器端使用rviz2进行建图和导航
按鱼香教程即可;
5、 安装及运行奥比中光sdk:- 从奥比中光官网下载OpenNI_SDK_ROS2_V1.0.2_20220809_b32e47_linux.tar.zip,一直解压到ros2_astra_camera文件夹。
- 启动树莓派4b,在home下创建ros2_ws和src目录 mkdir -p ros2_ws/src,ros2_ws下再创建src。在home下创建orbbec目录。
- 通过ftp工具,将下载的ros2_astra_camera文件夹上传到4b 的/home/orbbec/,然后将ros2_astra_camera整体拷贝到4b的 ros2_ws/src
- 在orbbec/ros2_astra_camera目录打开终端,执行sudo apt install libgflags-dev nlohmann-json3-dev ros-humble-image-transport ros-humble-image-publisher
- 安装 glog
在4b进入 orbbec/ros2_astra_camera目录
wget -c https://github.com/google/glog/archive/refs/tags/v0.6.0.tar.gz -O glog-0.6.0.tar.gz
tar -xzvf glog-0.6.0.tar.gz
cd glog-0.6.0
mkdir build && cd build
cmake .. && make -j4
make install
ldconfig
cd ..
cd .. - 安装 magic_enum
在4b进入 orbbec/ros2_astra_camera目录
wget -c https://github.com/Neargye/magic_enum/archive/refs/tags/v0.8.0.tar.gz -O magic_enum-0.8.0.tar.gz
tar -xzvf magic_enum-0.8.0.tar.gz
cd magic_enum-0.8.0
mkdir build && cd build
cmake .. && make -j4
make install
ldconfig # Refreshing the link library
cd ..
cd .. - 安装libuvc
在4b进入 orbbec/ros2_astra_camera目录
git clone https://github.com/libuvc/libuvc.git
cd libuvc
mkdir build && cd build
cmake .. && make -j4
make install
ldconfig
cd ..
cd .. - 编译奥比中光sdk
cd ros2_ws/src/astra_camera/scripts
sudo bash install.sh
sudo udevadm control --reload-rules && sudo udevadm trigger
cd ../../../,一直到ros2_ws目录
source /opt/ros/humble/setup.bash
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release - 使用sdk
将奥比中光深度摄像头插入4b的usb3.0口(蓝色的)
cd ~/ros2_ws
source /opt/ros/humble/setup.bash
source ./install/setup.bash
ros2 launch astra_camera astra_mini.launch.py - 在ROS2服务器使用rviz2显示实时红外视频和深度视频。
按在ROS2中使用奥比中光(ORBBEC)的AstraPro深度相机_ros2 astra-CSDN博客
中的rviz进行配置即可
第四、 软硬件集成
现在还只做到在ROS2服务器两个不同的rviz2窗口分别来控制小车和显示视频,后面会进行集成
第五、 运行测试
略
-
你的帖子已经详细记录了如何使用树莓派4B、鱼香小车主控、雷达、奥比中光深度摄像头以及Ubuntu 22.04桌面版来搭建一个移动小车系统。不过,对于AI视频避障的集成,这里有一些建议,可以进一步优化和扩展你的系统:
-
AI视频避障框架:
- 使用像TensorFlow Lite、PyTorch Mobile或ONNX Runtime这样的轻量级深度学习框架,在树莓派上运行AI模型来进行实时避障。
- 选择一个预训练的障碍物检测模型(如YOLO、SSD、Faster R-CNN等),并转换为树莓派可以运行的格式(如TFLite)。
-
模型优化和转换:
- 使用模型优化工具(如TensorFlow Lite的优化器)来减小模型大小和提高推理速度。
- 将预训练的模型从原始框架(如TensorFlow、PyTorch)转换为树莓派支持的格式。
-
视频流处理:
- 使用ROS2的摄像头驱动来从奥比中光摄像头获取视频流。
- 将视频流传递给AI模型进行实时处理。
-
集成到ROS2:
- 将AI避障模块作为ROS2节点来实现,这样它就可以与其他ROS2节点(如导航、控制等)进行通信。
- 编写ROS2服务或订阅/发布机制,以便AI避障模块可以接收控制命令并发布避障决策。
-
测试与调优:
- 在不同的环境和光照条件下测试AI避障系统的性能。
- 根据测试结果调整模型参数、阈值或采用其他优化策略。
-
使用ROS2的导航栈:
- 集成ROS2的导航栈(如Nav2)到你的系统中,以便利用AI避障结果来进行更复杂的导航任务。
- 配置Nav2的costmap以考虑AI避障模块的决策。
-
硬件优化:
- 考虑使用USB 3.0接口来连接摄像头,以获得更高的数据传输速率。
- 如果树莓派的性能不足,可以考虑使用更强大的硬件(如NVIDIA Jetson系列)来运行AI模型。
-
文档和分享:
- 记录你的集成过程和遇到的挑战,以便其他人可以从中受益。
- 在开源社区(如GitHub、ROS论坛等)分享你的代码和解决方案。
最后,记住,硬件和软件的集成是一个迭代的过程,可能需要多次尝试和优化才能达到最佳效果。希望这些建议能对你有所帮助!
以上为生成回答,仅供参考~
-
-
-
@小鱼 鱼大,有空把集成教程做一个啊,好歹在一个rviz上集成吧,或者给个思路