# TRON1 感知拓展套件SDK

> 来源: https://www.limxdynamics.com/zh/documents/799700123599900672
> 发布时间: 2026-01-15
> 更新时间: 2026-09-24
> 标签: TRON 1 感知拓展套件

| 版本 | 修订日期 | 修改内容 | 备注 |
| --- | --- | --- | --- |
| V1.0 | 20250609 | 梳理感知拓展套件信息，正式对外 |  |
| V1.1 | 20250725 | 搭建开发板环境部分，安装ROS Noetic，本地地址替换 |  |
| v2.0 | 20250808 | 修改“git clone https://github.com/limxdynamics/tron1-ss #建图定位导航代码”后的异常报错 |  |
| v2.1 | 20250905 | 1. “物料准备”部分，加入电脑性能要求 <br>2. “搭建开发板环境”部分，搭建加入GTSAM安装验证<br> 3. 全文可读性优化 |  |
| v2.2 | 20251013 | ROS环境安装部分，增加安装TEB和global planner规划器 |  |
| v2.3 | 20260528 | 增加Tron1感知套件雷达、相机结构参数 |  |
| v2.4 | 20260901 | 1. 环境安装部分，增加D435深度相机安装 <br>2. 实例部分，增加D435深度相机用法<br> 3.增加mid360s适配|  |

> **提示：**
> 感知拓展套件SDK文档主要用于用户购买感知拓展套件（感知传感器包括激光雷达、深度相机）后，可通过该文档快速实现三维建图、重定位、导航以及避障等示例。

# 1 物料准备

## 1.1 **硬件准备**

| 序号 | 物料名称 | 说明 |
| --- | --- | --- |
| 1 | TRON1机器人+感知拓展套件 |  |
| 2 | **电脑：推荐内存16G及以上、CPU为i7及以上级别** | - 在三维建图环节会使用用户电脑处理点云数据、编辑地图；对用户电脑性能有一定要求，若不满足上述所需条件，有可能造成点云数据无法编辑、保存； <br>- 建议不要使用虚拟机 |
| 3 | RJ45网线 |  |

## 1.2 **开发环境**

- 本文档内示例的代码基于Ubuntu 20.04操作系统、ROS1（noetic）版本开发，请提前准备好开发环境。

- 三维建图和重定位需要用到ros自带工具rviz用于查看地图、点云。您可以先下载准备好下方文件至本地。

  - Limx 建图的Rviz：📎 [limx_mapping_rviz.rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792438626_limx_mapping_rviz.rviz)

  - Limx 重定位的Rviz：📎 [localization_rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792438678_localization_rviz.rviz)

## 1.3 **雷达、相机结构参数**

### 1.3.1 **雷达基于机器人本体Base（IMU）的结构参数**

x：-0.00044m
y：0
z：0.1681m
角度：pitch旋转180°（刚好倒着）

![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954460795_image.png)

### 1.3.2 **相机基于机器本体Base的坐标和角度参数（共三档可调节角度）**
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954493447_image.png)

角度①：
相对本体IMU坐标：x：0.1967；y：-0.0175；z：-0.03042
角度：138°（如图）
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954646870_image.png)
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954653134_image.png)
角度②：
相对本体IMU坐标：x：0.20542；y：-0.0175；z：-0.01965
角度：120°（如图）
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954678324_image.png)
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954685155_image.png)
角度③：
相对本体IMU坐标：x：0.21039；y：-0.0175；z：-0.00671
角度：102°（如图）
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954699355_image.png)
![](https://oss.limxdynamics.com/uploads/image/2026/05/28/1779954705635_image.png)

# 2. 算法简介
在此次项目中，我们将代码分为感知和导航两部分。
## 2.1 感知算法
首先，感知算法使用FAST-LIO2算法，FAST-LIO2 是一种基于紧耦合迭代卡尔曼滤波器（IEKF）的激光雷达-惯性里程计（LiDAR-Inertial Odometry, LIO）框架，由香港大学火星实验室开发，用于实现高精度、高鲁棒性的实时定位与建图（SLAM）。其核心思想是将激光雷达原始点云数据与 IMU 数据进行深度融合，通过状态估计与地图更新联合优化，在无需提取特征点的前提下，直接将原始点注册到全局地图中，从而提升系统对细微环境结构的感知能力与定位精度。

FAST-LIO2 的两大关键创新包括：
1. 去除特征提取模块：与 FAST-LIO 不同，FAST-LIO2 不再依赖边缘或平面等几何特征提取，而是直接使用原始点云进行配准与状态估计，从而保留了更多环境细节，提升了建图精度与鲁棒性。
2. 增量 k-d 树（ikd-Tree）地图结构：FAST-LIO2 引入了一种高效的动态地图管理机制——ikd-Tree，支持增量式地图更新与动态平衡，显著提升了大规模环境下的实时性能与内存效率。

系统架构主要包括四个模块：
  -  数据采集与预处理模块：负责同步接收激光雷达与 IMU 数据，并进行时间对齐、去畸变等预处理操作。
  - 状态估计模块：基于 IMU 数据预测系统状态，并通过迭代卡尔曼滤波器融合激光雷达观测，实现高精度状态估计。
  - 地图构建与更新模块：将新观测到的点云注册到全局地图中，利用 ikd-Tree 实现地图的增量式更新与维护。
  - 优化与回环检测模块（可选）：进一步提升地图一致性，适用于长时间运行的建图任务。
FAST-LIO2 适用于多种复杂环境，包括室内外动态场景、无人机、AGV（自动导引车）等移动平台，具有计算效率高、鲁棒性强、适应性强的优势，是当前主流的激光雷达 SLAM 解决方案之一。

## 2.2 导航算法
导航算法基于ROS move_base实现。

ROS move_base 节点在内部维护了一张“全局代价地图”和一张“局部代价地图”。全局代价地图通常由 map_server 加载的静态 PGM/YAML 地图初始化，之后几乎不再更新，用于给全局规划器提供宏观环境信息；局部代价地图则以机器人当前为中心，以激光雷达、深度相机等实时传感器数据为输入，由 costmap_2d 节点以 5–20 Hz 的频率持续滚动更新，用来反映突然出现或移动的障碍物。

收到 move_base_simple/goal 或 Action 目标后，move_base 先把目标写入全局规划器插件（默认 navfn，基于 Dijkstra），全局规划器在全局代价地图上做一次 A* 或 Dijkstra 搜索，输出一条从当前位姿到目标位姿的粗略路径，并以 nav_msgs/Path 的形式送进局部规划器的输入缓冲区。

局部规划器插件（如 dwa_local_planner）随后在局部代价地图上做“轨迹采样-评分”循环：在速度空间 (v, ω) 中离散采样多组速度，利用运动学模型前向模拟 2–3 s 内的轨迹，对每条轨迹按“避障距离”“跟踪全局路径的偏离程度”“速度平滑性”等加权打分，选出得分最高的轨迹，并将其对应的线速度 v 和角速度 ω 作为 geometry_msgs/Twist 发布到 cmd_vel 话题，周期通常为 10–20 ms。

当传感器发现前方路径被堵，局部规划器连续若干周期无法输出有效速度时，move_base 的状态机进入 RECOVERY 状态，依次调用加载的恢复行为插件：先清除局部代价地图的障碍层，再原地旋转 360° 重新扫描，如果仍无法通行，再激进地同时清除全局与局部代价地图并再次旋转；若所有恢复行为均失败，则通过 Action 接口向上位节点返回 ABORT 并附带“路径被阻塞”原因码。

整个框架采用插件机制，全局规划器、局部规划器与恢复行为都继承自 nav_core 的虚基类，用户只需在参数文件里修改插件名称即可把 navfn 换成 global_planner，把 dwa_local_planner 换成 teb_local_planner，或新增自定义恢复行为，无需重新编译 move_base 本体。

## 2.3 数据流解析
数据流架构如下图所示：

```language
实时点云 + IMU
    ↓
FAST-LIO2 里程计
    ↓
关键帧检测 → Scan Context 回环候选
    ↓
Quatro 粗配准(快速全局配准)
    ↓
Nano-GICP 精配准(ICP优化)
    ↓
位姿校正 → 发布定位结果
```

激光雷达采集点云，FAST-LIO2算法实时融合IMU和点云进行定位与建图，导航模块将3D点云切片为2D激光用于障碍物检测，构建代价地图后由DWA/TEB算法进行路径规划和避障，最终实现机器人自主定位、建图和导航。

# 3 搭建环境

## 3.1 硬件搭建

拿到感知拓展套件后，先参照快速上手指南[2025-0617  感知拓展套件 快速上手指南-单页-小A3.pdf](https://cwjgfm21di.feishu.cn/file/XMXxb674Soy3f0xfLYycgUmDnbc)将其安装至机器人扩展平台，将网线插入机器人网口，电源线插入机器人外接24V电压输出口，设备开机，等待约4秒后，开发板网口灯光亮起，雷达震动，表示套件已成功上电。

> **提示：**
>  为保证用户开发过程中网络连接的通畅，我们推荐用户可以先将下图连接至TRON1本体的网线接入电脑、电脑连接无线网络（即拔出7号口网线，插入电脑有线网络端口）。否则在开发过程中电脑将无法连接外网。

> **注意：** 感知拓展套件安装时应遵循从TRON本体前方向后方送入滑轨的次序，否则将损坏滑轨及外壳。

## 3.2 开发板环境搭建

### 3.2.1 设置IP地址

> **注意：** 感知套件开发板出厂时设置的IP地址为：**10.192.1.3**。

将用户电脑IP地址与机器人、开发板IP地址保持在同一局域网内，即10.192.1.x。

### 3.2.2 终端SSH连接到开发板

当IP地址更新完成，且感知拓展套件已上电，将用户电脑连接机器人WiFi（密码：12345678），执行下指令进行环境搭建。

```
ssh guest@10.192.1.3    #密码：123456
```

若遇到下图中的报错，运行remove with中的代码后重新ssh连接即可。

### 3.2.3 开发板连接网络

安装环境时，开发板需连接网络，可通过用户电脑执行以下命令完成网络连接（该方法不适用隐藏的无线网络）。

```
ssh guest@10.192.1.3    #密码：123456    #上面终端未退出则不用在ssh
nmcli dev wifi list
sudo nmcli dev wifi connect "wifi名称" password "密码" #wifi名称和密码需根据用户自行填写
#连接成功后，会显示 Device 'wlan0' successfully activated with “设备号”
ping www.baidu.com #执行百度可ping通
```

### 3.2.4 安装ROS Noetic

- 我们推荐在Ubuntu 20.04操作系统上建立基于ROS Noetic的算法开发环境。ROS提供了一系列工具和库，如核心库、通信库和3D可视化工具（如rviz），极大地便利了机器人算法的开发、测试和部署。这些资源为用户提供了一个丰富而完整的算法开发环境。

安装方法一：官方安装方式

ROS Noetic 安装请参考文档：[Ubuntu install of ROS Noetic](https://wiki.ros.org/noetic/Installation/Ubuntu)，选择“ros-noetic-desktop-full”进行安装。

安装方法二：第三方脚本安装

如果采用官方安装方式不成功，可尝试采用第三方脚本安装。输入以下指令可进行一键安装。

```
wget http://fishros.com/install -O fishros && . fishros
```

详情可参考以下链接：   “[https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97](https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97)”

- ROS Noetic安装完成后，采用以下指令验证是否安装完成：

```
roscore
```

- ROS Noetic 安装完成后，Bash终端输入以下Shell命令，安装开发环境所依赖的库，包括C++ >= 17, OpenMP >= 4.5, CMake >= 3.10.0, Eigen >= 3.2, Boost >= 1.54

```bash
sudo apt-get update
sudo apt install ros-noetic-map-server \
                 ros-noetic-octomap-ros \
                 ros-noetic-octomap-msgs \
                 ros-noetic-octomap-server \
                 ros-noetic-dwa-local-planner \
                 ros-noetic-octomap-rviz-plugins\
                 ros-noetic-move-base \
                 ros-noetic-pointcloud-to-laserscan \
                 ros-noetic-teb-local-planner\
                 ros-noetic-global-planner\
                 python3.8 \
                 libeigen3-dev \
                 cmake build-essential libpcl-dev libeigen3-dev libopencv-dev  \
                 python3-pip libboost-all-dev libtbb-dev -y
sudo apt-get install libboost-all-dev libwebsocketpp-dev nlohmann-json3-dev
sudo apt-get install ros-noetic-realsense2-camera ros-noetic-realsense2-camera-dbgsym ros-noetic-realsense2-description

```

- 安装完成依赖后，下面开始克隆、编译代码

> **提示：** 在如下操作过程中，请注意
> - 编译过程会下载配置文件用来编译，请保证网络通畅，可以检查一下能否正常打开GitHub网页
> - 若任意代码编译报错，请清除编译缓存后再重新尝试
> - 清除编译缓存的方法为删除文件夹下的build目录

- 在tools目录下运行下程序。

```bash
#安装Livox-SDK

cd ~/ && mkdir tools && cd tools #工作在tools文件夹下
git clone https://github.com/Livox-SDK/Livox-SDK
cd Livox-SDK/build
cmake .. && make   #先运行cmake，再运行make
#若无报错信息，则证明编译成功
sudo make install

cd ../../ #退出至tools目录
```

sudo make install后界面如下代表成功安装Livox-SDK。

```bash
#安装Livox-SDK2

git clone https://github.com/Livox-SDK/Livox-SDK2

cd Livox-SDK2 && mkdir build && cd build
cmake .. && make
#若无报错信息，则证明编译成功
sudo make install

cd ../../ #退出至tools目录
```

sudo make install后界面如下代表成功安装Livox-SDK2.

```bash
#安装gtsam
wget -O gtsam.zip https://github.com/borglab/gtsam/archive/refs/tags/4.1.1.zip
unzip gtsam.zip
cd gtsam-4.1.1/ && mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
sudo make install -j6

#编译结束后可使用如下命令验证
ldd examples/VisualISAMExample | grep gtsam
#若显示文件名则证明编译成功
#若显示无法找到目录，则需要重新安装编译

#安装成功后退出至tools目录
cd ../../
```

ldd examples/VisualISAMExample | grep gtsam后界面如下代表成功安装gtsam。

```bash
#安装TEASER-plusplus
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. -DENABLE_DIAGNOSTIC_PRINT=OFF
sudo make install
sudo ldconfig
```

sudo make install后界面如下代表成功安装TEASER-plusplus.

```bash
#下载和编译建图定位导航代码
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/limxdynamics/tron1-ss
cp -r tron1-ss/src/* ./
rm -rf tron1-ss
cd ..
catkin_make_isolated

#若存在Failed to process package "livox_ros_driver2"，则执行以下指令
#若无报错信息，可忽略以下代码
cd src/livox_ros_driver2
source /opt/ros/noetic/setup.sh
./build.sh ROS1
cd ~/catkin_ws/
source devel_isolated/setup.bash

#若存在Failed to process package "livox_ros_driver"，则执行以下指令
#若无报错信息，可忽略以下代码
cd ~/tools/Livox-SDK/build
sudo make install
```

catkin_make_isolated 后界面如下代表成功。

## 3.3 雷达&电脑环境搭建

### 3.3.1 配置雷达IP地址

> **提示：**  雷达IP地址出厂时已通过觅道软件修改为：**10.192.1.5，无需修改雷达IP**

> **以下为知悉内容，新手可无需关注，直接执行后续“3.3.2配置机器人软件序列号”部分**

**雷达IP地址修改方式：**

- 将雷达网线与用户电脑相连，连接成功后在觅道360官网（https://www.livoxtech.com/cn/mid-360/downloads）下载雷达软件Livox Viewer 2，按照用户手册进行安装。

- 安装完成后，将用户电脑与雷达改成同一网段后，刷新上述软件，则可读取雷达IP地址。

- 在Vim编辑器修改雷达IP，从而确保开发板与雷达IP地址一致。可执行以下指令进入Vim编辑器。（Vim的编辑与保存指令：当进入到Vim编辑器中，按键盘上的Insert，此时Vim进入编辑模式，可对代码进行编辑，编辑完成后按Esc键回到命令模式，输入:wq保存并退出。）

```bash
ssh guest@10.192.1.3    //密码：123456
cd ~/catkin_ws/
vim src/livox_ros_driver2/config/MID360_config.json
```

### 3.3.2 配置机器人软件序列号

当安装完上述依赖后，下面需要使用前面已经安装完成的websocket对机器进行控制。

- 获取机器人软件序列号：

首先需要操作用户电脑通过无线连接方式连接TRON1机器人，请选择并连接您机器人的Wi-Fi热点,密码为:12345678。

之后在浏览器中输入http://10.192.1.2:8080可以进入"机器人信息页",并查看机器人信息，如下图所示。

机器人软件序列号不同于SN(机器人序列号)，其格式为“xx_TRON1A_xxx”，需将SN中间的字段统一替换为“TRON1A”。例如页面中显示的SN为PF_TRON1A_075，则无需替换；若页面中显示的SN为PF_TRON1B_360，则机器人软件序列号应为WF_TRON1A_360

- 配置机器人软件序列号：

```
ssh guest@10.192.1.3    //密码：123456
vim ~/catkin_ws/src/sentry_navigation/sentry_tools/velocity_smoother_ema/src/velocity_smoother_ema.cpp
```

在vim编辑器的代码中，修改成对应的机器人软件序列号，

修改代码后，需重新编译。

```
cd ~/catkin_ws/
catkin_make_isolated
source devel_isolated/setup.bash
```

### 3.3.3 Rviz环境安装

当上述配置完成后，下载下面Rviz文件在本地电脑，其中limx_mapping用于Rviz建图；limx_localization为重定位Rviz。
[limx_mapping_rviz.rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792539368_limx_mapping_rviz.rviz)
[localizaiton_rviz.rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792539371_localization_rviz.rviz)

在用户电脑终端执行以下操作：

```
ssh guest@10.192.1.3    //密码：123456
sudo vim ~/.bashrc
```

在~/.bashrc文件末尾增加以下命令行

```
export ROS_IP=10.192.1.3
export ROS_MASTER_URI=http://10.192.1.3:11311

# ROS environment setup
source /opt/ros/noetic/setup.bash
source /home/guest/catkin_ws/devel_isolated/setup.bash
```

## 3.4 D435深度相机&电脑环境搭建

### 3.4.1 开发板SDK环境依赖安装
安装以下环境依赖：

```bash
#下载SDK的源码
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
#下载依赖
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
#添加权限
sudo cp config/99-realsense-libusb.rules /etc/udev/rulesgger
sudo udevadm control --reload-rules && udevadm trigger
#编译、安装
mkdir build
cd build
cmake ..
make
sudo make install
#测试
cd examples/capture
realsense-viewer
```

### 3.4.2 安装ros核心库

```bash
#下载ros核心库
sudo apt update
sudo apt install ros-noetic-realsense2-camera ros-noetic-realsense2-description -y
#安装官方 USB 权限规则
sudo wget https://raw.githubusercontent.com/IntelRealSense/librealsense/master/config/99-realsense-libusb.rules -P /etc/udev/rules.d/
# 刷新权限
sudo udevadm control --reload-rules && sudo udevadm trigger
#在ros启动相机
roslaunch realsense2_camera rs_camera.launch
```

# 4 三维建图、重定位、导航、深度相机示例

## 4.1 三维建图

### 4.1.1 地图录制

> **提示**
> 前提条件：感知拓展套件已安装至机器人本体，开机并确保机器人处于准备状态（遥控器按L1+O，保持机器人base水平）

[video](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/video/2026/01/15/1768471206183_10月10日.mp4)

- 用户电脑连接机器人Wi-Fi，名称格式通常为「TRON1_xxx」，Wi-Fi密码：`12345678`。

- 用户电脑打开两个终端，分别通过SSH连接开发板开启雷达进程和建图进程，并录制地图：

开启雷达进程

```shell
ssh guest@10.192.1.3    //密码：123456
cd ~/catkin_ws
source devel_isolated/setup.bash
roslaunch livox_ros_driver2  msg_MID360.launch
```

执行roslaunch livox_ros_driver2  msg_MID360.launch后出现如下界面且持续运行则雷达进程开启成功。

再新建一个终端，开启三维建图进程

```shell
ssh guest@10.192.1.3    //密码：123456
cd ~/catkin_ws
source devel_isolated/setup.bash
roslaunch fast_lio_sam_sc_qn run.launch lidar:=livox_mid360
```

执行roslaunch fast_lio_sam_sc_qn run.launch lidar:=livox_mid360后出现如下界面且持续运行则三维建图进程开启成功。

- 查看建图效果：在用户电脑重开一个终端，且不要使用SSH指令连接开发板。

```shell
source /opt/ros/noetic/setup.bash
export ROS_MASTER_URI=http://10.192.1.3:11311
export ROS_IP=10.192.1.x #x代表本地用户电脑ip地址最后一位
rviz
#开启上面的limx_mapping_rviz.rviz
```

- 打开Rviz后，选择file，找到上面的limx_mapping_rviz.rviz文件，然后打开。

- 出现如上图片数据后，表示地图已经开始录制，通过遥控器控制机器人行走，可进行地图录制。

### 4.1.2 地图保存

> **提示：** 4.1.2中的程序均为开发板环境中执行，请在SSH连接完成的终端里执行以下操作！

- 保存pcd三维点云图：

完成地图录制后，通过Ctrl+C的方式结束上面三维建图进程(run.launch) 终端，其余终端保持不变。

三维点云图自动保存在fast_lio_sam_sc_qn文件下，路径如下

`/home/guest/catkin_ws/src/fast-lio-mapping_and_localization-sc-qn/fast_lio_sam_sc_qn`/

此时文件夹内存在result.bag、result.pcd两个文件，其中result.bag 在后面被用于重定位，result.pcd则用于导航。

-  将pcd三维点云图转换成 pgm二维栅格地图：

确定result.pcd文件位置后，首先需要修改aa.launch文件。

```
vim ~/catkin_ws/src/fast-lio-mapping_and_localization-sc-qn/fast_lio_localization_sc_qn/launch/aa.launch
```

根据下面图片修改result.pcd对应的位置。

执行aa.launch文件

```shell
source devel_isolated/setup.bash
roslaunch fast_lio_localization_sc_qn aa.launch
```

aa.launch出现如下界面代表运行成功。

新起一个终端（依然需要ssh连接到NX开发板）保存地图，此时将得到limx_map.pgm、limx_map.yaml两个文件。

```shell
source /opt/ros/noetic/setup.bash
cd ~/
rosrun map_server map_saver -f limx_map  //保存地图为 limx_map 名字
#地图越大，点云越多，保存需要时间越长，请耐心等待，比较大图需要1分钟左右
```

> **提示：**
> 注：建议将result.bag、result.pcb以及limx_map.pgm limx_map.yaml等文件放在同一个目录文档。

完成上面操作后，停止 aa.launch程序。

### 4.1.3 地图修整

- Linux需要提前下载gmp图片编辑软件，本地安装指令如下：

```shell
sudo apt install -y gimp language-pack-gnome-zh-hant language-pack-gnome-zh-hans
```

- 下载完成后，可以通过搜索GIMP打开软件：

- 将生成的limx.pgm从开发板传输至用户电脑。

方法一：在用户电脑端请求文件

则新开一个终端（不需要连接ssh）

```
scp guest@10.192.1.3:/home/guest/limx_map.pgm ~/
#guest是开发板的名称，10.192.1.3是开发板的ip，
#/home/guest/limx_map.pgm是开发板中pgm地图的保存路径，~/是pgm地图在用户电脑的保存路径。
```

方法二：ssh到开发板终端，从开发板端发送文件

```
ssh guest@10.192.1.3    //密码：123456
scp -r limx_map.pgm julychen@10.192.1.2:~/  #julychen@10.192.1.2 这部分根据客户实际情况
```

- 左上角文件选择刚传输的PGM文件，对二维栅格图进行编辑，修改，杂点进行清除：

地图路径在你当前运行map_server的目录下

- 将修改后的地图进行导出，文件格式和名字切勿修改，直接保存覆盖，覆盖完成后直接叉掉软件，此时弹窗选择“放弃修改”。

- 将对应的pgm文件打开确认看是否为已经修改完的地图，若是，则直接执行下命令，即将修改后的文件拷贝至英伟达开发板中，用于导航。

```
scp -r limx_map.pgm guest@10.192.1.3:~/  #该命令在用户电脑本地终端执行
```

## 4.2 定位和导航

### 4.2.1 环境配置

- 进行定位模块和3D重定位的位置配置。

```
 ssh guest@10.192.1.3    //密码：123456
 cd ~/catkin_ws/src/fast-lio-mapping_and_localization-sc-qn/fast_lio_localization_sc_qn/
```

- 配置3D重定位地图，给出建图生成的result.bag所在位置（绝对位置）。

```
vim config/config.yaml  #配置3d重定位的地图
```

- 配置2D静态地图，给出2D静态地图所在位置。

```
vim launch/run.launch
```

### 4.2.2 开启重定位

- 配置完成后，保存现有终端，新起一个终端，执行下命令。若雷达没有开启，则需开启雷达指令。

```shell
ssh guest@10.192.1.3    //密码：123456
cd ~/catkin_ws
source devel_isolated/setup.bash
roslaunch livox_ros_driver2  msg_MID360.launch
```

- 开启重定位

```
#开启一个新终端
ssh guest@10.192.1.3    //密码：123456
cd ~/catkin_ws
source devel_isolated/setup.bash
roslaunch fast_lio_localization_sc_qn run.launch lidar:=livox_mid360
```

- 本地打开Rviz，选择定位的Rviz。

```shell
source /opt/ros/noetic/setup.bash
export ROS_IP=10.192.1.x   #x代表本地用户电脑ip地址最后一位
export ROS_MASTER_URI=http://10.192.1.3:11311
#打开定位的rviz
#开启上面的limx_localization_rviz.rviz
```

- 打开Rviz后，选择file，找到limx_localization_rviz.rviz文件，然后打开。

- 当本地打开Rviz后，需将机器人通过遥控器操作起来，以找到特殊标志位进行重定位，若是重定位成功，终端将会打印下指令。

### 4.2.3 开启导航

- 执行导航避障指令。

```
roslaunch sentry_nav sentry_movebase.launch
```

- 在rviz 上点击【2D Nav Goal】按钮，然后在地图中点击机器人要到达的目标点，并拖动设置方向(左键点击并保持按住，拖动设置方向)。

导航效果展示如下：

[video](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/video/2026/01/15/1768471275348_10月11日%20%281%29.mp4)

避障效果展示如下：

[video](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/video/2026/01/15/1768471309544_避障剪辑.mp4)

## 4.3 D435深度相机

### 4.3.1 开启sdk测试

> 前提条件：D435深度相机的依赖和代码已经进行下载和安装，并且已经将usb连接到开发板

- 进入文件夹，并且开启官方测试工具

```language
cd examples/capture
realsense-viewer
```
- 记住在页面中打开2D、Stereo Module、RGB Camera和Montion Module

> 如果最后一个模式打不开，退出并使用sudo realsense-viewer重新打开

![image.png](https://oss.limxdynamics.com/uploads/image/2026/09/17/1789658996278_image.png)

### 4.3.2 开启ros核心库测试
- 使用命令可打开相机ros话题

```language
roslaunch realsense2_camera rs_camera.launch
```
- 此时查看rostopic，当看到以下话题表示相机成功运行

![image.png](https://oss.limxdynamics.com/uploads/image/2026/09/17/1789659138615_image.png)

- 此时打开rviz选择image功能，并选择/camera/depth/image_revt_raw话题可看到图像

![image.png](https://oss.limxdynamics.com/uploads/image/2026/09/17/1789659171955_image.png)

![image.png](https://oss.limxdynamics.com/uploads/image/2026/09/17/1789659180073_image.png)

## 附件

- [limx_mapping_rviz.rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792438626_limx_mapping_rviz.rviz)
- [localization_rviz.rviz](https://limx-ows.oss-cn-beijing.aliyuncs.com/uploads/attachment/2026/01/19/1768792438678_localization_rviz.rviz)
