跟着仙凡兄学习 ros2 ubuntu与windows的安装(本人小白开始,一步一步跟着坑走,最后都成功的)

目 录
1 ROS安装的步骤 2
1.1 ROS UBUNTU安装 2
1.1.1 环境配置:UBUNTU20.04 2
1.1.2 设置编码 2
1.1.3 添加ROS2 APT仓库 3
1.1.4 接下来可以安装ROS2了 3
1.1.5 创建 COLCON 工作区并下载教程 3
1.1.6 设置环境 4
1.1.7 双环境设置 4
1.1.8 验证之一 5
1.2 ROS2 WINDOWS安装 5
1.2.1 进入如下网站,安装CHOCOLATEY 5
1.2.2 ROS2 FOXY安装 6
1.2.3 运行ROS 6
1.2.4 ROS在WINDOWS运行出现的问题 9
2 参照网站 9

1 ros安装的步骤
1.1 ros Ubuntu安装
1.1.1 环境配置:ubuntu20.04
官方网址:
https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html
1.1.2 设置编码
sudo apt update
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
下面的验证非必须:

运行完上面的命令后,可在终端输入如下命令验证是否成功

$ locale

如果输出如下表明设置编码成功了。

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=“en_US.UTF-8”
LC_NUMERIC=“en_US.UTF-8”
LC_TIME=“en_US.UTF-8”
LC_COLLATE=“en_US.UTF-8”
LC_MONETARY=“en_US.UTF-8”
LC_MESSAGES=“en_US.UTF-8”
LC_PAPER=“en_US.UTF-8”
LC_NAME=“en_US.UTF-8”
LC_ADDRESS=“en_US.UTF-8”
LC_TELEPHONE=“en_US.UTF-8”
LC_MEASUREMENT=“en_US.UTF-8”
LC_IDENTIFICATION=“en_US.UTF-8”
LC_ALL=en_US.UTF-8
1.1.3 添加ros2 apt仓库

通过检查此命令的输出,确保已启用Ubuntu Universe存储库。

apt-cache policy | grep universe

输出应如下:

500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
release v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64

若没有看到像上面这样的输出行,依次执行如下命令:

sudo apt install software-properties-common
sudo add-apt-repository universe

继续执行如下命令:

sudo apt update && sudo apt install curl gnupg lsb-release
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
1.1.4 接下来可以安装ROS2了
sudo apt update
sudo apt upgrade

推荐桌面版,比较推荐。

sudo apt install ros-foxy-desktop
1.1.5 创建 Colcon 工作区并下载教程
在这里插入图片描述

直接参照官网就行
1.1.6 设置环境
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
1.1.7 双环境设置
echo “ROS noetic (1) or ROS2 foxy (2)?”
read edition
if [ “KaTeX parse error: Expected 'EOF', got '#' at position 62: …ic/setup.bash #̲这是ros1根目录环境变量 …edition” -eq “1” ];then
source /opt/ros/noetic/setup.bash #这是ros1根目录环境变量
source ~/catkin_ws/devel/setup.bash#这是ros1工作空间环境变量
echo using ros noetic
else
source /opt/ros/foxy/setup.bash #这是ros2系统环境变量
source ~/colcon_ws/install/local_setup.sh #添加在这里***************
echo using ros2 foxy
fi

在这里插入图片描述

1.1.8 验证之一

打开一个终端输入如下命令:

ros2 run turtlesim turtlesim_node

打开一个新的终端,输入如下命令:

ros2 run turtlesim turtle_teleop_key
1.2 ros2 windows安装
注意:前提安装vs2019以上
1.2.1 进入如下网站,安装chocolatey
https://docs.ros.org/en/iron/Installation/Windows-Install-Binary.html
https://chocolatey.org/install
cmd 以管理员身份运行,运行如下命令
@“%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”
1.2.2 ROS2 foxy安装
第一行命令:创建一个文件夹用以存放chocolatey安装的包。
第二行命令:设置chocolatey的包安装路径
第三行命令:添加源
第四行命令:安装
mkdir c:\opt\chocolatey
set ChocolateyInstall= D:\install\rosPackage
choco source add -n=ros-win -s=“https://aka.ms/ros/public” --priority=1
choco upgrade ros-foxy-desktop -y --execution-timeout=0
其他包:
mkdir c:\opt\chocolatey
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s=“https://roswin.azurewebsites.net/api/v2” --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
把上面命令执行完,剩下的就是等待了。根据不同的网络状况和会不会架梯等因素,等的时间不同。本人在墙内试了下,慢到想哭,然后架了张梯子等了两个多钟就成了!
1.2.3 运行ros
学习:windows中有空格的路径需要加上"xx xx",例如"Program Files"
1.2.3.1 方法一(推荐)
参考:https://www.codenong.com/cs106261159/
3.1在桌面右键新建一个快捷方式,在"请键入对象的位置"里面输入下面的命令(这里区分VS版本的,本人是社区版本,所以命令如下,不过不是的话可以看看Wiki对应的命令):
C:\Windows\System32\cmd.exe /k " C:“Program Files”“Microsoft Visual Studio”\2022\Professional\Common7\Tools\VsDevCmd.bat " -arch=amd64 -host_arch=amd64&& set ChocolateyInstall= D:\install\rosPackage&& c:\opt\ros\foxy\x64\setup.bat

1.2 将快捷方式命名为"ROS"(或者喜欢别的也行)
1.3 右键快捷方式图标->属性->高级->用管理员方式运行->各种确定
Test:
roscore
就会看到ROS跑起来了!!!当然也可以直接用rosbag直接播放之前采集的bag包并使用rviz去看数据。
1.2.3.2 方法二
参考:https://blog.csdn.net/qq_40344790/article/details/129115083
第一步:建立bat:建立文件 ros.bat(中间不能直接设置setup.bat)
在ros.bat中添加如下内容:
@echo off
C:
cd C:\opt\ros\foxy\x64
C:\Windows\System32\cmd.exe /k “C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\VsDevCmd.bat” -arch=amd64 -host_arch=amd64
第二步:运行ros.bat
双击ros.bat
第三步:
setup.bat
ros2 run turtlesim turtlesim_node

打开一个新的终端,输入如下命令:

ros2 run turtlesim turtle_teleop_key
方法三
前面介绍的快捷方式的方法有点low,我们可以用Windows Terminal这个新的管理终端来比较好的管理ROS。刚刚在不久前,这个终端的正式版本发布了,因此我们只要去Win10自带的商城Microsoft Store直接下载安装即可。
安装后需要为ROS设置终端环境:
在开始菜单中找到终端并右键选择以管理员身份启动。
在"+“号后面的下拉菜单中选择设置
在设置文件的"profiles"队列中为ROS加入新的设置块,如下:
“profiles” :
{
list:
[

{
“commandline” : “C:\Windows\System32\cmd.exe /k “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat” -arch=amd64 -host_arch=amd64 && set ChocolateyInstall=c:\opt\chocolatey&& c:\opt\ros\melodic\x64\setup.bat”,
“guid” : “{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx}”,
“icon” : “ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png”,
“name” : “ROS”,
“startingDirectory” : “c:\ws”
},
上面的代码中有一行"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx”,其需要被替换成VS的全局唯一标识。操作如下:
还是使用"x64 Native Tools Command Prompt for VS 2019"打开VS终端,输入uuidgen,然后就得到全局唯一标志,替换掉那些xxx就可以了。
另外如果终端比较常用来搞ROS,也可以直接设置成打开时默认打开的状态(Windows Terminal其实有点像一个终端管理器,而我们刚才设置的ROS终端只是其中的一个,如果不选择默认打开则一开始打开的是一个普通的PowerShell终端)
设置的操作如下:
“alwaysShowTabs” : true,
“copyOnSelect” : false,
“defaultProfile” : “{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx}”,
运行终端的时候同样需要以管理员身份运行,guihub上已经有人提出要让终端始终保持打开就是管理员的权限,然而还没得到实施。在那之前就只能先苦逼的点了,Ctrl+Shift+单击“开始”菜单或任务栏中的终端图标是以管理员身份运行的便捷方式。。。
从本质上来说,它比之前介绍的快捷方式好的地方就是把使用ROS一定会打开的多个终端统一管理起来了,另外的优势似乎就是颜值高了!!

1.2.4 ros在windows运行出现的问题
不过这个控制台不太智能,有下面三个问题:
不能自动补全ROS的命令
默认的字符集是GB2312,如果编程中使用的文档格式是别的(大概率会是UTF-8),那进行catkin_make的时候就会出错
不能在指定路径下打开
对于这三个问题的解决办法是:
无法解决,似乎它在Windows上实现这些命令是经过一系列映射搞出来的,比较难以琢磨,希望有老哥能解决。
使用notepad++等工具将文档转成ANSI编码
无法解决,不太懂这个。
2 参照网站
参照网站:
https://blog.csdn.net/weixin_44458490/article/details/125447703
https://blog.csdn.net/m0_62353836/article/details/128579677(优先)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《剑指offer》数学第二题:求1+2+3+...+n

题目描述: 求123...n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路: 我们可以用递归和短路运算符来进行运算,具体代码如下。 代码实现: pac…

基于知识图谱的图神经网络推理

基于知识图谱的图神经网络推理 - 知乎导读 本次分享题目为基于知识图谱的图神经网络推理,首先会介绍知识图谱相关的背景。第二部分GNN for KG会以CompGCN为基础,介绍将图神经网络迁移到知识图谱上面的工作。第三部分主要介绍针对知识图谱所设计的GNN…ht…

开启Android学习之旅-1

最近在学习《第一行代码 Android》,两天看书把所有代码都敲了一遍。由于之前没有接触过 Kotlin,导致了囫囵吞枣,跟着书会敲,离开就忘了。Android 大佬开发的各种框架、控件好像大部分都用了 Kotlin。看他们的源码,理解…

齐次和非齐次线性方程组和非线性方程组的求解

1.非齐次线性方程组的求解 AXb为非齐次线性方程组的向量表示 求解方法1就是上面所述,其中求解方法2解决求解方法1中ATA不可逆或括号中计算过程过于麻烦的问题。 2.齐次线性方程组的求解 AX0为齐次线性方程组的向量表示 当p>q的时候 A进行SVD分解后的V矩阵正好…

Linux的LVM与磁盘配额

一.LVM 1.什么是LVM Logical Volume Manager 逻辑卷管理 能够在保持现有数据不变的情况下,动态调整磁盘容量,从而提高磁盘管理的灵活性 /boot 分区用于存放引导文件,不能基于LVM创建 解释:就是将多个不同的物理卷组合在一起形…

iOS手机查看蓝牙底层日志

文章目录 一、需要的环境二、在iOS设备上安装Profiles文件三、安装Xcode四、安装packetLogger五、启动蓝牙数据包分析 参考文档:A New Way to Debug iOS Bluetooth Applications 一、需要的环境 iOS 13 device and cableMac computer/laptopApple Developer Progr…

大数据情况下如何保证企业数据交换安全

数据交换是指在网络或其他方式下,不同主体按照规定的规则和标准实现数据的共享、传输和处理的过程。大数据时代的到来使得数据交换的重要性更为凸显,大数据带来了海量、多样、高速、低价值密度等特点,也带来了更多的价值挖掘和应用场景。 保障…

大模型日报-20240104

文生视频下一站,Meta已经开始视频生视频了 https://mp.weixin.qq.com/s/OEzex40EtaeG0sKDvxdY7Q 文本指导的视频到视频(V2V)合成在各个领域具有广泛的应用,例如短视频创作以及更广泛的电影行业。扩散模型已经改变了图像到图像&am…

听GPT 讲Rust源代码--compiler(6)

File: rust/compiler/rustc_index/src/idx.rs 在Rust的源代码中,idx.rs文件位于rust/compiler/rustc_index/src/目录下,它定义了用于索引访问的Idx trait。以下是该文件的详细介绍: Idx是一个基本的整数索引类型,它用于支持Rust编…

什么是员工监控?你需要知道的一切

一般来说,员工监控是一种增强员工效率的授权方法,不仅可以更好地了解何时,还可以更好地了解如何进行。无论您的员工是远程、混合还是办公室优先,员工监控始终有助于提高生产力。 长期以来,传统的员工监控一直与监督和…

MATLAB中./和/,.*和*,.^和^的区别

MATLAB中./和/,.*和*,.^ 和^ 的区别 MATLAB中./和/,.*和*,.^ 和^ 的区别./ 和 / 的区别.//实验实验结果 .* 和 * 的区别.**实验实验结果 .^ 和^ 的区别.^n^n实验运行结果 MATLAB中./和/,.和,.^ 和^ 的区别 …

FFmpeg安装保姆级教程

在上一篇文章《IOS:Safari无法播放MP4(H.264编码)》里我们使用了FFmpeg来设置MP4的Profile和Level值,从而转换出适合IOS Safari上播放的MP4文件。本文接着介绍一下FFmpeg的安装: 一、安装过程 (1&#xf…

FFmpeg之——获取上传视频的尺寸(长、宽)

获取上传视频的尺寸: 获取视频尺寸通常需要借助第三方库FFmpeg。 首先,确保你的系统中已安装了FFmpeg,并且FFmpeg的可执行文件路径已经添加到你的系统环境变量中。 1.官网下载ffmpeg 进入 链接: ffmpeg官网 网址,点击下载wind…

threejs官方demo解析(一)

官网效果图&#xff1a; demo代码及我添加的注释&#xff1a; <!DOCTYPE html> <html lang"en"><head><title>three.js webgl - animation - keyframes</title><meta charset"utf-8"><meta name"viewport&qu…

Apache HTTPD 换行解析漏洞(CVE-2017-15715)详解

Apache HTTPD 换行解析漏洞&#xff08;CVE-2017-15715&#xff09; 1.cd到CVE-2017-15715 cd vulhub/httpd/CVE-2017-15715 2.运行docker-compose build docker-compose build 3.运行docker-compose up -d 4.查看docker-compose ps 5.访问 出现这个表示安装成功 6.漏洞复现…

【代码随想录】刷题笔记Day45

前言 早上又赖了会床......早睡早起是奢望了现在&#xff0c;新一年不能这样&#xff01;支棱起来&#xff01; 377. 组合总和 Ⅳ - 力扣&#xff08;LeetCode&#xff09; 这一题用的就是完全背包排列数的遍历顺序&#xff1a;先背包再物品&#xff0c;从前往后求的也是有几…

CMake入门教程【核心篇】查找包(find_package)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「本文的内容」&#xff1a;CMake入门教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1.使用方法1.1基本用…

【数据库原理】(7)关系数据库的完整性约束

关系模型的完整性规则是为了确保数据的唯一性和数据之间的关系的准确性。 有三类完整性约束:实体完整性、参照完整性和用户定义完整性。 其中实体完整性和参照完整性是必须满足的完整性约束条件,应该由关系系统自动支持。 实体完整性 实体完整性的核心概念 唯一性&#xf…

【目标检测实验系列】YOLOv5模型改进:融合混合注意力机制CBAM,关注通道和空间特征,助力模型高效涨点!(内含源代码,超详细改进代码流程)

自我介绍&#xff1a;本人硕士期间全程放养&#xff0c;目前成果:一篇北大核心CSCD录用,两篇中科院三区已见刊&#xff0c;一篇中科院四区在投。如何找创新点&#xff0c;如何放养过程厚积薄发&#xff0c;如何写中英论文&#xff0c;找期刊等等。本人后续会以自己实战经验详细…

ElasticSearch自定义算分排序(Function Score Query)

使用 function score query&#xff0c;可以修改文档的相关性算分 (query score)&#xff0c;根据新得到的算分排序。 目录 Function Score Query 案例 Function Score Query 几种默认的计算分值的函数&#xff1a; Weight:为每一个文档设置一个简单而不被规范化的权重Fie…