---
title: VMWare安装ROS2
createTime: 2025/02/24 07:42:27
permalink: /learning-notes/ROS2/VMWare-install/
icon: lineicons:vmware
---

:::tip
古月居文档 [https://www.originbot.org/guide/pc_config/#ubuntu_install](https://www.originbot.org/guide/pc_config/#ubuntu_install)
:::

虚拟机系统: VMware WorkStation 17.0

SSH连接工具：MobaXterm Home Edition

## 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 会自动分配一个新的IP地址，使用SSH连接很不方便，我们可以设置固定IP地址。

使用你喜欢的编辑器编辑 `/etc/netplan/01-network-manager-all.yaml`

```shell
nano /etc/netplan/01-network-manager-all.yaml
```

```yaml
network:
  version: 2
  ethernets:
    ens33:
    dhcp4: false
    addresses:
      - 192.168.11.133/24
    routes:
      - to: default
        via: 192.168.11.2
      nameservers:
        addresses: [ 8.8.8.8,8.8.4.4,192.168.11.2,233.5.5.5 ]
```

:::warning

实际VMWare 在NAT模式下分配的子网网段可能会有不同，这里是192.168.11.0;

查看子网：编辑-虚拟网络编辑器-VMnet8-子网IP
![2025-02-25_03-56-01.png](/src/2025-02-25_03-56-01.png)
:::

其中：

- `192.168.11.133`是本地中未被占用的CIDR地址
- `192.168.11.133`是你想设置的固定地址
- `192.168.11.0`是VMware WorkStation的NAT模式子网网段，网关设置为同一网段即可转发流量。
- `233.5.5.5`是阿里云的DNS

最后输入使配置生效

```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
```

6. 连接测试

打开MobaXterm，sessions-SSH，填入你的主机固定IP和密码等，出现下面画面即为连接成功
![2025-02-25_04-20-47.png](/src/2025-02-25_04-20-47.png)

可以使用 `passwd` 临时更改root密码


7. 生成密钥（可选）

如果您希望使用SSH密钥进行身份验证，可以在客户端计算机上生成密钥：
```shell
ssh-keygen -t rsa -b 4096
```

一路回车就行,`.ssh\id_rsa.pub`即为生成的密钥，以 ssh-rsa开头，长这样：
![2025-02-25_04-50-16.png](/src/2025-02-25_04-50-16.png)

```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软件镜像源。

添加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
```
![2025-02-25_04-53-54.png](/src/2025-02-25_04-53-54.png)

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
```
第一句指令将启动一个蓝色背景的海龟仿真器，第二句指令将启动一个键盘控制节点，在该终端中点击键盘上的“上下左右”按键，就可以控制小海龟运动啦。
![2025-02-25_05-15-20.webp](/src/2025-02-25_05-15-20.webp)

关于小海龟中蕴藏的ROS奥义，我们在后续教程中将持续探索。

至此，恭喜您，ROS2在VMware安装成功。


:::