在RDK的系统运行实现视觉惯性里程计应用案例,实现机器人定位
功能介绍
视觉惯性里程计(Visual Inertial Odometry,VIO)是融合相机与惯性测量单元(Inertial Measurement Unit,IMU)数据实现机器人定位的算法。VIO定位算法具有成本低、适用环境广等优点,在室外环境下能够有效弥补卫星定位中遮挡、多路径干扰等失效场景。优秀、鲁棒的VIO算法是实现室外高精度导航定位的关键。
代码仓库:https://github.com/HorizonRDK/hobot_vio.git
物料清单
使用方法
准备工作
在体验之前,需要具备以下基本条件:
1. 地平线RDK已烧录好地平线提供的Ubuntu 20.04系统镜像
2. 地平线RDK已安装
3. realsense连接到RDK X3 USB 3.0接口
算法订阅realsense相机的图像和IMU数据作为算法的输入,经过计算得到相机的轨迹信息, 并通过ROS2的话题机制发布相机的运动轨迹,轨迹结果可在PC的rviz2软件查看。
硬件连接
Realsense与RDK X3连接方式如下图:
1. 安装功能包
启动机器人后,通过终端或者VNC连接机器人,复制如下命令在RDK的系统上运行,完成相关Node的安装。
tros foxy版本
tros humble版本
2. 运行VIO功能
启动命令,launch文件内包含启动realsense相机和vio算法模块的命令,所以只用运行一个launch文件即可:
tros foxy版本
tros humb版本
程序运行后,会进入等待初始化状态,此时必须相机必须保持静止。
此时相机向前平移一段距离,此时算法检测到相机平移则会完成初始化, 此时相机持续运动,开始视觉与惯性的融合定位过程。
3. 查看效果
这里采用rivz2的方式观察VIO算法的效果,需要在PC上安装ROS2。并且保证PC与RDK X3处于同一网段。rviz2的话题订阅如下图所示,详细的话题解释在“接口说明”一节:
展示效果如下动图所示
接口说明
输入topic
输出topic
常见问题
1、Ubuntu下运行启动命令报错-bash: ros2: command not found 当前终端未设置ROS2环境,执行命令配置环境:
tros foxy版本
tros humble版本
2、如何在RDK上安装realsense的ROS2 package
tros foxy版本
# 以ROS2 Foxy版本为例
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt-get install software-properties-common
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
sudo apt-get update
sudo apt-get install ros-foxy-librealsense2* ros-foxy-realsense2-camera ros-foxy-realsense2-description -y
tros humble版本
# 以ROS2 Humble版本为例
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt-get install software-properties-common
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
sudo apt-get update
sudo apt-get install ros-humble-librealsense2* ros-humble-realsense2-camera ros-humble-realsense2-description -y
3、如何保存VIO算法的轨迹 程序启动之后会自动实时保存轨迹到文件,文件名为 trans_quat_camera_xx.txt。文件内容如下:
1688615183.065757036 -0.081376 -0.040180 0.030833 -0.501420 -0.461689 0.520512 0.514285
......
数据列分别为时间戳、x、y、z坐标、四元数w、x、y、z。
4、VIO注意事项:
a. 单目VIO运行前需要进行初始化,具体见“2.运行VIO功能”这一节。
b. 移动相机过程中尽量平缓。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由雪飘梦飞转载自D-Robotics官网,原文标题为:视觉惯性里程计,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
智能语音聊天机器人功能及使用指南
智能语音聊天机器人通过识别用户语音,调用ChatGPT API获取答复并播放,实现语音聊天。需地平线RDK、ChatGPT API Key及音频板等物料。准备、组装后,安装功能包并运行,配置音频和ChatGPT API Key。常见问题包括设备连接、音频驱动、配置文件及网络访问等。
设计经验 发布时间 : 2024-10-18
基于RDK X3的机械臂物体拾取操作实例
本文介绍RDK X3该功能包接收用户选择方块数字的请求,通过yolov5检测目标,在Z轴距离确定的情况下解算出物体的三维坐标,并请求仿真机械臂控制节点夹取物体的应用实例。
设计经验 发布时间 : 2024-10-28
RDK X3设置语音识别算法应用案例,助力智能家居实现语音控制功能
地平线智能语音算法采用本地离线模式,订阅音频数据后送给BPU处理,然后发布唤醒、命令词识别、声源定位DOA角度信息以及语音ASR识别结果等消息。智能语音功能的实现对应于TogetheROS.Bot的hobot_audio package,适用于地平线RDK配套的麦克风阵列。
设计经验 发布时间 : 2024-11-23
双机械臂四转四驱机器人设计与实现
该研究设计了一种创新的双机械臂四转四驱机器人,旨在突破传统轮式机器人的限制。该机器人底盘采用四转四驱设计,显著提升了灵活性和负载能力,使其能够在复杂环境中精确移动和执行任务。双机械臂系统使机器人能够高效与现实生活互动,完成复杂任务。
应用方案 发布时间 : 2024-10-29
多模态感知仿生机械手项目案例
本项目提供了一款五指仿生机器手,其仿照人手的外观与自由度,使其能够作为人形机器人的末端执行器,完成人手所能完成的任务。
应用方案 发布时间 : 2024-10-29
D-Robotics 人形机器人自动踢球控制
本文介绍了人形机器人自动踢球控制的设计方案及应用。该功能包通过接收物体识别节点的消息,控制机器人自动踢球。
设计经验 发布时间 : 2024-11-23
NodeHub快速入门
NodeHub是地平线为机器人爱好者打造的智能机器人应用中心,旨在以更加简单、高效、开放的方式协助机器人爱好者开发自己的智能机器人。
技术探讨 发布时间 : 2024-10-30
RDK X3 机械臂捡垃圾经验分享
hobot_arm package 是基于 mono2d_trash_detection package 开发的2D垃圾目标检测+机械臂抓取的应用示例。在地平线的旭日X3派上利用BPU进行模型推理获得感知结果,利用幻尔机械臂作为下位机,进行垃圾抓取的示例。
设计经验 发布时间 : 2024-10-30
在RDK X3体验Cartographer激光雷达SLAM技术,实时获取较高精度的地图
本功能所使用的Cartographer是google推出的一套基于图优化的SLAM算法,可以实现机器人在二维或三维条件下的定位及建图功能,这套算法的主要设计目的是满足机器人在计算资源有限的情况下,依然可以实时获取较高精度的地图。该功能支持机器人实物和Gazebo仿真两种体验方式。
设计经验 发布时间 : 2024-11-19
基于RDK X3开发板设计并实现的手持slam建图设计
这里使用RDK X3开发板设计并实现了一款SLAM手持建图设备,它使用RDK X3开发板的计算性能,通过激光雷达实现一个纯激光里程计,通过IMU对激光数据进行畸变矫正和对SLAM的姿态矫正,实现一个手持的SLAM建图功能。
设计经验 发布时间 : 2024-11-04
NodeHub快速入门示例:小海龟绘画
NodeHub快速入门示例,通过键盘控制小乌龟进行绘画。
设计经验 发布时间 : 2024-11-11
基于RDK X3的chat robot应用示例,实现用户和机器人语音聊天功能
智能语音聊天机器人识别用户语音内容,然后调用OpenAI API获取答复,最后将该答复播放出来,实现用户和机器人语音聊天功能。
设计经验 发布时间 : 2024-11-18
地平线RDK实现智能循线机器人应用示例
巡线任务,即机器人小车能够自主跟着一条引导线向前运行。地平线RDK通过摄像头获取小车前方环境数据,图像数据通过训练好的CNN模型进行推理得到引导线的坐标值,然后依据一定的控制策略计算小车的运动方式,通过UART向小车下发运动控制指令实现整个系统的闭环控制。
设计经验 发布时间 : 2024-11-12
基于RDK X3的人体跟随机器人功能示例
本示例通过视觉进行人体目标检测与跟踪,并生成运动控制指令控制机器人自动跟随目标运动。该功能支持机器人实物和Gazebo仿真两种体验方式。
设计经验 发布时间 : 2024-11-08
亚博智能RDK X3 ROBOT机器人项目实例,实现RKD X3 ROBOT的基本运动控制和位姿反馈
亚博智能RKD X3 ROBOT是一款面向机器人开发者和教育生态的智能机器人开发套件。该套件以旭日X3派为核心运算单元,以TogetherROS.Bot为核心机器人操作系统,集成成了建图、导航、人体跟随、手势识别等功能。本项目为亚博智能RKD X3 ROBOT机器人最小功能系统,该系统能够实现RKD X3 ROBOT的基本运动控制和位姿反馈。
设计经验 发布时间 : 2024-11-16
电子商城
登录 | 立即注册
提交评论