rrt_exploration代码解析(四)—— assigner.py

rrt_exploration代码解析(一)—— global_rrt_detector.cpp

rrt_exploration代码解析(二)—— local_rrt_detector.cpp

rrt_exploration代码解析(三)—— filter.py

rrt_exploration代码解析(四)—— assigner.py

assigner.py

        前面三篇博客提到的文件都是在获取地图数据后对数据进行处理获取到的当前地图的吧边界点,都没有设计robot的运动控制部分,而assigner.py的主要功能就是将之前处理好的边界点信息通过一定的评价标准设置优先级,并将边界点作为movebase的目标点发布,安排多个robot对未知地图进行探索。

        回调函数获取边界点和地图数据。

def callBack(data):
	global frontiers
	frontiers=[]
	for point in data.points:
		frontiers.append(array([point.x,point.y]))

def mapCallBack(data):
    global mapData
    mapData=data

        主节点node()用于分配各个robot需要探索的边界点,首先进行参数初始化。


	global frontiers,mapData,global1,global2,global3,globalmaps
	rospy.init_node('assigner', anonymous=False)
	
	# fetching all parameters
	map_topic= rospy.get_param('~map_topic','/map')
	info_radius= rospy.get_param('~info_radius',1.0)					#this can be smaller than the laser scanner range, >> smaller >>less computation time>> too small is not good, info gain won't be accurate
	info_multiplier=rospy.get_param('~info_multiplier',3.0)		
	hysteresis_radius=rospy.get_param('~hysteresis_radius',3.0)			#at least as much as the laser scanner range
	hysteresis_gain=rospy.get_param('~hysteresis_gain',2.0)				#bigger than 1 (biase robot to continue exploring current region
	frontiers_topic= rospy.get_param('~frontiers_topic','/filtered_points')	
	n_robots = rospy.get_param('~n_robots',1)
	namespace = rospy.get_param('~n
rrt_exploration是一种基于快速随机树(Rapidly-exploring Random Trees,简称RRT算法的探索路径规划代码RRT算法是一种高效的无人机航迹规划算法,常用于探索未知环境。 rrt_exploration代码的主要功能是在未知环境中生成一条接近最优的路径,使得无人机可以探索整个环境。代码的实现包含以下几个步骤: 1. 初始化:代码首先会获取环境地图和无人机初始位置信息。同时,会设置RRT算法的参数,如树的最大生长步长、最大迭代次数等。 2. 构建树:代码会根据无人机的初始位置作为树的起点,开始构建随机树。在每次迭代中,代码会生成一个随机点,并将该点与树上的最近节点进行连接,形成一条新的树枝。 3. 节点选择:代码会根据一定的策略,选择合适的节点进行生长。常用的策略有最近邻节点和最优路径代价节点选择。 4. 碰撞检测:在每次生成新节点时,代码会进行碰撞检测,确保新生成的路径不会与障碍物相交。 5. 收敛判断:当生成的树趋近于目标位置时,代码会判断是否达到收敛条件。如果达到收敛条件,则会停止迭代,树构建完成。 6. 最优路径回溯:在收敛时,代码会回溯树,找到从起点到目标位置的最优路径。最优路径一般是根据路径长度、代价函数等标准来评估的。 总的来说,rrt_exploration代码通过RRT算法在未知环境中生成一条最优路径,用于无人机的探索任务。通过树的构建和回溯,代码能够快速生成一条安全且高效的路径规划结果。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

libenfan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值