# PM1 .Net API 使用范例
## 开始学习
1. 安装环境
* 安装 .Net 开发环境
* 如果您使用 Windows,下载并安装 [Visual Studio](https://visualstudio.microsoft.com/downloads/)
* 如果您使用 Linux 发行版,下载并安装 [.Net Core](https://dotnet.microsoft.com/download)
* 下载并安装 [git](https://git-scm.com/downloads)
2. 获取[示例项目](https://github.com/autolaborcenter/PM1.SDK.Net.Samples)
* 使用 git 取得项目
```shell
git clone https://github.com/autolaborcenter/PM1.SDK.Net.Samples.git
```
## 概述
解决方案包含 4 个项目:
| 项目名称 | 学习目标 |
| ------------------- | ---------------------------------------------- |
| `Initialization` | 与机器人建立连接并控制机器人运动 |
| `ContinuousControl` | 理解*连续控制*的概念并实现命令行程序遥控机器人运动 |
| `ActionControl` | 理解*动作控制*的概念并控制机器人按简单路径行驶 |
| `PM1.TestTool` | 学习 SDK 如何与图形界面结合 |
## 详细说明
### 初始化示例(Initialization)
* 概念
* 初始化
* API
* 初始化与 PM1 连接 ([Methods.Initialize](api-reference/Methods/Initialize))
* 读取底盘状态、解锁底盘 ([Methods.State](api-reference/Methods/State))
* 控制 PM1 以0.25rad/s 的速度原地转90° ([Methods.TurnAround](api-reference/Methods/TurnAround))
* 断开连接 ([Methods.ShutdownSafety](api-reference/Methods/ShutdownSafety))
* [代码](https://github.com/autolaborcenter/PM1.SDK.Net.Samples)
### 动作控制示例(ActionControl)
* 概念
* 动作控制
* API
* 初始化与 PM1 连接 ([Methods.Initialize](api-reference/Methods/Initialize))
* 读取底盘状态 ([Methods.State](api-reference/Methods/State))
* 根据指令锁定/解锁底盘([Methods.State](api-reference/Methods/State))
* 根据指令执行相应动作([Methods.GoStraight](api-reference/Methods/GoStraight)、[Methods.GoArcVA](api-reference/Methods/GoArcVA)、[Methods.TurnAround](api-reference/Methods/TurnAround))
* Esc键终止正在执行的动作([Methods.CancelAction](api-reference/Methods/CancelAction))
* 断开连接 ([Methods.ShutdownSafety](api-reference/Methods/ShutdownSafety))
* [代码](https://github.com/autolaborcenter/PM1.SDK.Net.Samples)
### 连续控制示例(ContinuousControl)
* 概念
* 连续控制
* API
* 初始化与 PM1 连接 ([Methods.Initialize](api-reference/Methods/Initialize))
* 读取底盘状态、解锁底盘 ([Methods.State](api-reference/Methods/State))
* 方向键控制 PM1 运动([Methods.VelocityTarget](api-reference/Methods/VelocityTarget))
* 断开连接 ([Methods.ShutdownSafety](api-reference/Methods/ShutdownSafety))
* [代码](https://github.com/autolaborcenter/PM1.SDK.Net.Samples)