有没有办法在raspberry pi中使用python脚本获取roscore字符串?

2024-10-01 07:50:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为激光扫描机(马达+测距仪/Hokuyo)使用覆盆子Pi

对于测距仪,我打开3命令窗口

#1:roscore

2:rosrun urg#u节点urg#u节点串行端口:=/dev/ttyACM0

#3:sh/home/pi/hokuyo/lidarDemo.sh/home/pi/Desktop/Demo/Data lidar.txt

其中lidarDemo.sh:

if [$# -ne 2 ] 

then 
  echo '2 inputs'
  exit 1
fi

rostopic echo /scan|tee $1/$2

然后保存lidar.txt,直到我关闭终端#3

lidar.txt:

标题:

序号:16828

邮票:

秘书:1594386688

nsecs:380816175

帧号:“激光”

最小角度:-2.35619449615

最大角度:2.35619449615

角度增量:0.00436332309619

时间增量:1.7361151695E-05

扫描时间:0.025000003725

最小范围:0.02300000000447

最大范围:60.0

范围:[3.88800001144092,3.88800001144092,3.88800001144092

强度:[2673.02663.02652.02673.0


标题:

序号:16828

邮票:

现在,我可以通过使用python脚本实时获取lidar.txt的字符串吗

例如,test.py:

while(True):
    str = getRoscore()
    print(str)

Tags: echotxt标题home节点shpi增量
1条回答
网友
1楼 · 发布于 2024-10-01 07:50:05

假设您想用python获取实时激光雷达数据;您可以编写一个python脚本,该脚本有一个订阅/扫描主题,您可以在其中实时处理数据,类似于此

    import rospy
    from sensor_msgs.msg import LaserScan


    lidar_message = None

    def lidar_callback(data):
        rospy.loginfo(rospy.get_caller_id() + " %s", data)
        lidar_message = data
        ##Execute necessary processing here..

    if __name__ == '__main__':
        rospy.init_node('lidar_node', anonymous=True)
        rospy.Subscriber("/scan", LaserScan, lidar_callback)
        
        ##Execute rest of the logic here...

        rospy.spin()

相关问题 更多 >