Ubuntu18.04+ROS+kalibr标定工具箱安装编译

2023-05-16

目录

前言

一、安装ROS

1.设置镜像源

2. 更新软件包索引

3. 安装ROS

 4.测试ROS是否安装成功

二、安装kalibr-melodic

1.kalibr简介

2.安装kalibr

 3.测试kalibr

参考文献:


前言

安装编译要我老命啊!经历了与kalibr的漫长而曲折的战斗。终于搞定。先来张成功的结果图打打鸡血!兄弟们,搞起!

一、安装ROS

ROS有多个版本,不同版本的ubuntu系统需要安装对应的ROS,对照如下表:

ROS版本ubuntu版本
indigoubuntu14.04
kineticubuntu16.04
melodicubuntu18.04
noeticubuntu20.4

本文以ubuntu18.04+ROS-melodic为例进行安装编译。(该版本使用较多,网上资源多)

注意:如读者安装版本与本文不同,请注意相关命令种将melodic更换成对应版本(kinetic或noetic)。安装步骤大同小异。

1.设置镜像源

如果可以可以科学上网的话,读者可以按照 国外源进行安装:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

设置公钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

否则使用国内源进行安装:

中科大源: 

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置公钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 上面源不可以的话:可以试试下面的

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

或者

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

 设置公钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

如果连接到密钥服务器时遇到问题,可以尝试用上一个命令替换hkp://pgp.mit.edu:80hkp://keyserver.ubuntu.com:80。可以到官网查询最新的密钥是什么。

2. 更新软件包索引

sudo apt-get update

3. 安装ROS

现给出官网 的安装步骤做参照:

export ROS1_DISTRO=noetic # kinetic=16.04, melodic=18.04, noetic=20.04
sudo apt-get install ros-$ROS1_DISTRO-desktop-full
sudo apt-get install python-catkin-tools # ubuntu 16.04, 18.04
sudo apt-get install python3-catkin-tools python3-osrf-pycommon # ubuntu 20.04

ubuntu18.04安装步骤: 

sudo apt install ros-melodic-desktop-full
sudo apt-get install python-catkin-tools

 构建包依赖关系:

rosinstall是一个常用的命令行工具,使您可以通过一个命令轻松下载ROS软件包的许多源代码树。

安装rosinstall:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

(注意:ubuntu20.04要将python改为python3)

其实这一步也会把rosdep安装好。

rosdep能够轻松地为要编译的源安装系统依赖性,并且是运行ROS中某些核心组件所必需的。

安装rosdep:

sudo apt install python-rosdep

 初始化并更新rosdep:

sudo rosdep init
rosdep update

如果安装rosdep失败的话,可改为安装rosdepc:

sudo apt-get install python-rosdepc
sudo rosdepc init
rosdepc update

设置环境:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

 4.测试ROS是否安装成功

为了测试一下我们的ROS是否安装成功,这里我们来测试一个例程——小海龟仿真器。 

1.打开一个新的终端(ctrl+alt+T),启动ROS Master。

roscore

 2.再打开一个新的终端(ctrl+alt+T),启动小海龟仿真器。

rosrun turtlesim turtlesim_node

 此时,运行完出现小海龟窗口。
3. 再打开一个新的终端(ctrl+alt+T),启动小海龟控制节点。

rosrun turtlesim turtle_teleop_key

最后,光标选中最后开启这个终端,按下方向键就可以控制小海龟移动啦! 

 4.检查rviz等高级功能的运行

打开第一个终端输入roscore 打开第二个终端输入rosrun rviz rviz 看到下图画面则rviz等其他组件安装成功。 

 5.使用rqt_graph

 打开一个新终端:

rosrun rqt_graph rqt_graph

成功运行出现以下窗口:

 

如果报错:ModuleNotFoundError: No module named 'rospkg'
请参照链接https://www.freesion.com/article/7153962566/ 进行解决。

二、安装kalibr-melodic

1.kalibr简介

Kalibr是一个由瑞士ETH开源的、使用比较广泛的相机校正工具包,主要进行包括以下三方面的校正(翻译自GitHub项目主页,部分修改):

  • 多相机标定:具有非全局共享重叠视场的相机系统的内参、外参标定
  • 相机-IMU校正:IMU和相机的内参、外参标定
  • 卷帘相机校正:对卷帘快门的相机进行标定

关于它的一系列理论,可以参考GitHub主页中列出的5篇文章。本篇博客只从安装和使用的角度对Kalibr进行介绍。

2.安装kalibr

Kalibr有两种方式可供使用,一种是预编译好的可执行文件包(CDE Package),直接打开就可以使用;另一种是源码,需要自己编译。

两种方式各有优势。CDE包运行最简单、快捷,不需要配置依赖环境,但同时会缺少Camera focus和Calibration validator这两个功能。而源码编译好处就是全功能,而且相比于CDE包运行效率会更快。当然坏处就是要配置一堆环境,还有可能面对各种奇奇怪怪的编译错误。

不过本人并未找到这传说中的CDE包,如果读者找到并会安装,欢迎在评论区留言,感谢!

本文以ubuntu18.04+kalibr为例进行安装。

1.安装依赖项

所有 Ubuntu 版本的通用要求如下:

sudo apt-get install -y \
    git wget autoconf automake nano \
    libeigen3-dev libboost-all-dev libsuitesparse-dev \
    doxygen libopencv-dev \
    libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev

 然后由于不同的Python版本,您将需要安装以下内容:

# Ubuntu 16.04
sudo apt-get install -y python2.7-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk3.0 python-tk python-igraph
# Ubuntu 18.04
sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph
# Ubuntu 20.04
sudo apt-get install -y python3-dev python3-pip python3-scipy \
    python3-matplotlib ipython3 python3-wxgtk4.0 python3-tk python3-igraph

本文为ubuntu18.04系统,安装命令如下:

sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph

 2.创建工作空间

首先我们可以创建一个工作区。将其配置为在发布模式下构建很重要,否则优化会很慢。

本文先给出官网安装示例:

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
export ROS1_DISTRO=noetic # kinetic=16.04, melodic=18.04, noetic=20.04
source /opt/ros/$ROS1_DISTRO/setup.bash
catkin init
catkin config --extend /opt/ros/$ROS1_DISTRO
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

ubuntu18.04安装命令如下:

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --merge-devel
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

 3.源码下载

官网教程是从网站克隆,但克隆版本并不符合安装系统,总是出错,显示kalibr_calibrate_imu_camera命令未找到,多次重新编译也未成功。

所以本文选用kalibr与ubuntu18.04对应的版本(其他ubuntu系统同理):

下载后将kalibr-fix-18.04.zip解压到 ~/kalibr_workspace/src文件夹下:

此外,克隆 

git clone https://github.com/ethz-asl/kalibr.git

这个版本kalibr-master做备用。

 

 4.源码编译:

cd ~/kalibr_workspace/
catkin build -DCMAKE_BUILD_TYPE=Release -j4

编译过程会出现如下问题:

 下载suiteaparse过久甚至失败,参考以下链接解决

https://blog.csdn.net/u010003609/article/details/104715475

其他错误可参照:https://blog.csdn.net/u010003609/article/details/104715475

不过一般的,如果编译错误,将报错所指路径文件全部替换为kalibr-master对应的文件,简单粗暴,亲测有效。

编译成功会如下图所示

如果直接按官网教程采用克隆编译,会缺少suiteasparse文件,最终显示为36 package. 

5.刷新工作空间。

source ~/kalibr_workspace/devel/setup.bash

 当然,上面的这行命令只对当前终端有效,这样每次使用前都需要source一下。如果想更加方便,可以直接输入gedit ~/.bashrc打开文件,将上面内容写入并保存。

最后输入source ~/.bashrc即可。

 3.测试kalibr

本文测试相机与imu联合标定,其他标定过程可参考kalibr官网。

从https://pan.baidu.com/s/1bWQT7g提取码2g2t下载数据包,解压放在工作空间里

在终端输入标定命令:

kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml --imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45

程序会输出三个文件:

  • report-imucam-dynamic.pdf:PDF版本的结果报告,包含绘制的图片和标定的参数。
  • results-imucam-dynamic.txt:以文本文件储存的标定结果。
  • camchain-imucam-dynamic.yaml:以YAML格式储存的标定结果。它是在camchain.yaml的基础上增加了所有相机相对于

标定后的结果如下图所示。

 到此,安装顺利结束,又可以搬砖去了。💻😴


参考文献:

https://blog.csdn.net/panjie_/article/details/113616630

https://blog.csdn.net/KIK9973/article/details/118755045

ROS官网:cn/ROS/Tutorials/UnderstandingTopics - ROS Wiki

 kalibr官网:https://github.com/ethz-asl/kalibr/wiki/installation

 https://zhaoxuhui.top/blog/2020/09/09/kalibr-installation-and-use.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04+ROS+kalibr标定工具箱安装编译 的相关文章

  • Python 实现 Dijkstar 路径规划算法

    Dijstar 最短路径算法 用于计算起始点到最终点的最短路径 一般采用的是贪心算法策略 原理可以参考 图解 Open list 和 close list 环境 Terminal 需要预先安装两个库 matplotlib 和 math pi
  • ROS中使用VLP16激光雷达获取点云数据

    ROS中使用VLP16激光雷达获取点云数据 个人博客地址 本文测试环境为 Ubuntu20 04 ROS Noetic 需要将激光雷达与PC连接 然后在设置 gt 网络 gt 有线中将IPv4改为手动 并且地址为192 168 1 100
  • ROS与navigation教程——ACML参数配置

  • ros 中ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdist

    ros 中ERROR cannot download default sources list from https raw githubusercontent com ros rosdistro master rosdep sources
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题

    rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题 rospack Warning error while crawling home sun boost filesystem status Permission de
  • ROS2踩坑记录

    Vscode 显示 找不到module 以此选择 设置 Python 在setting json中编辑 在 python autoComplete extraPaths 中添加额外的第三方库路径 如 opt ros foxy lib pyt
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • 激光雷达LMS111在ROS上的使用

    LMS111 10100 在ROS上的测试与使用 准备工作 设备 硬件 LMS111 101000激光雷达 软件 ubuntu16 04 ROS 开始 设备连接 将激光雷达与处理器 电脑 工控机等 通过以太网连接好 激光雷达默认的IP地址为
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • 树莓派配置wifi做热点方法

    http wiki jikexueyuan com project raspberry pi wifi html
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 在 CLion 中设置 ROS 包

    我正在使用 CLion C IDE 来编辑 ROS 包 我可以通过打开CMakeLists txt文件 但是 我收到一个错误 FATAL ERROR find package catkin 失败 在工作区和 CMAKE PREFIX PAT
  • 无法加载 LZ4 支持的 Python 扩展。 LZ4 压缩将不可用

    我是 ROS 新手 我刚刚打开终端并输入roscore和另一个终端并键入rostopic node我收到这个错误 上面写着 无法加载 LZ4 支持的 Python 扩展 LZ4 压缩将不可用 我搜索并去了https pypi org pro
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • 从 pcl::PointCloud 中删除点

    我是 PCL 新手 我正在使用 PCL 库 并且正在寻找一种从点云中提取点或将特定点复制到新点的方法 我想验证每个点是否符合条件 并且我想获得仅包含优点的点云 谢谢 使用 ExtractIndices 类 将要删除的点添加到 PointIn
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了
  • 无法在 Ubuntu 20.04 上安装 ROS Melodic

    我正在尝试使用这些命令在 Ubuntu 20 04 上安装 ROS Melodic sudo sh c echo deb http packages ros org ros ubuntu lsb release sc main gt etc

随机推荐

  • 学习c语言的总结

    学习时间 xff1a 早上9点 晚上9点 学习内容 xff1a 利用c语言对 的代码学习 xff0c 并根据自己的理解编写代码 xff0c 最后整合学习的代码和自己理解的代码 xff0c 编写出更优的代码 学习体会 xff1a 对一个问题举
  • C/C++程序编译成可执行程序步骤图文源码详解

    一个C 43 43 程序被编译为目标程序的过程中经历了四个部分 xff0c 分别是预处理 编译 汇编 链接 下面将通过一个简单的C 43 43 代码分别执行预处理 编译 汇编 链接四个步骤后的结果和基本原理讲解 注意 xff1a 博主是在u
  • 【linux】程序找不到动态库.so的解决办法|查看.so动态库信息|.so动态库加载顺序

    目录 找不到 so解决方法 方法一 xff1a 添加环境变量 方法二 xff1a 复制so文件到lib路径 方法三 xff1a xff08 推荐 xff09 添加ldconfig寻找路径 方法四 xff1a 在编译目标代码时指定该程序的动态
  • 使用Arduino开发ESP32(08):TCP Client与TCP Server使用

    文章目录 目的TCP Client使用说明常用方法基础使用演示作为WEB Client使用 TCP Server使用说明常用方法基础使用演示作为WEB Server使用 总结 目的 TCP是网络应用中常用的功能 xff0c 很多高级功能也是
  • ModBus学习笔记

    一 什么是ModBus xff1f 1 预备知识 xff08 1 xff09 什么是通讯协议 xff1f 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定 通过通信信道和设备互连起来的多个不同地理位置的数据通信系统 xff0c 要使
  • Jetson TX2 将系统迁移到SD卡,系统文件修改方式

    系统迁移步骤 xff1a 格式化SD卡 复制系统到SD卡 修改系统文件 1 在原系统盘内 cd boot extlinux sudo vim extlinux conf 该文件初始内容如下 xff1a TIMEOUT 30 DEFAULT
  • svn中打标签的一种方法

    SVN创建标签的方法 方法一 xff1a TortoiseSVN客户端浏览创建 选中需要创建标签的目录 xff0c 右键 gt copy to 在弹出框中输入新建标签所在的URL地址 xff0c 填写log信息 xff0c 确定 方法二 x
  • (图解 HTTP)一篇文章带你深入了解 HTTP 协议

    文章目录 一 了解客户端和服务器通讯的过程二 HTTP 是不保存状态的协议三 请求 URI 定位资源四 告知服务器意图的 HTTP 方法1 GET xff1a 获取资源2 POST xff1a 传输实体主体3 PUT xff1a 传输文件4
  • VC编译选项

    C 在预处理输出中保留注释语句 c 只编译 xff0c 不连接 xff0c 相当于在 34 Build 34 菜单下选择了 34 Compile 34 D 定义常量和宏 xff0c 与源程序里的 define 有相同效果 E 预处理C C
  • C语言中String库函数

    为了以后学习以及查阅方便 xff0c 转贴在此 xff0c 若有雷同 xff0c 敬请包含 文中内容摘自 C程序设计教程 xff08 美 xff09 H M Deitel P J Deitel著 xff0c 薛万鹏等译 xff0c 机械工业
  • JAVA与海康威视人脸机对接,使用ISUP方式

    1下载DEMO包 下载地址 JAVA海康威视人脸机isup方式对接demo包 Java文档类资源 CSDN下载 2设置依赖 需要把examples jar和jna jar引入项目 3配置本地 config properties 把ip地址设
  • Keil工程

    文章目录 1 Keil工程添加源文件和头文件 xff08 c和 h xff09 的方法1 方式一2 方式二 2 keil工程生成的MAP文件取消优化 1 Keil工程添加源文件和头文件 xff08 c和 h xff09 的方法 1 方式一
  • 2020-09-28

    通用异步收发器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART xff0c 是一种串行 异步 全双工的通信协议 xff0c 在嵌入式领域应用的非常广泛 UAR
  • 【cmake】CMakeList添加库|添加头文件|添加路径|add_executable、add_library、target_link_libraries|添加编译选项|宏开关

    目录 官网查阅 开胃菜例子 CMakeLists生成和添加依赖库 CMakeLists更多小例子 生成 so共享库文件 调用 so共享库文件 生成一个可执行程序的 CMakeList 生成一个 so动态库的 CMakeList add li
  • TCP连接的建立

    前言 xff1a TCP的问题已然困惑我很久了 xff0c 一直是一知半解 xff0c 靠记忆来记住TCP连接的过程 xff0c 不能根本上理解 xff0c 漏洞百出 xff0c 最近抽时间把TCP经典书籍 TCP IP详解 阅读了一下 废
  • 【Nokov】动作捕捉系统培训笔记

    Nokov度量科技 简介 xff1a Nokov是一种光学三维动作捕捉系统 xff0c 采用红外镜头捕捉被动发光标记点 xff0c 构建三维数据的动作采集与分析系统 xff0c 运用于运动分析 步态康复 模拟训练 机械仿生 机器人 无人机
  • 【Nokov】动作捕捉系统标定与机械臂各坐标系的说明

    导语 xff1a 这一周的工作先是完成了度量系统Nokov的标定 xff0c 然后对机械臂自身的编码器得到的坐标值与动作捕捉系统Nokov测得的坐标值进行了比较 xff0c 来观察二者之间的误差 在这个过程中我对Nokov软件Seeker的
  • 【Nokov】关于动捕系统获取刚体姿态的说明

    动作捕捉系统Nokov获取刚体的姿态信息 前言 xff1a 对于动捕系统软件Seeker的基本使用以及获取单个Marker的位置操作已经比较熟悉了 xff0c 对于机械臂而言 xff0c 接下来就是获取它的姿态信息 xff0c 经过昨天下午
  • 【机器人】机械臂与动捕Nokov的深入了解

    导语 xff1a 每次的实践操作后 xff0c 总能刷新我对机械臂以及Nokov的认识 xff0c 既让我惊喜不已 xff0c 同时也让我知道我掌握的还远远不够 xff0c 需要不断的学习 关于机械臂 示教器上NOA姿态表示方式 xff1a
  • Ubuntu18.04+ROS+kalibr标定工具箱安装编译

    目录 前言 一 安装ROS 1 设置镜像源 2 更新软件包索引 3 安装ROS 4 测试ROS是否安装成功 二 安装kalibr melodic 1 kalibr简介 2 安装kalibr 3 测试kalibr 参考文献 xff1a 前言