# digital-twin
**Repository Path**: ppppplus/digital-twin
## Basic Information
- **Project Name**: digital-twin
- **Description**: Digital-twin environment for hardware-in-loop simulation.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-01-24
- **Last Updated**: 2024-01-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
CT-Digital-Twin
digital twin for Cloud Testbench
#### 安装教程
1. 拉取代码
``` bash
git clone https://gitee.com/nics-robot/ct-digital-twin.git
```
2. gzweb安装
执行以下命令安装nvm:
``` bash
export NVM_DIR="$HOME/.nvm" && (
git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR"
cd "$NVM_DIR"
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && \. "$NVM_DIR/nvm.sh"
```
在`~/.bashrc`中添加以下内容,将nvm添加到环境变量:
``` bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
```
安装和启用nodejs:
```bash
nvm install 8
nvm use 8
```
安装基础依赖:
``` bash
sudo apt install gazebo9 libgazebo9-dev
sudo apt install libjansson-dev libboost-dev imagemagick libtinyxml-dev mercurial cmake build-essential
```
构建gzweb:
``` bash
source /usr/share/gazebo/setup.sh
cd ct-digital-twin/gzweb
npm run deploy ---
```
3. 数字孪生ROS包部署
环境依赖:
* ROS2
安装VRPN库:
```bash
git clone https://github.com/vrpn/vrpn.git
mkdir -p vrpn/build
cd vrpn/build
cmake ..
make
make install
```
编译ROS包:
```bash
cd ct-digital-twin/digital_twins_ws
colcon build --packages-select entity_manager_interfaces
source install/setup.bash
colcon build
```
#### 使用说明
1. 启动gzserver
``` bash
cd ct-digital-twin/digital_twins_ws
source install/setup.bash
ros2 launch gazebo_entity_manage gazebo_entity_manage.launch.py
```
2. 启动VRPN消息转发
编辑配置文件`ct-digital-twin/digital_twins_ws/src/vrpn_listener/config/params.yaml`:
``` yaml
/vrpn_listener:
ros__parameters:
server: 192.168.50.88 # VRPN 数据源IP
port: 3883
frame_id: "world"
mainloop_frequency: 100.0 # 主循环频率 (hz)
refresh_trackers_frequency: 1.0 # tracker刷新频率 (hz)
tracker_mainloop_frequency: 100.0 # tracker主循环频率 (hz)
```
如果修改了配置文件,则需重新编译ros包,编译完成后执行以下命令:
``` bash
cd ct-digital-twin/digital_twins_ws
source install/setup.bash
ros2 launch vrpn_listener sync_entity_state.launch
```
3. 启动gzweb
``` bash
cd ct-digital-twin/gzweb
npm start
```