最近在做激光雷达构建的2D grid地图的边缘美化工作,尝试了滤波等一系列操作之后,发现边缘确实细化了,但想要平滑拉直的地方仍然没办法做到,所以寻求思路和建议,目前能做到的效果如下图(截取了一部分边缘):
原图
效果图
可以看到边缘是细化了的,但是我想要给它拉直平滑,因为地图里涉及到横纵长短很多形式的线,所以很多处理方法都没办法起作用,求给点有效建议,谢谢!
最近在做激光雷达构建的2D grid地图的边缘美化工作,尝试了滤波等一系列操作之后,发现边缘确实细化了,但想要平滑拉直的地方仍然没办法做到,所以寻求思路和建议,目前能做到的效果如下图(截取了一部分边缘):
原图
效果图
可以看到边缘是细化了的,但是我想要给它拉直平滑,因为地图里涉及到横纵长短很多形式的线,所以很多处理方法都没办法起作用,求给点有效建议,谢谢!
@weijiz 可以给一些具体案例么,我可以订阅到odom的消息,但是如何去用它判断呢,我明白这种思路,但做法不是很清晰,可以给一些具体案例或代码例子参考么
@weijiz 嗯,后边我也是通过这种方式解决的。现在就是有个新问题,我如果想要让小车旋转90度,前进1米,有没有实现这样功能的函数呢,感觉应该有直接实现类似功能的函数吧?
如题,我自己写了个python小程序控制小车运动,代码如下:
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
def vel_publisher():
rospy.init_node('turtlebot_automove',anonymous=True)
vel_pub=rospy.Publisher('cmd_vel',Twist,queue_size=10)
rate=rospy.Rate(10)
while not rospy.is_shutdown():
vel_msg=Twist()
vel_msg.linear.x = 0.04
vel_pub.publish(vel_msg)
rospy.loginfo("burger is moving at speed[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z)
rate.sleep()
if __name__=='__main__':
try:
vel_publisher()
except rospy.ROSInterruptException:
pass
最终小车是可以按照预期速度直线行走了,但是当我Ctrl+C关闭节点时,小车并没有停止下来,还是在一直走,我使用rostopic echo 查看速度发布话题数据,终端也不给任何反馈信息。