• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航

人工智能 布剪刀石头 1301次浏览 0个评论

一、安装

语音识别安装参考文章:安装教程

二、准备工作

如果没有安装turtlebot3的话需要先进行安装,可以参考我前面的博客:传送门

2.1 机器人位置初始化

本节博客要做的是利用科大讯飞的开源语音识别来导航turtlebot,也是展示服务机器人最基本的功能之一吧,那么要做到人工智能,像我在《ros机器人编程实践(7)》中写的使用rviz的2D pose Estimate来人工标定机器人在rviz中的初始位置显然是不合理的,所以首先编写脚本初始化位置,然后加入到启动rviz的launch文件中。

2.1.1 查看初始化位置的话题详情

启动仿真环境:

roslaunch turtlebot3_gazebo turtlebot3_world.launch

  启动rviz:

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

  查看turtlebot的所有话题:

rostopic list

  ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航   虽然我英文不咋好,但是还是看懂了/initialpose哈哈哈哈~   ok查看这个话题的详情:

rostopic info /initialpose

  ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航   [1]消息类型是Type: geometry_msgs/PoseWithCovarianceStamped [2]发布者是rviz [3]使用者是amcl也就是定位的软件 然后查看这个消息的详情:  

rosmsg info geometry_msgs/PoseWithCovarianceStamped

  ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航   这里可以看明白层级关系了吧! 修改坐标x则:对象.pose.pose.position.x 修改四元数x则:对象.pose.pose.orientation.x

2.1.2 初始化位置脚本

ok假装你也看懂了,下面来写初始化的脚本:

sudo gedit ~/wanderbot_ws/src/wanderbot/src/initial_localization.py

 

#!/usr/bin/env python
import sys, rospy, tf, actionlib
from geometry_msgs.msg import *
from tf.transformations import quaternion_from_euler

if __name__ == '__main__':
  rospy.init_node('initial_localization')
  pub = rospy.Publisher('initialpose', PoseWithCovarianceStamped, queue_size=1)
  p = PoseWithCovarianceStamped()
  p.header.frame_id = "map"
  p.pose.pose.position.x = -2
  p.pose.pose.position.y = -0.5
  p.pose.pose.position.z = 0
  p.pose.pose.orientation = Quaternion(*quaternion_from_euler(0, 0, 0))
  p.pose.covariance = \
    [ 0.1 , 0,    0, 0, 0, 0,
      0   , 0.1 , 0, 0, 0, 0,
      0   , 0   , 0, 0, 0, 0,
      0   , 0   , 0, 0, 0, 0,
      0   , 0   , 0, 0, 0, 0,
      0   , 0   , 0, 0, 0, 0.1 ]
  for t in range(0,5):
    rospy.sleep(1)
    pub.publish(p)

 

2.1.3 修改启动rviz的launch文件

roscd turtlebot3_navigation
cd launch/
ls
sudo gedit turtlebot3_navigation.launch 

  在最底下加上:  

  <!-- init -->
  <node pkg="wanderbot" name="initial_localization" 
    type="initial_localization.py" output="screen">
  </node>

    ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航  

2.1.4 启动rviz的launch文件测试结果

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

  ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航   可以看到效果很好,避免了人工摆放的随机误差。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航
喜欢 (0)

您必须 登录 才能发表评论!

加载中……