jetson配置笔记


typora-root-url: /home/msj/ubuntu笔记本台式机环境配置说明/images


Ubuntu18.04 配置

说明:我们所有文档配置都是按照ubuntu18.04,保证x86架构(笔记本台式机)和 ARM架构(jetson Nano只能安装18.04)的一致性

1. 更换各类源

我们所有源都更换清华源, 如有问题请参考官网

1.1 ubuntu

Ubuntu 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为清华源,即可使用选择的软件源镜像。

# 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup#打开文件,内容更换成下面内容并保存
sudo gedit /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiversedeb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse

2.安装ROS-Melodic

  • 设置清华源的source.list
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
  • 设置GPG Key,并更新
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
  • 安装桌面完整版
sudo apt install ros-melodic-desktop-full

如果安装额外的其他包,用下面命令

sudo apt install ros-melodic-PACKAGE_NAME
  • 设置环境变量,令每个终端窗口都可以启动ros
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  • 安装依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
  • 初始化rosdep
sudo rosdep init

Bug1 - 会出现错误:这个错误是因为网络无法连接,无法下载20-default.list文件

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

Solution1 - 我们参考清华源处理方法,也有其他更改下载链接方法,请自行百度。

# 手动模拟 rosdep init
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
# 为 rosdep update 换源
export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
rosdep update# 每次 rosdep update 之前,均需要增加该环境变量
# 为了持久化该设定,可以将其写入 .bashrc 中,例如
echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc
#更新
rosdep update

出现以下输出:

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/base.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/python.yaml
Hit https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/ruby.yaml
Query rosdistro index https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/msj/.ros/rosdep/sources.cache
  • 测试是否安装成功,打开roscore
roscore

出现以下输出,显示ros证明安装成功.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3. 安装cartographer-ros

介绍

cartographer_ros的安装、编译、与运行

软件架构

cartographer_install:cartographer的依赖安装包、源码安装包、安装脚本

cartographer_ros_ws/src/cartographer:cartographer的源码(如果之后需要修改carto的算法,需要在这里修改)

cartographer_ros_ws/src/cartographer_ros:cartographer的ros接口

安装
  1. 如果之前安装过这些库,删除系统中之前安装过的相关依赖库。

    cd /usr/local/include
    sudo rm -rf absl
    sudo rm -rf ceres
    sudo rm -rf cartographer
    cd google
    sudo rm -rf protobuf
    
  2. 卸载ros自带的proto2

    sudo apt-get remove libprotobuf-dev
    
  3. 安装一些系统依赖

    sudo apt-get install \clang \cmake \g++ \git \google-mock \libboost-all-dev \libcairo2-dev \libcurl4-openssl-dev \libeigen3-dev \libgflags-dev \libgoogle-glog-dev \liblua5.2-dev \libsuitesparse-dev \lsb-release \ninja-build \stow \python-wstool \python-rosdep \python-sphinx \libatlas-base-dev
    
  4. 安装cartographer_install中的依赖库

    • 如果之前安装过,需要事先删除依赖库中的build文件夹.
    • 最好不要使用脚本安装,最好手动安装,以看出每一步安装的具体报错.
    cd cartographer_install# Build and install abseil-cpp
    set -o errexit
    set -o verbosecd abseil-cpp
    git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
    mkdir build
    cd build
    cmake -G Ninja \-DCMAKE_BUILD_TYPE=Release \-DCMAKE_POSITION_INDEPENDENT_CODE=ON \-DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \..
    ninja
    sudo ninja install
    cd /usr/local/stow
    sudo stow absl# Build and install Ceres. 注意使用ninja编译可能失败 因为板子性能限制
    cd -
    cd ../../ceres-solver
    mkdir build
    cd build
    cmake .. -G Ninja -DCXX11=ON
    ninja
    #CTEST_OUTPUT_ON_FAILURE=1 ninja test
    sudo ninja install# 如果ninja编译卡死则用cmake编译, 如果上述步骤通过,忽略此步骤
    cd ..
    rm -rf build
    mkdir build
    cd build
    cmake ..
    make
    sudo make install# Build and install proto3.
    cd ../../protobuf
    mkdir build
    cd build
    cmake -G Ninja \-DCMAKE_POSITION_INDEPENDENT_CODE=ON \-DCMAKE_BUILD_TYPE=Release \-Dprotobuf_BUILD_TESTS=OFF \../cmake
    

装arm的:
cd …
把autogen.sh文件的属性改成可执行文件
./autogen.sh
./configure --host=arm-linux --with-protoc=protoc
make
sudo make install
ninja
sudo ninja install

Build and install Cartographer.

cd …/…/cartographer
mkdir build
cd build
cmake … -G Ninja
ninja
#CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

#### 编译建立工作空间,并将我们准备的src(包含多个功能包的文件夹)拷贝到工作空间下(以后只需要修改cartographer_ros,即.launch和.lua文件)​```shell
# 创建工作空间
mkdir ~/msj_ws# 将我们src拷贝到工作空间下
cp YOUR_PATH/src ~/msj_wscatkin_make

https://google-cartographer-ros.readthedocs.io/en/latest/demos.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/174778.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用二维码展示产品,随时查看图文并茂的介绍

传统的产品宣传方式,往往以产品手册、宣传单等纸质物料为主,不仅会造成客户获取和携带上的不便,一旦内容需要更新,就必须重新印刷,造成不必要的浪费,而且老用户看到的仍然是旧内容。 其实可以用二维码进行…

vuejs - - - - - 移动端设备兼容(pxtorem)

pxtorem的使用 1. 依赖安装2. vue.config.js配置3. 动态设置html的font-size大小4. 效果如图: 1. 依赖安装 yarn add postcss-pxtorem -D 2. vue.config.js配置 module.exports {...css: {loaderOptions: {postcss: {plugins: [require("postcss-pxtorem&quo…

吊打Fast Request还免费? 这款插件真心好用!

今天给大家推荐一款IDEA插件:Apipost Helper,比Fast Request更好用并且完全免费!三大亮点功能:写完代码IDEA内一键生成API文档;写完代码IDEA内一键调试,;生成API目录树,双击即可快速…

【debug】解决Kali虚拟机开机黑屏,左上角光标一直闪动无法开机问题

做网络攻防实验时,突然Kali无法打开,遇到这个问题。。。。。。 遇到的问题 突然kali虚拟机变成如下黑屏,无法开机,左上角光标闪动,重启无效。 解决办法 在上图界面,按Ctrl F3(不同电脑快捷键…

记一次FastJson报错

文章目录 报错内容原因探寻原因及解决方案 报错内容 起因是一段很普通的字符串转Java对象的代码,在本地和内网测试都没有问题,偏偏外网一跑就报错,错误如下: 报错的代码特别简单,涉及到公司代码这里用测试代码演示,就…

循环服务器

一、服务器模型 在网络程序里面,通常都是一个服务器处理多 个客户机。为了处理多个客户机的请求, 服务器端的程序有不同的处理方式。 1、循环服务器模型 socket(); bind(); liste(); while(1) { accept(); while(1) { recv ret0; break; } close(acceptfd); } close…

【C++11/高级语法】bind绑定器和function函数对象

目录 bind1st和bind2nd什么时候会用到bind1st和bind2nd的底层实现原理function函数对象类型的应用示例lambda表达式的应用实践 橙色 绑定器和函数对象operator() 函数对象就是对象拥有()运算符重载函数,这个对象使用起来就跟函数调用特别相似。 1.C STL中的绑定器…

前端学习笔记--面试题系列总结

event loop它的执行顺序: 一开始整个脚本作为一个宏任务执行执行过程中同步代码直接执行,宏任务进入宏任务队列,微任务进入微任务队列当前宏任务执行完出队,检查微任务列表,有则依次执行,直到全部执行完执…

Hadoop入门——数据分析基本步骤

文章目录 1.概述2.分析步骤2.1第一步 明确分析目的和思路2.2第二步 数据收集2.3第三步 数据处理2.4第四步 数据分析2.5第五步 数据展现2.6第六步 报告撰写 3.总结 1.概述 2.分析步骤 2.1第一步 明确分析目的和思路 2.2第二步 数据收集 2.3第三步 数据处理 2.4第四步 数据分析 …

如何使用Docker搭建Drupal内容管理系统并远程访问

🎬 鸽芷咕:个人主页 🔥个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…

Kakaotalk如何注册?常见问题解答

kakaoTalk是一款韩国即时通讯软件,使用程度类似于国内的微信,他还包含叫车服务、食品外送、餐厅预订、支付和游戏等多种功能,几乎每个韩国人都在使用KakaoTalk。 因此,对于要发展韩国市场的独立站人,这款软件必定是营…

人大金仓物理备份异机恢复

概述 KingbaseES V8支持使用RMAN物理备份在异机环境恢复,通过重新克隆方式完扩展主备集群。 原集群环境:演示用例,仅供参考 查看原集群备份和物理备份路径 异机恢复 前置条件 *获取原集群物理备份文件,包括全量备份、增量备份…