有什么方法可以使用 raspberry pi 中的 python 脚本获取 roscore 字符串吗?
Is there any way to get roscore string using python script in raspberry pi?
我正在使用 Raspberry Pi 激光扫描仪(电机 + Rangefinder/Hokuyo)。
对于Rangefinder的情况,我打开了3个命令window,
#1 : roscore
#2 : rosrun urg_node urg_node _serial_port:=/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 /
然后 lidar.txt 被保存,直到我关闭终端#3。
lidar.txt :
header:
序列:16828
邮票:
秒:1594386688
纳秒:380816175
frame_id:“激光”
angle_min: -2.35619449615
angle_max: 2.35619449615
angle_increment: 0.00436332309619
time_increment: 1.73611151695e-05
scan_time: 0.0250000003725
range_min: 0.0230000000447
range_max: 60.0
范围:[3.888000011444092,3.888000011444092,3.888000011444092,...
强度:[2673.0, 2663.0, 2652.0, 2673.0 ...
header:
序列:16828
邮票:
...
现在,我可以使用 real-time 中的 python 脚本获取 lidar.txt 的那些字符串吗?
例如,test.py:
while(True):
str = getRoscore()
print(str)
假设您想获取python中的实时激光雷达数据;您可以编写一个 python 脚本,其中有一个订阅者 /scan 主题,您可以在其中实时处理您的数据,类似于此,
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()
我正在使用 Raspberry Pi 激光扫描仪(电机 + Rangefinder/Hokuyo)。
对于Rangefinder的情况,我打开了3个命令window,
#1 : roscore
#2 : rosrun urg_node urg_node _serial_port:=/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 /
然后 lidar.txt 被保存,直到我关闭终端#3。
lidar.txt :
header:
序列:16828
邮票:
秒:1594386688
纳秒:380816175
frame_id:“激光”
angle_min: -2.35619449615
angle_max: 2.35619449615
angle_increment: 0.00436332309619
time_increment: 1.73611151695e-05
scan_time: 0.0250000003725
range_min: 0.0230000000447
range_max: 60.0
范围:[3.888000011444092,3.888000011444092,3.888000011444092,...
强度:[2673.0, 2663.0, 2652.0, 2673.0 ...
header:
序列:16828
邮票:
...
现在,我可以使用 real-time 中的 python 脚本获取 lidar.txt 的那些字符串吗?
例如,test.py:
while(True):
str = getRoscore()
print(str)
假设您想获取python中的实时激光雷达数据;您可以编写一个 python 脚本,其中有一个订阅者 /scan 主题,您可以在其中实时处理您的数据,类似于此,
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()