安装vrpn_client_ros2库将动捕数据转换ROS2话题
环境:
Ubuntu :20.04 LTS
ROS :ROS2 Foxy
安装VRPN库
执行以下命令安装VRPN库。
git clone https://github.com/vrpn/vrpn.git
mkdir -p vrpn/build
cd vrpn/build
cmake ..
make
sudo make install
拉取vrpn_client_ros2节点代码并配置VRPN server参数
执行以下命令拉取vrpn_client_ros2代码。
git clone https://github.com/efc-robot/vrpn_client_ros2
拉取完成后,编辑代码中的配置文件 vrpn_client_ros2/src/vrpn_listener/config/params.yaml
。
/vrpn_listener:
ros__parameters:
server: 192.168.1.2 # VRPN server在局域网内的IP
port: 3883 # VRPN server的服务端口
frame_id: "world" # reference frame参数
mainloop_frequency: 100.0 # 主循环频率,频率越高,越不容易丢失VRPN数据包,但同时计算负载越大
refresh_trackers_frequency: 1.0 # 追踪器刷新频率,频率越高,发现新的VRPN tracker的实时性越强
tracker_mainloop_frequency: 100.0 # 追踪器主循环频率,频率越高,越不容易丢失VRPN数据包,但同时计算负载越大
- 根据动捕软件的数据发送设置,配置
server
和port
参数。 - 不推荐修改其余配置项,默认即可。
编译软件包
执行以下命令编译vrpn_client_ros2,其中 ${ROS_DISTRO}
替换为实际使用的ROS2版本。
source /opt/ros/${ROS_DISTRO}/setup.bash
cd vrpn_client_ros2/src
colcon build
启动vrpn_client_ros2节点
执行以下命令运行vrpn_client_ros2节点。
cd vrpn_client_ros2/src
source install/setup.bash
ros2 launch vrpn_listener sync_entity_state.launch
重命名话题名 /vrpn/fly/pose 为 /mavros/vision_pose/pose
编辑代码中的launch文件vrpn_client_ros2/src/vrpn_listener/launch/sync_entity_state.launch
。
改为以下代码。
<launch>
<arg name="server" default="localhost"/>
<node name="vrpn_listener" pkg="vrpn_listener" exec="vrpn_listener" output="screen">
<param from="$(find-pkg-share vrpn_listener)/config/params.yaml"/>
<remap from="/vrpn/fly/pose" to="/mavros/vision_pose/pose"/>
</node>
</launch>
之后重新编译软件包并运行节点即可。