目 录
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(优先)