PND adam teleop
pnd_teleoperation 该框架用来开发adam机器人摇操作。目前支持noitom动捕及meta quest 3S(coming soon)作为数据输入源。
🤖效果展示
🎨架构
下方是pnd_teleoperation整体架构图。
- noitom application目前仅支持在windows计算机上运行
- VR(coming soon)
- pnd_teleoperation、pnd-control运行在adam机器人内置nuc中
🖥️环境
adam机器人内置计算机已预装下方环境,如需在别的计算机运行pnd_teleoperation请按照下方环境配置。
- Ubuntu 22
- Ros2 humble
- casadi 3.6.7 (3.6.7, install from source, binary is not compatible with ros2 humble)
sudo apt-get update && sudo apt-get install -y \
build-essential \
coinor-libipopt-dev \
gfortran \
liblapack-dev \
pkg-config \
swig \
git \
cmake \
python3 \
python3-pip \
--install-recommends
cd /tmp && \
git clone https://github.com/casadi/casadi.git casadi && \
cd casadi && \
git checkout 3.6.7 && \
mkdir build && \
cd build && \
cmake -DWITH_PYTHON=ON -DWITH_IPOPT=ON -DWITH_OPENMP=ON -DWITH_THREAD=ON .. && \
make -j$(nproc) && \
sudo make install && \
sudo ldconfig
💃动捕
诺亦腾动捕
打开axis studio,连接传感器并校准姿态。使用BVH数据广播功能,以UDP协议发送数据到目标机器ip。 诺亦腾具体使用教程请参考视频。
bvh数据广播配置如下图:
其中本机地址设置为axis软件运行的计算机ip地址,目标地址设置为adam机器人计算机ip地址。两个计算机需处在同一局域网。
VR
coming soon
🎯pnd_teleoperation
登录到adam机器人
Build
cd ~/Documents
wget https://github.com/pndbotics/pnd_teleoperation/archive/refs/tags/v0.5.0.tar.gz
tar -zxf v0.5.0.tar.gz
cd pnd_teleoperation-0.5.0
source /opt/ros/humble/setup.bash
colcon build
Run
预览
adam上开启另一个终端,并进入pnd_teleoperation根目录。
PC启动Foxglove Studio并注册登录
点击open connection
使用Foxglove WebSocket的方式连接到机器人,ws://localhost:8765中localhost需要填写为对应机器人ip
点击三维面板,左侧出现面板配置。导入三维面板配置:将下方内容拷贝到配置中,然后点击Apply。配置成功后可以看到如下图效果,机器人会跟随动捕运动。
{
"layers": {
"845139cb-26bc-40b3-8161-8ab60af4baf5": {
"visible": true,
"frameLocked": true,
"label": "Grid",
"instanceId": "845139cb-26bc-40b3-8161-8ab60af4baf5",
"layerId": "foxglove.Grid",
"size": 10,
"divisions": 10,
"lineWidth": 1,
"color": "#248eff",
"position": [
0,
0,
0
],
"rotation": [
0,
0,
0
],
"order": 1
}
},
"cameraState": {
"perspective": true,
"distance": 8.362406704376102,
"phi": 78.01200929751727,
"thetaOffset": -81.68452995867766,
"targetOffset": [
-4.304686610834797,
0.46408895757669916,
-2.8097074529725844e-16
],
"target": [
0,
0,
0
],
"targetOrientation": [
0,
0,
0,
1
],
"fovy": 45,
"near": 0.5,
"far": 5000
},
"followMode": "follow-pose",
"followTf": "world",
"scene": {
"meshUpAxis": "z_up",
"transforms": {
"showLabel": false,
"axisScale": 0
},
"ignoreColladaUpAxis": true
},
"transforms": {},
"topics": {
"/robot_description": {
"visible": true
}
},
"publish": {
"type": "point",
"poseTopic": "/move_base_simple/goal",
"pointTopic": "/clicked_point",
"poseEstimateTopic": "/initialpose",
"poseEstimateXDeviation": 0.5,
"poseEstimateYDeviation": 0.5,
"poseEstimateThetaDeviation": 0.26179939
},
"imageMode": {}
}
实机
实机摇操作目前基于adam_demo开发,手柄操作与adam_demo一致。原则上adam_demo功能在teleop_bin上完全兼容(未测试)。
特别注意
<font color="red">
实机摇操作有一定危险,在接入前确保机器人周围3米空旷。
当上方pnd_teleoperation正确运行并preview效果正常时,teleop_bin方可接入teleoperation数据。
接入数据时确保preview中adam_sp关节位置与实机位置大致相同。
不可在摇操作期间切换其他adam_demo模式。如行走、跑步、动作展示等。
当机器人出现异常时请立即进行下列手柄操作
1. LT+B:进入停止模式
2. LT+RT:退出控制程序
3. LB+RB:执行器断电`</font>`
- 启动teleop_bin
sh run.sh
- 回零(按下 A)
- 站立(按下 X)
- 在站立状态下按下 Right 接入teleoperation数据
- 在站立状态下按下 Left 断开teleoperation数据
adam上开启一个新终端
cd ~/Documents
wget https://pndwiki.oss-cn-beijing.aliyuncs.com/sdk_adlskjfas412838_sakjfhrjdsaljf_skfj3jskdjfd32-38439/teleop_bin_20250424.tar.gz
tar -zxf teleop_bin_20250424.tar.gz
cd teleop_bin
source /opt/ros/humble/setup.bash
sh run.sh
发布
FAQ
浏览器运行foxglove异常
当使用浏览器打开foxglove时出现如下异常时,请点击加载不安全脚本。