336 lines
8.4 KiB
Markdown
336 lines
8.4 KiB
Markdown
---
|
||
title: VMWare安装ROS2
|
||
createTime: 2025/02/24 07:42:27
|
||
permalink: /learning-notes/ROS2/VMWare-install/
|
||
icon: lineicons:vmware
|
||
---
|
||
|
||
> 本文主要介绍如何在VMWare WorkStation中安装Ubuntu22.04LTS和ROS2,并配置固定IP地址和SSH连接,使用教育网联合镜像站配置Ubuntu和ROS2的软件镜像源。
|
||
|
||
:::info 参考资料
|
||
古月居文档 [https://www.originbot.org/guide/pc_config/#ubuntu_install](https://www.originbot.org/guide/pc_config/#ubuntu_install)
|
||
|
||
华为云文档 [https://blog.csdn.net/m0_54219225/article/details/127170419](https://blog.csdn.net/m0_54219225/article/details/127170419)
|
||
|
||
此文档完成后,固定好的IP地址为 `192.168.8.8`
|
||
|
||
:::
|
||
|
||
虚拟机系统: VMware WorkStation 17.0
|
||
|
||
SSH连接工具:MobaXterm Home Edition、VS Code
|
||
|
||
## Ubuntu安装
|
||
|
||
::: steps
|
||
|
||
1. 下载镜像
|
||
|
||
请安装:[logos:ubuntu 2em]: Ubuntu版本: 22.04
|
||
LTS,如果您在高校内,推荐使用CERNET校园网联合镜像站,安装Python3后可以使用以下脚本测试您的网络到各镜像站的连接速度 。
|
||
|
||
[重医校园内网(千兆)临时镜像站](http://192.168.183.171:5244/mirrors/system-iso/Ubuntu)
|
||
[阿里云(万兆)开源镜像站](https://mirrors.aliyun.com/ubuntu-releases/)
|
||
|
||
```shell
|
||
curl https://mirrors.cernet.edu.cn/oh-my-mirrorz.py | python3
|
||
```
|
||
|
||
重庆市高校推荐使用[重庆大学Ubuntu ISO镜像](https://mirrors.cqu.edu.cn/ubuntu-releases/),实测重医到重大的下载速度可达78MB/S。
|
||
|
||
2. 设置软件源
|
||
|
||
Ubuntu默认的软件源下载较慢,切换为校园网镜像源或阿里云镜像源会好很多。
|
||
|
||
::: tabs
|
||
@tab 重庆大学镜像
|
||
|
||
参考 [https://mirrors.cqu.edu.cn/#/wiki/mirror-wiki/ubuntu](https://mirrors.cqu.edu.cn/#/wiki/mirror-wiki/ubuntu)
|
||
|
||
@tab 阿里云镜像
|
||
|
||
参考 [https://developer.aliyun.com/mirror/ubuntu](https://developer.aliyun.com/mirror/)
|
||
|
||
@tab 校园网联合镜像站
|
||
参考 [https://help.mirrors.cernet.edu.cn/ubuntu/](https://help.mirrors.cernet.edu.cn/ubuntu/)
|
||
|
||
:::
|
||
|
||
### 固定IP地址
|
||
|
||
每次VMWare Workstation的虚拟机重启后, DHCP [+vuepress] 会自动分配一个新的IP地址,使用SSH连接很不方便,我们可以设置固定IP地址。
|
||
[+vuepress]:
|
||
VuePress 是一个 [静态站点生成器](https://en.wikipedia.org/wiki/Static_site_generator) (SSG) 。
|
||
专为构建快速、以内容为中心的站点而设计。
|
||
::: details Windows11
|
||
|
||
设置VMnet8的IPV4地址
|
||
|
||
打开Windows11设置,找到网络和Internet-更改适配器选项-VMware Network Adapter VMnet8-编辑-Internet协议版本4-属性-使用以下IP地址
|
||

|
||
|
||

|
||
|
||

|
||
|
||
:::
|
||
|
||
:::details VMWare配置
|
||
|
||
实际VMWare 在NAT模式下分配的子网网段可能会有不同,这里设置为`192.168.8.0`;
|
||
|
||
查看子网:编辑-虚拟网络编辑器-VMnet8-子网IP
|
||

|
||
|
||
点击NAT设置
|
||
|
||

|
||
|
||
设置网卡
|
||
|
||

|
||

|
||
:::
|
||
|
||
使用你喜欢的编辑器编辑 `/etc/netplan/01-network-manager-all.yaml`
|
||
|
||
```shell
|
||
nano /etc/netplan/01-network-manager-all.yaml
|
||
```
|
||
|
||
:::info 如何快速使用nano删除
|
||
|
||
标记所有内容:
|
||
按 Ctrl+A 跳转到行首。
|
||
|
||
按下 Ctrl+Shift+6(或 Alt+A)开始标记。
|
||
|
||
按 Alt+/ 跳转到文件末尾,此时会标记从开头到末尾的所有内容。
|
||
|
||
删除标记内容:按 Ctrl+K 剪切(删除)选中部分。
|
||
|
||
:::
|
||
|
||
```yaml
|
||
# Let NetworkManager manage all devices on this system
|
||
network:
|
||
renderer: NetworkManager
|
||
version: 2
|
||
ethernets:
|
||
ens33:
|
||
dhcp4: no
|
||
addresses:
|
||
- 192.168.8.8/24
|
||
routes:
|
||
- to: default
|
||
via: 192.168.8.1
|
||
nameservers:
|
||
addresses: [ 8.8.8.8, 114.114.114.114, 233.5.5.5 ]
|
||
```
|
||
|
||
:::info IP解释
|
||
- `192.168.8.8`是本地中未被占用的CIDR地址,也是是你想设置的固定地址
|
||
- `192.168.8.*`是VMware WorkStation的NAT模式子网网段,网关设置为同一网段即可转发流量,例如此处的`192.168.8.1`,不可为广播地址.255或主机地址.0
|
||
- `8.8.8.8`是Google的DNS服务器
|
||
- `114.114.114.114`是国内移动、电信和联通通用的DNS,可拦截钓鱼、木马病毒网站,提供更快的解析速度,。
|
||
- `233.5.5.5`是阿里云的DNS服务器
|
||
:::
|
||
|
||
|
||
持久化网络配置
|
||
|
||
```shell
|
||
sudo systemctl enable systemd-networkd
|
||
sudo systemctl start systemd-networkd
|
||
```
|
||
|
||
安装网络管理工具包
|
||
|
||
```shell
|
||
sudo apt install net-tools
|
||
```
|
||
|
||
|
||
最后输入使配置生效
|
||
|
||
|
||
```shell
|
||
netplan apply
|
||
```
|
||
|
||
|
||
|
||
查看ip信息是否符合预期
|
||
|
||
```shell
|
||
ifconfig
|
||
```
|
||
|
||
### 配置SSH
|
||
|
||
以 root 身份登录终端
|
||
|
||
:::steps
|
||
|
||
1. 安装SSH服务端
|
||
|
||
```shell
|
||
sudo apt update
|
||
sudo apt install openssh-server
|
||
```
|
||
|
||
2. 启动SSH服务
|
||
|
||
```shell
|
||
sudo systemctl start ssh
|
||
sudo systemctl status ssh
|
||
|
||
```
|
||
|
||
3. 设置开机自启动
|
||
|
||
```shell
|
||
sudo systemctl enable ssh
|
||
```
|
||
|
||
4. 放行防火墙
|
||
|
||
```shell
|
||
sudo ufw allow ssh
|
||
```
|
||
|
||
5. 修改SSH配置
|
||
|
||
此处启用了root登录、密钥登录,只是为了方便开发,生产环境请谨慎。
|
||
|
||
```shell
|
||
sudo nano /etc/ssh/sshd_config
|
||
```
|
||
|
||
找到 `PermitRootLogin`, 取消注释并修改为
|
||
|
||
```shell
|
||
PermitRootLogin yes
|
||
PubKeyAuthentication yes
|
||
```
|
||
|
||
重启以生效
|
||
|
||
```shell
|
||
sudo systemctl restart ssh
|
||
```
|
||
|
||
### 连接测试
|
||
|
||
:::tabs
|
||
|
||
@tab :[tabler:brand-powershell]:MobaXterm
|
||
打开MobaXterm,sessions-SSH,填入你的主机固定IP和密码等,出现下面画面即为连接成功
|
||

|
||
|
||
可以使用 `sudo passwd ` 临时更改root密码
|
||
|
||
@tab :[devicon:vscode]:VS Code
|
||
|
||
安装SSH拓展
|
||
|
||

|
||
|
||
添加链接-输入账密即可
|
||
|
||

|
||
|
||
:::
|
||
|
||
### 生成密钥(推荐)
|
||
|
||
如果您希望使用SSH密钥进行身份验证,可以在客户端计算机上生成密钥:
|
||
```shell
|
||
ssh-keygen -t rsa -b 4096
|
||
```
|
||
|
||
一路回车就行,`.ssh\id_rsa.pub`即为生成的密钥,以 ssh-rsa开头,长这样:
|
||

|
||
|
||
```shell
|
||
# linux传输key
|
||
ssh-copy-id username@your_server_ip
|
||
```
|
||
|
||
Windows系统直接打开MobaXterm,将\{user}\.ssh的`id_rsa.pub`的内容写入到服务器上的 ~/.ssh/authorized_keys文件中,没有就手动创建一个。
|
||
|
||
:::
|
||
|
||
## ROS2系统安装
|
||
|
||
:::warning
|
||
|
||
这里以Ubuntu22.04LTS 的Humble ROS2版本为例
|
||
|
||
:::
|
||
|
||
:::steps
|
||
|
||
1. 设置编码
|
||
|
||
```shell
|
||
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
|
||
```
|
||
|
||
2. 配置镜像源
|
||
|
||
ROS2的软件包在各大高校、企业均有镜像地址,使用镜像可帮助我们更高效下载所需资源。
|
||
|
||
重庆市高校推荐重庆大学ROS2软件镜像源。这一步如果存在下载问题,可以参考 [magic](/csdiy/tools-must/magic/clash-core/windows/)
|
||
|
||
添加ROS2的GPG Key
|
||
```shell
|
||
sudo apt install curl gnupg2
|
||
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
|
||
```
|
||
|
||
|
||
智能选择校园网镜像写入ros2的软件列表
|
||
```shell
|
||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.cernet.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
|
||
sudo apt update
|
||
```
|
||

|
||
|
||
3. 安装ROS2
|
||
|
||
```shell
|
||
sudo apt update
|
||
sudo apt upgrade
|
||
sudo apt install ros-humble-desktop
|
||
```
|
||
|
||
4. 设置环境变量
|
||
|
||
```shell
|
||
source /opt/ros/humble/setup.bash
|
||
echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
|
||
```
|
||
|
||
|
||
5. ROS2示例测试
|
||
|
||
当然是我最喜欢的小海龟啦~。需要启动两个终端:
|
||
```shell
|
||
ros2 run turtlesim turtlesim_node
|
||
```
|
||
|
||
```shell
|
||
ros2 run turtlesim turtle_teleop_key
|
||
```
|
||
第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦。
|
||
|
||
关于小海龟中蕴藏的ROS奥义,我们在后续教程中将持续探索。
|
||
|
||
至此,恭喜您,ROS2在VMware安装成功。
|
||
|
||
|
||
::: |