当前位置: 首页 > news >正文

[ROS2系列] ubuntu 20.04测试rtabmap

目录

背景:

一、配置 turtlebot3

二、安装RTAB-Map ROS2包:

三、启动 Turtlebot3 模拟器:

四、启动 RTAB 地图:

五、启动导航(nav2_bringup应安装软件包):


背景:

1、设备:pc;旭日派x3(后续会加上,目前只有pc)

2、环境:Ubuntu20.04;ROS2(Foxy)

一、配置 turtlebot3

turtlebot3缺什么东西参考地平线文档​​​​​​​5.2. Nav2 — 地平线机器人平台用户手册 1.0 文档

二、安装RTAB-Map ROS2包:

  • cd ~/ros2_ws
    git clone https://github.com/introlab/rtabmap.git src/rtabmap
    git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    rosdep update && rosdep install --from-paths src --ignore-src -r -y
    export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB)
    #但是这个地方我设置的2
    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
    解析:export MAKEFLAGS="-j6"
    这句命令是设置环境变量`MAKEFLAGS`的值为`"-j6"`。它通常用于告诉编译工具`make`在编译过程中使用多个并行工作线程(也称为"jobs")。具体来说:- `"-j6"` 中的 `-j` 参数告诉 `make` 启动多少个并行工作线程来执行编译任务。在这里,`6` 意味着同时启动 6 个并行工作线程。这可以显著加快编译过程,特别是在具有多个处理器核心的计算机上。- 注释 `# Can be ignored if you have a lot of RAM (>16GB)` 是对命令的一个注释,它建议如果你的计算机具有大于16GB的RAM内存,那么可以忽略这个设置,因为RAM较大的计算机通常更能容纳并行编译所需的内存。在内存受限的系统上,使用太多并行工作线程可能导致内存不足的问题,因此可以根据系统资源来决定是否设置 `-j` 参数。总之,这个命令是用来控制编译工具在编译过程中使用多少并行工作线程,以加快编译速度。根据你的计算机硬件和内存情况,你可以选择是否使用这个设置以及设置多少个并行工作线程。
    
  • 注:我在build时候一直不成功,显示缺少东西,解决方法:

  • sudo apt remove ros-foxy-rtabmap*

    一直build,直至成功。

  • 三、启动 Turtlebot3 模拟器:

  1. export TURTLEBOT3_MODEL=waffle
    ros2 launch turtlebot3_gazebo turtlebot3_world.launch.pyexport TURTLEBOT3_MODEL=waffle
    ros2 run turtlebot3_teleop teleop_keyboard

    四、启动 RTAB 地图:

  2. ros2 launch rtabmap_demos turtlebot3_scan.launch.py
  3. ​​​​​​​​​​​​​​

    rtab_map

    五、启动导航(nav2_bringup应安装软件包):

  4. ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True
    ros2 launch nav2_bringup rviz_launch.py
    

后续会接入虚拟摄像头进行测试

http://www.lryc.cn/news/192766.html

相关文章:

  • 【Java学习之道】JavaFx 框架与组件介绍
  • Windows bat 脚本设计-开机自启动服务的方法、bat 调用另外的 bat 脚本 -没有java环境也能运行jar,在不安装jdk下如何运行jar包
  • zabbix触发器与动作
  • 华纳云:Nginx服务器可视化配置问题怎么解决
  • C指针与一维二维数组、数组指针与指针数组、函数指针_数组的理解使用
  • 安装运行vue-element-admin的报错问题-解决办法
  • 高数笔记03:几何、物理应用
  • js + selenium 获取chatgpt的accessToken
  • Spring MVC 十一:中文乱码
  • Excel恢复科学技术法显示的数据
  • springboot 志同道合交友网站演示
  • 如何理解BFC、开启BFC、BFC解决哪些问题
  • 3D包容盒子
  • 用 Three.js 创建一个酷炫且真实的地球
  • 【数据结构】线性表与顺序表
  • ChatGPT
  • 矿区井下智慧用电安全监测解决方案
  • 网站列表页加密:三次请求后返回内容多\r
  • 12.JVM
  • 关于网络协议的若干问题(四)
  • opencv图像卷积操作和常用的图像滤波函数
  • 习题1. 31
  • 见微知著:从企业售后技术支持看云计算发展
  • C++笔记之如何给 `const char*` 类型变量赋值
  • 9.Linear Maps
  • 大数据Doris(十):添加BE步骤
  • Vue2 +Element UI 表格行合并
  • SuperEdge易学易用系列-一键搭建SuperEdge集群
  • 农场养殖农产品商城小程序搭建
  • 大语言模型之十七-QA-LoRA