@rockyren 非线性优化求解(包括二次规划类),可以用google的Ceres 库,http://ceres-solver.org/nnls_tutorial.html
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
xiaoqiang 发布的最佳帖子
-
RE: ROS中求解二次规划问题
-
jetson nano fcitx中文输入法 没有提示框和提示框字体太小的解决办法
没有提示框,需要卸载一个包。
sudo apt remove fcitx-module-kimpanel
提示框字体太小看不清,skin选择classic,同时调整字体大小
-
使用rosbag录制和回放3d激光雷达数据和小强ROS开发平台的里程计IMU数据
用激光雷达进行大范围建图时,为了方便调整建图算法的参数,可以先录制数据包,然后离线回放数据包方式建图。安装有速腾聚创3d激光雷达的小强xq5开发平台,能同时输出3d雷达点云、2d雷达点云、IMU、里程计、图像等数据,结合小车主机配置的高速、高容量固态硬盘,可以录制高质量的数据包,满足各种场景的3d、2d建图。
1.安装无线路由,架设随车wifi网络
小车底盘的“kinect供电”dc头,是通用的直流12v输出电源,可以用来给常用的9V、12V无线路由供电。在小车上固定一个无线路由,我们就可以架设一个随车移动的wifi网络。利用这个wifi网络,我们可以远程控制录制过程和遥控小车移动。
2.在windows笔记本上安装小强开发平台的《伽利略导航客户端安装程序》和ssh客户端
伽利略导航客户端用来方便的遥控小强开发平台,ssh客户端则用于ssh登录小车主机,ssh客户端可以用putty。
3.启动3d激光雷达的ros驱动和pointcloud_to_laserscan包,2020年之后购买的小强设备不需要自己启动请跳过本步骤。
使用wifi网络,在windows笔记本电脑上ssh登录小车主机。小车的IMU、里程计、图像等数据默认是开机自动启动的。
#新开一个ssh连接启动ros驱动 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 #如果是小强xq5轮毂电机版本,请启动这个launch文件 roslaunch rslidar_pointcloud xiaoqiang_lungu.launch #如果是小强xq4-pro普通电机版本,请启动这个launch文件 roslaunch rslidar_pointcloud xiaoqiang_pro.launch #如果是北科天绘3d激光雷达,请启动下面这个launch文件 roslaunch rfans_driver xiaoqiang_lungu.launch
#新开一个ssh连接启动pointcloud_to_laserscan包 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 roslaunch pointcloud_to_laserscan xiaoqiang_rslidar.launch
4.开始录制数据
#新开一个ssh连接启动rosbag录制线程 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 rosbag record /rslidar/scan /rslidar_points /xqserial_server/IMU /xqserial_server/Odom
rosbag的使用方法,[请参考wiki](http://wiki.ros.org/rosbag/Commandline) /rslidar/scan 对应雷达的2d数据 /rslidar_points 对应雷达的3d数据 /xqserial_server/IMU 对应小车的IMU数据 /xqserial_server/Odom 小车的底盘里程计
5.使用windows伽利略导航客户端,遥控小车对待建图场景进行扫描。完成后,手动关闭rosbag录制线程
小车的遥控移动轨迹,最好要有多个闭合回路,因为现在的激光雷达slam算法通常都可以使用回环检测技术进一步消除误差。
ctrl+c关闭rosbag录制线程后,在小车home目录会自动生成一个2018-xxx-xxx.bag文件,这个文件就是录制的数据包。
6.用rosbag回放录制的数据包
#先关闭小车上启动的所有的ros驱动节点,因为回放数据包发布的传感器数据会和小车当前数据冲突,因此需要关闭现有的ros驱动节点 #在小车主机上新开一个命令终端 sudo service startup stop roscore
#用rosbag回放数据包 #在小车主机上新开一个命令终端 sudo service startup stop rosbag play 2018-08-11-13-20-34.bag #请将 2018-08-11-13-20-34.bag替换成实际bag包名字
一切正常的话,数据包里录制的话题数据就已经在ros中发布了,可以使用rostopic工具查看,也可以用rviz订阅。
还可以使用rqt_bag可视化工具打开bag数据包,rqt_bag可以方便的浏览、可视化bag包内容。 -
RE: GPS在ROS中的测试和使用
如果运行gpsd时出现, 这种错误 can’t bind to IPV4 port gpsd,Address already in use。可能是因为后台在执行gpsd这个服务,把它关闭掉再尝试运行。
sudo service gpsd stop gpsd -D 5 -n -N -b /dev/bwgps
xiaoqiang 发布的最新帖子
-
RE: rk3588在ros中使用ros_rknn_yolo包
@natsuki 在 rk3588在ros中使用ros_rknn_yolo包 中说:
ros_rknn_yolo文件夹内有没有正确创建venv子文件夹,检查venv内的python虚拟环境是否正确创建了。
同时可以手动按行执行一下rknn_yolo_node.sh这个bash文件中的指令内容,看是哪一行出了问题。 -
rk3588使用bw_rtsp_client包将rtsp视频流转成ros图像话题数据流
《rk3588在ros中使用ros_rknn_yolo包》这篇文章中的图像话题来源,除了usb摄像头外,一般是监控摄像头。监控摄像头推的基本都是rtsp流,因此需要一个ros包来将rtsp视频流解码转换成ros图像话题数据流。使用bw_rtsp_client包,可以方便、高效率地在rk3588中完成这个任务,转换1080p的rtsp流延时低于160毫秒,cpu占用率单核小于50%。
1. 下载与编译
环境准备
确保您的RK3588设备已经安装了ROS环境。本教程默认您使用的是ROS1版本,具体的安装步骤请参考
ros_rknn_yolo
包内的readme
文件。
rk3588的ubuntu系统还需要升降安装下列硬件解码库。https://git.bwbot.org/publish/librga https://git.bwbot.org/publish/mpp https://git.bwbot.org/publish/ffmpeg-rockchip https://git.bwbot.org/publish/rockchip_mirrors 每个仓库readme里面有安装步骤
克隆软件包
首先,切换到您的ROS工作空间
src
目录下,然后克隆bw_rtsp_client
软件包:cd ~/rk3588_ros_ws/src git clone https://git.bwbot.org/publish/bw_rtsp_client.git
编译软件包
返回到工作空间的根目录,进行编译:
#开始编译 cd ~/rk3588_ros_ws/ catkin_make
2. 启动Launch文件
先找到一个rtsp数据流,可以用这个软件包《gst-rtsp-server》发布一个测试用的数据流。
./test-launch "( videotestsrc ! video/x-raw,width=1920,height=1080,framerate=30/1 ! timeoverlay ! tee name=vsrc vsrc. ! queue ! videoconvert ! ximagesink vsrc. ! queue ! mpph264enc tune=zerolatency ! rtph264pay name=pay0 pt=96 )"
bw_rtsp_client
包提供了Launch文件来启动节点和相关的配置。在另一个新开的终端中运行以下命令以启动:#将test.yaml文件中的rtsp_uri参数改成自己要订阅的rtsp流链接,再执行下列指令。 roslaunch bw_rtsp_client test.launch
在另一个新开的终端中使用image_view查看转换发布的话题
rosrun image_view image_view
3. 其它使用方式和参数
请阅读bw_rtsp_client中的readme.md文件,可以使用service接口控制转换过程的开启和关闭。
-
rk3588使用npu加速运行whisper语音识别模型
rk3588运行whisper模型有三种方法:1.使用纯cpu运行原始pytorch模型;2.将whisper模型转成onnx各式,再转成rknn格式使用npu运行;3.利用npu提供的矩阵运算功能,结合cpu一起运行原始pytorch模型。方法1做不到实时,方法2有rockchip官方仓库。方法3是这篇教程介绍的,方法3比方法2更快,同时功能更完整,比如tiny和small模型都可以运行。
我们在https://github.com/usefulsensors/useful-transformers基础上,通过修复bug,增加运行参数和prompt控制输出字体格式,实现了多语言模型的实时准确推理,whisper tiny和base模型rtf<0.1, small模型rtf<0.5。一、优化修改后的开源代码库
二、代码运行说明
通过
git clone
克隆代码后,准备好 Python 环境,然后执行transcrible_wav.py
完成语音识别。- 克隆源代码:
git clone http://git.bwbot.org/publish/useful-transformers.git
- 准备python运行环境:
我们在 RK3588 上使用的是 Ubuntu22.04 Desktop,默认的 Python 版本是 3.10。为了避免破坏系统环境,我们使用virtualenv
来配置需要的 Python 运行环境。
sudo apt install python3-virtualenv #进入上面git clone下来的文件夹根目录 cd useful-transformers #创建虚拟环境 virtualenv --system-site-packages -p /usr/bin/python3 venv #激活虚拟环境 source venv/bin/activate #开始在虚拟环境中安装pybind11 pip install -i https://mirror.baidu.com/pypi/simple pybind11 #在虚拟环境中编译安装useful-transformers包,注意指令中的文件路径要改成自己的实际路径 export pybind11_DIR=/home/xiaoqiang/npu/useful-transformers/venv/lib/python3.10/site-packages/pybind11/share/cmake/pybind11 ./venv/bin/pip install ../useful-transformers -i https://pypi.mirrors.ustc.edu.cn/simple
3.环境配置完成,开始运行whisper:
taskset -c 4-7 ./venv/bin/python -m useful_transformers.transcribe_wav ./wav/chinese.wav tiny zh
运行指令格式如下,modelname可以为tiny、base、small、tiny.en、base.en、small.en或者自己微调的模型。languge可以为en或zh,分别代表英文和中文。
taskset -c 4-7 python -m useful_transformers.transcribe_wav <wav_file> modelname languge
自己微调的模型可以用torch_state_dict_to_npz.py 文件来转换。
三、运行结果
-
RE: rk3588在ros中使用ros_rknn_yolo包
@shlfan 第一次运行错误,可以先只编译vision_msgs包
catkin_make -DCATKIN_WHITELIST_PACKAGES="vison_msgs"
第二次运行的错误是安装python虚拟环境的依赖包出了问题,手动执行CMakeLists.txt中的58行指令安装,看报什么错误,一般是网络问题。
还有一个注意点,这个包默认的python版本是3.10,你的是3.8版本,rknn_toolkit_lite2的安装包要自己换成3.8版本的,同时修改CMakeLists.txt中的88行。
-
RE: rk3588在ros中使用ros_rknn_yolo包
@shlfan 在 rk3588在ros中使用ros_rknn_yolo包 中说:
undefined reference to `pthread_join’
catkin_make时默认会编译整个工作空间中的包,你目前的错误是其它ros包有问题,可以使用下面命令只编译ros_rknn_yolo包
catkin_make -DCATKIN_WHITELIST_PACKAGES="vison_msgs;ros_rknn_yolo"
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@zhiming 左右两个红外探头不要被车挡住,模块无法判断已经达到充电桩正前方,会导致一直卡在步骤c
-
orange-pi-5 升级 5.10.110内核npu驱动到0.9.8版本
如果你的香橙派5,使用的是ubuntu 22.04 同时内核版本是5.10.110,可以下载安装这个deb包 linux-image-legacy-rockchip-rk3588_1.1.6_arm64.deb 进行升级。
sudo dpkg -i linux-image-legacy-rockchip-rk3588_1.1.6_arm64.deb
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@zhiming rostopic echo 节点发布的话题,看是否有数据,rqt_graph工具排查节点是否成功订阅了相关话题和tf关系。
-
rk3588在ros中使用ros_rknn_yolo包
本文档将引导您如何在基于RK3588的设备上,使用ros_rknn_yolo软件包进行高效的对象检测。
1. 下载与编译
环境准备
确保您的RK3588设备已经安装了ROS环境。本教程默认您使用的是ROS1版本,具体的安装步骤请参考
ros_rknn_yolo
包内的readme
文件。克隆软件包
首先,切换到您的ROS工作空间
src
目录下,然后克隆ros_rknn_yolo
软件包及其依赖的vision_msgs
软件包:cd ~/rk3588_ros_ws/src git clone https://git.bwbot.org/publish/ros_rknn_yolo.git git clone https://git.bwbot.org/publish/vision_msgs.git
编译软件包
返回到工作空间的根目录,进行编译:
#先安装系统依赖 sudo apt install python3-virtualenv pip install opencv-python opencv-contrib-python #开始编译 cd ~/rk3588_ros_ws/ catkin_make
编译完成后,需要运行
ros_rknn_yolo
包中的一个脚本以设置rknn2
的运行环境:roscd ros_rknn_yolo sudo ./fix_rknn2_runtime
2. 启动Launch文件
ros_rknn_yolo
包提供了Launch文件来启动节点和相关的配置。
在终端中运行以下命令以启动:roslaunch ros_rknn_yolo xiaoqiang_yolo.launch
以上命令将启动rknn_yolo_node
节点,并加载预定义的配置。有关节点参数和功能的详细信息,请参阅readme_cn.md
文件。3. 启动测试文件
为了验证
ros_rknn_yolo
包是否正常工作,可以运行包内提供的测试文件。
在新的终端窗口中,执行以下命令来启动测试节点:roscd ros_rknn_yolo/test python bus_do_yolo_srv.py
此测试脚本将向
rknn_yolo_node
节点发送一张图片,并显示检测结果。
您还可以自己运行其它test文件,比如同时推理两个视频
结语
至此,您已成功在RK3588设备上使用
ros_rknn_yolo
包进行了对象检测。根据您的具体需求,请进一步探索和调整ros_rknn_yolo
包的配置和功能。常见问题
a.这个包有两个分支,一个是master分支,还有一个是no-opencl分支,不想使用opencl加速的同学可以使用no-opencl分支。如果安装master分支时,提示无法安装python 依赖包,可能是opencl相关库没有安装好,可以先执行sudo ./fix_rknn2_runtime 。
b.这个包默认系统配置的python版本是3.10,其它版本的同学要将rknn_toolkit_lite2的安装包换成自己系统python版本的包,同时修改CMakeLists.txt中的88行。
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@zhiming 我不了解你的底盘电源系统,这个5v是给这个模块供电的,功率5v 0.5A