Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 制作一个ROS节点,该节点在;味精范围“;_Python_Arrays_Filter_Ros - Fatal编程技术网

Python 制作一个ROS节点,该节点在;味精范围“;

Python 制作一个ROS节点,该节点在;味精范围“;,python,arrays,filter,ros,Python,Arrays,Filter,Ros,我希望编写一个窗口宽度为3的中值滤波器,即三个[1,2,3,4,5,6]输出为[1,3,4,6]。因此,我尝试编写以下节点。但是,作为新手,我仍然不知道如何将python代码转换成ROS节点来工作。那么,你能帮我写这个节点吗? #!/usr/bin/env python """ """ import rospy from sensor_msgs.msg import LaserScan def las_callback(msg):

我希望编写一个窗口宽度为3的中值滤波器,即三个[1,2,3,4,5,6]输出为[1,3,4,6]。因此,我尝试编写以下节点。但是,作为新手,我仍然不知道如何将python代码转换成ROS节点来工作。那么,你能帮我写这个节点吗?

#!/usr/bin/env python
"""
"""

import rospy
from sensor_msgs.msg import LaserScan

def las_callback(msg):

#function definition pass two angument
 def medfiter(X,win_len):


#this function return shape and type of x
  Y=np.zeros_like(X)


#initualize value of padwidth
  padwidth=int((win_len-1)/2)

#pading array X
  X=np.pad(X,((0,0),(padwidth,padwidth)))

#loop in i read from padwidth value to the X.shape[1]-padwidth
for i in range(padwidth,X.shape[1]-padwidth):

#store median in y variable of x variable by passing columns and rows of data in median function

  Y[:,i-padwidth]=np.median(X[:,i-padwidth:i+padwidth+1],axis=1)

#return variable y
return Y
 
     
rospy.init_node('laser_readings')
sub = rospy.Subscriber('/base_scan', LaserScan, las_callback)
rospy.spin()

您应该首先检查作为数据格式的消息类型。就你而言,你有激光扫描。在这里您可以看到

所以你们必须对应用中值滤波的范围(浮动列表)感兴趣。因此,请按如下方式获取数据:

data = msg.ranges 

现在,您有了一个列表(数据),可以进行操作了。

您应该首先检查作为数据格式的消息类型。就你而言,你有激光扫描。在这里您可以看到

所以你们必须对应用中值滤波的范围(浮动列表)感兴趣。因此,请按如下方式获取数据:

data = msg.ranges 
现在您有了一个列表(数据),可以进行操作了