ROS通过VRPN接收NOKOV动作捕捉数据

NOKOV度量动作捕捉系统支持通过VRPN与机器人操作系统ROS通信,进行动作捕捉数据的传输。

一、加载数据

打开形影动捕软件,加载一段后处理数据。
这里选择一段小车飞机的同步数据。在这段数据里面,场景下包含两个刚体,分别是小车和无人机。
在这里插入图片描述

二、形影软件设置

  1. 打开右上角的软件设置
  2. 取消勾选“使用VRPN”,这时候可以对VRPN的设置进行修改:
  3. 类型选择刚体
  4. 单位根据实际进行修改,这里选择默认单位毫米
  5. 勾选上“使用VRPN”
  6. 点击软件下方的开始按钮,开始播放数据
    在这里插入图片描述

三、ROS节点设置

1、打开虚拟机,运行VRPN Client的ROS节点。
IP地址与形影软件中的网卡地址设置保持一致。
输入回车。
在这里插入图片描述
2、现在ROS系统下已经可以通过VRPN成功接收到动捕数据。
我们一共设置了两个Tracker,分别是car和cf2
这边对应着动捕软件界面里的两个刚体。
在这里插入图片描述

四、打印话题数据

新开一个终端,开始打印话题数据。

首先使用rostopic list命令,
可以看到当前话题里面增加了两个刚体,即car和cf2的位置数据。

使用rostopic命令实时输出car的位置数据,
就可以持续地输出来源于动捕的6自由度的姿态数据。
在这里插入图片描述

完整演示视频见:
https://www.bilibili.com/video/BV1HM411R71K/?spm_id_from=333.999.0.0&vd_source=7c8173c727b5d663b063712136d3ca1f

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS中,我们可以使用Python编写节点来接收雷达数据。首先,我们需要在Python代码中引入所需的库和消息类型。 ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import LaserScan ``` 接下来,我们需要创建一个节点,并设置节点的名称。 ```python rospy.init_node('laser_receiver') ``` 然后,我们需要定义一个回调函数来处理接收到的雷达数据。 ```python def laser_callback(data): # 在这里处理雷达数据 # 可以使用data变量来访问雷达数据 pass ``` 接下来,我们需要订阅雷达数据的话题,并指定回调函数。 ```python rospy.Subscriber('/laser_scan_topic', LaserScan, laser_callback) ``` 其中,`/laser_scan_topic`是雷达数据的话题名称,`LaserScan`是雷达数据的消息类型。 最后,我们可以使用一个无限循环来保持节点的运行。 ```python while not rospy.is_shutdown(): # 在这里可以执行其他操作 rospy.spin() ``` 完整的代码如下所示: ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import LaserScan def laser_callback(data): # 在这里处理雷达数据 # 可以使用data变量来访问雷达数据 pass rospy.init_node('laser_receiver') rospy.Subscriber('/laser_scan_topic', LaserScan, laser_callback) while not rospy.is_shutdown(): rospy.spin() ``` 通过以上步骤,我们就创建了一个可以接收雷达数据的Python节点。你可以根据实际需求,在回调函数中处理雷达数据,并在`laser_callback`函数中加入相关代码来实现特定的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值