< >
Home » DashgoD1底盘新指南 » DashgoD1底盘新指南-5.4 超声波避障

DashgoD1底盘新指南-5.4 超声波避障

DashgoD1底盘新指南-5.4 超声波避障

D1 超声波避障

  • 在一个终端运行下面脚本
    $ roslaunch dashgo_bringup bringup_smoother_ob.launch
  • D1 前方摆放障物

  • 然后,再在另一个终端运行

    $ rostopic pub -r 10 /smoother_cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
  • 便可查看 D1 的 移动反应。

  • 整合超声波的代码在 ~/dashgo_ws/src/dashgo/dashgo_bringup/nodes/dashgo_driver_sm_ob.py 内,目前只整合了两个超声波模块:前面中间的超声波模块与后面的超声波模块。

  • 超声波模块的数据的引用代码如下:

try:
    r1,r2,r3,r4 = self.arduino.ping()
    self.front_ranger=r2  //r2 代表前面中间的超声波模块
    self.back_ranger=r4   //r4 代表后面的超声波模块
    #rospy.loginfo("ranger: " + str(r1)+","+str(r2)+","+str(r3)+","+str(r4))
except:
    rospy.logerr("ping error")
    return
  • 超声波模块的数据的处理逻辑代码如下:
if(self.front_ranger<=self.safe_ranger_0) and (x>0):
    x=0
elif(self.front_ranger<=self.safe_ranger_1) and (x>0.05):
    x=0.05
elif(self.front_ranger<=self.safe_ranger_2) and (x>0.15):
    x=0.15
if(self.back_ranger<=self.safe_ranger_0) and (x<0):
    x=0
elif(self.back_ranger<=self.safe_ranger_1) and (x<-0.05):
    x=-0.05
elif(self.back_ranger<=self.safe_ranger_2) and (x<-0.15):
    x=-0.15
  • 实际中,超声波数据的处理逻辑需要根据实际的应用场景进行修改,上面给出的只是范本。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: dashgo d1