# nlink_parser
**Repository Path**: hopebing/nlink_parser
## Basic Information
- **Project Name**: nlink_parser
- **Description**: 空循环uwb驱动
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-03-07
- **Last Updated**: 2025-03-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
简体中文 | [English](./README.en.md)
NLink Parser ROS Package

本ROS包用于支持Nooploop产品,采用C++编写,只需根据对应产品手册,通过我们的上位机NAssistant配置好模块,确定设备已正常工作后,运行本ROS包中产品对应的节点即可获取产品协议一一对应的ROS消息,为您省去处理数据通信及解析的时间
[](https://dev.azure.com/ant-design/ant-design-pro/_build/latest?definitionId=1?branchName=master) 
支持的产品
- [LinkTrack](https://www.nooploop.com/) 是一款基于UWB技术的多功能系统,集定位、分布式测距、授时及通信功能一体化,典型二维定位精度±10cm,数据更新频率高达200Hz,基站容量多达120个,标签容量多达200个,全部节点无线自动组网,基站坐标一键标定,便捷部署。

- [LinkTrack AOA](http://www.nooploop.com/linktrack-aoa) 是一款基于UWB的高精度跟随系统,典型测距精度高达±5cm,典型测向精度高达±5°,刷新频率高达200Hz,集测距、测向、授时、通信为一体。
- [TOFSense](https://www.nooploop.com/tofsense) 是一款基于TOF(飞行时间)技术的激光测距传感器。测距范围 1cm~5m,距离分辨率 1mm,数据更新频率 10Hz,可调FOV,最大视场角 27°,支持多传感器级联输出。
## Table of Contents
- [Table of Contents](#table-of-contents)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Building](#building)
- [Unit Tests](#unit-tests)
- [Products Usage](#products-usage)
- [LinkTrack](#linktrack)
- [LinkTrack AOA](#linktrack-aoa)
- [TOFSense](#tofsense)
- [TOFSense-M](#tofsense-m)
- [IOT](#iot)
- [How to Subscribe Our Topic](#how-to-subscribe-our-topic)
- [Submodule](#submodule)
- [nlink\_unpack](#nlink_unpack)
- [protocol\_extracter](#protocol_extracter)
- [License](#license)
- [Bugs \& Feature Requests](#bugs--feature-requests)
- [FAQ](#faq)
## Getting Started
### Prerequisites
- [Robot Operating System (ROS)](http://wiki.ros.org) (middleware for robotics)
运行本程序需要ROS支持,如还未安装请先安装ROS。
- [Serial Library](https://github.com/nooploop-dev/serial.git)
本程序和硬件设备之间采用串口通信,请先点击安装该串口通信库,注意,如果是第一次使用串口设备,通常需要开启串口操作权限,详情参考[Fix serial port permission denied errors on Linux](https://websistent.com/fix-serial-port-permission-denied-errors-linux/)
### Building
按如下步骤克隆代码并编译
cd catkin_workspace/src
git clone --recursive https://github.com/nooploop-dev/nlink_parser.git
cd ../
catkin_make
source devel/setup.bash
注意,每次打开新命令行窗口都需要执行 `source devel/setup.bash` 重新获取该ROS工作空间环境变量.
### Unit Tests
执行单元测试
roscore
catkin_make run_tests
## Products Usage
### LinkTrack
运行
roslaunch nlink_parser linktrack.launch
参数
- **`port_name`** 设备串行端口名称,默认值: `/dev/ttyUSB0`.
- **`baud_rate`** 设备波特率,默认值: `921600`.
如需要RVIZ显示可执行消息转换器
roslaunch nlink_parser linktrack_rviz.launch
订阅的话题
* **`/nlink_linktrack_data_transmission`** ([std_msgs::String])
你可以通过对该话题发布消息,将数据发送给LinkTrack节点,进而利用数传功能
发布的话题
- **`/nlink_linktrack_anchorframe0`** ([nlink_parser::LinktrackAnchorframe0])
- **`/nlink_linktrack_tagframe0`** ([nlink_parser::LinktrackTagframe0])
- **`/nlink_linktrack_nodeframe0`** ([nlink_parser::LinktrackNodeframe0])
- **`/nlink_linktrack_nodeframe1`** ([nlink_parser::LinktrackNodeframe1])
- **`/nlink_linktrack_nodeframe2`** ([nlink_parser::LinktrackNodeframe2])
- **`/nlink_linktrack_nodeframe3`** ([nlink_parser::LinktrackNodeframe3])
- **`/nlink_linktrack_nodeframe4`** ([nlink_parser::LinktrackNodeframe4])
- **`/nlink_linktrack_nodeframe5`** ([nlink_parser::LinktrackNodeframe5])
- **`/nlink_linktrack_nodeframe6`** ([nlink_parser::LinktrackNodeframe6])
如果收到来自其他节点的数传数据,则 `/nlink_linktrack_nodeframe0` 话题将会发布消息
其他话题为定位数据话题,当收到协议帧数据,将自动在对应话题上发布消息,协议类型需要在上位机NAssistant上进行配置
### LinkTrack AOA
运行
roslaunch nlink_parser linktrack_aoa.launch
参数
- **`port_name`** 设备串行端口名称,默认值: `/dev/ttyUSB0`.
- **`baud_rate`** 设备波特率,默认值: `921600`.
订阅的话题
* **`/nlink_linktrack_data_transmission`** ([std_msgs::String])
你可以通过对该话题发布消息,将数据发送给LinkTrack节点,进而利用数传功能
发布的话题
- **`/nlink_linktrack_nodeframe0`** ([nlink_parser::LinktrackNodeframe0])
- **`/nlink_linktrack_aoa_nodeframe0`** ([nlink_parser::LinktrackAoaNodeframe0])
### TOFSense
运行
roslaunch nlink_parser tofsense.launch
参数
- **`port_name`** 设备串行端口名称,默认值: `/dev/ttyUSB0`.
- **`baud_rate`** 设备波特率,默认值: `921600`.
- **`inquire_mode`** 用于多TOFSense级联情况,程序将自动查询并输出多节点测距结果,默认值:`false`.
发布的话题
- **`/nlink_tofsense_cascade`** ([nlink_parser::TofsenseCascade])
- **`/nlink_tofsense_frame0`** ([nlink_parser::TofsenseFrame0])
### TOFSense-M
运行
roslaunch nlink_parser tofsensem.launch
参数
- **`port_name`** 设备串行端口名称,默认值: `/dev/ttyUSB0`.
- **`baud_rate`** 设备波特率,默认值: `921600`.
发布的话题
- **`/nlink_tofsensem_frame0`** ([nlink_parser::TofsenseMFrame0])
### IOT
运行
roslaunch nlink_parser iot.launch
参数
- **`port_name`** 设备串行端口名称,默认值: `/dev/ttyUSB0`.
- **`baud_rate`** 设备波特率,默认值: `921600`.
发布的话题
- **`/nlink_iot_frame0`** ([nlink_parser::IotFrame0])
## How to Subscribe Our Topic
参考 [nlink_example](https://github.com/nooploop-dev/nlink_example),在您的ROS包中订阅我们的话题
## Submodule
### [nlink_unpack](https://github.com/nooploop-dev/nlink_unpack)
用于支持Nooploop产品,如[LinkTrack](https://www.nooploop.com/),[LinkTrack AOA](http://www.nooploop.com/linktrack-aoa),[TOFSense](https://www.nooploop.com/tofsense),纯C语言编写,用户可用于构建协议解析代码
### [protocol_extracter](https://github.com/nooploop-dev/protocol_extracter)
是一个通用的数据协议帧提取器,对协议实现及协议检测进行了解耦,用户只需传入数据,处理协议回调函数即可
## License
源码基于 [BSD 3-Clause license](LICENSE) 许可发布
## Bugs & Feature Requests
问题反馈及功能建议请使用 [Issue Tracker](https://github.com/nooploop-dev/nlink_parser/issues).
## FAQ
- 运行 `rostopic echo ...` 查看话题数据,提示"ERROR: Cannot load message class for ... Are your messages built
如果已经编译通过,请运行 `source {$ros_workspace}/devel/setup.bash` 以添加环境变量,其中{$ros_workspace}表示当前ros包所在的工作空间目录。
- 运行节点提示 "error while loading shared libraries: libserial.so: Cannot open shared object file: No such file or directory"
如果确定已经按照前面链接安装了串口库,编译也正常,仅运行时提示找不到库文件,尝试
1. 运行 `sudo gedit /etc/ld.so.conf.d/libc.conf`
2. 如果没有 `/usr/local/lib` ,则进行添加
3. 保存文件,然后执行 `sudo ldconfig`
4. 重启电脑