ubantu20.04 跑通ros2版的orbslam2

2024-05-27 00:36

本文主要是介绍ubantu20.04 跑通ros2版的orbslam2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的历程

先编译的非ros版的robslam2(非常详细)

ubuntu20.04配置并编译ORB-SLAM2_ubuntu20.04安装orb-lslam2-CSDN博客

然后装ros2(非常详细)

详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_ubuntu安装ros-CSDN博客

遇到的问题
一、usb_cam-test.launch的内容git下来的项目不可用,需要手动更改为

<launch><node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" ><param name="video_device" value="/dev/video0" /><param name="image_width" value="640" /><param name="image_height" value="480" /><param name="pixel_format" value="yuyv" /><param name="camera_frame_id" value="usb_cam" /><param name="io_method" value="mmap"/></node><node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen"><remap from="image" to="/usb_cam/image_raw"/><param name="autosize" value="true" /></node>
</launch>

二、相机标定 找到标定结果文件后,按照其数据修改Examples/ROS/ORB_SLAM2目录下Asus.yaml

标定文件

# oST version 5.0 parameters[image]width
640height
480[narrow_stereo]camera matrix
796.930694 0.000000 286.884431
0.000000 813.678506 319.738009
0.000000 0.000000 1.000000distortion
0.040080 -0.391803 0.041621 -0.044204 0.000000rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000projection
785.134277 0.000000 266.168442 0.000000
0.000000 804.472961 331.780934 0.000000
0.000000 0.000000 1.000000 0.000000

修改后的asus文件

# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 796.93069
Camera.fy: 813.67851
Camera.cx: 286.88443
Camera.cy: 319.73801Camera.k1: 0.040080
Camera.k2: -0.391803
Camera.p1: 0.041621
Camera.p2: -0.044204

三、编译./build_ros.sh

第一个问题 

-- Configuring incomplete, errors occurred!
See also "/home/user/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found. Stop.

编译失败一次记得删掉ros下的build文件

有conda环境的或者此时报错的可以试下conda deactivate

然后.bashrc文件 最后三行应该是这

source /home/you/catkin_ws/devel/setup.sh
source /opt/ros/noetic/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/you/catkin_ws/src/ORB_SLAM2/Examples/ROS
第二个问题 orbslam2 fatal error: …/…/config.h: 没有那个文件或目录

这是因为g2o没有编译完整,进入ORB_SLAM2文件夹,重新执行 ./build.sh

第三个问题 摄像头启动失败记得

source ~/catkin_ws/devel/setup.bash

这篇关于ubantu20.04 跑通ros2版的orbslam2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006031

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

用python fastapi写一个http接口,使ros2机器人开始slam toolbox建图

如果你想使用Python的FastAPI框架编写一个HTTP接口,以便通过接口启动ROS 2机器人的SLAM Toolbox建图,可以按照以下方式进行: 首先,确保你已经安装了fastapi和uvicorn库。你可以使用以下命令进行安装: pip install fastapi uvicorn 接下来,创建一个Python文件(例如app.py),并将以下代码添加到文件中: import

ros2

https://www.guyuehome.com/805

[rk3588 ubuntu20.04]移植ROS2

目录 1 使用命令行安装ROS2 1.1设置语言 1.2添加源 1.3安装ROS2 1.4设置环境变量 2 在编译源码阶段安装ROS2 2.1调整roofts.img大小 2.2 安装ROS2 3 ROS2功能测试 1 使用命令行安装ROS2 1.1设置语言         设置语言为UTF-8。 sudo apt update && sudo apt insta

[Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8

GIT地址:Https://github.com/monemati/PX4-ROS2-Gazebo-YOLOv8 apt install python3.8-venv  Create a virtual environment # createpython -m venv /home/xg/px4-venv# activatesource /home/xg/px4-venv/bi

【ros2】geometry_msgs::msg::TransformStamped 数据类型详解

geometry_msgs::msg::TransformStamped 数据类型详解 1. 数据类型定义 geometry_msgs::msg::TransformStamped 是 ROS 2 中的一个消息类型,用于表示一个时间戳和坐标变换信息。 2. 结构 geometry_msgs::msg::TransformStamped 包含以下字段: struct TransformSt

【ros2】 const builtin_interfaces::msg::Time timestamp解析

解析 const builtin_interfaces::msg::Time & timestamp 1. 数据类型 builtin_interfaces::msg::Time 是 ROS 2 中的一个消息类型,用于表示时间戳。 2. 结构 builtin_interfaces::msg::Time 包含以下字段: struct Time{std::uint32_t sec;std::

【ROS2】PID控制

1、简述 PID控制器由三个部分组成:比例控制(Proportional)、积分控制(Integral)和微分控制(Derivative)。 比例环节:起主要控制作用,使反馈量向目标值靠拢,但可能导致振荡。积分环节:消除稳态误差,但会增加超调量。微分环节:产生阻尼效果,抑制振荡和超调,但会降低响应速度。 2、PID中物理量的设计 PID 根据目标值和反馈值,计算输出值 目标值和反馈值为

ros2--jupyter

问题 import rclpy---报错 链接 strings /usr/lib32/libstdc++.so.6 | grep GLIBCXX_3.4.30

【ROS2】launch启动文件:高级

1、事件 1.1 简述 ROS2的Launch系统通过事件处理程序管理和监控用户定义的流程。 同时还负责监控流程状态并响应状态变化,这些变化称为事件。 ROS2 Launch系统中的事件,可以处理各种进程和节点状态变更,例如流程启动、IO操作、流程退出等。 注册事件处理程序,可以对这些事件进行响应。例如,当某个节点启动失败时,可以自动重启该节点或发送通知。这种能力使人们能够编写更为智能和自恢