回顾调参数

rqt参数永久保存-保存位置打开:

roscd bobac2_navigation/param/

打开rqt,打开move_base_node中的DWAPlannerROS

occdist_scale  避障欲望 建议参数 0.4~0.5 (差别不大)

path_distance_bias 全局路线 #判断与到距离之间的路径最优选择何种 100

goal_distance_bias 局部路线 #注意两者之间差值  建议参数 24~30

sim_time  思考时间 1.7(不要调太大)

 

另外要注意:速度,加速度 这两个参数也很重要

max_vel_x

max_vel_y 这两个值太小了也不行,会跑到墙面再转回

DWA参数的在DWA文件

注意安refresh刷新

#清除临时障碍物
rosservice call /move_base_node/clear_costmaps

其余的笔记

主要改gazeb和kinrct和move的DWAPlanneros
(DWAPlanneros:这个调参比较多)
DWAPlanneros:
1平均速度
ass lim  x:加速度
xy goal tolerance:xy的半径误差(到达目的地的误差)
yaw goal tolerance:角度误差(相当于转弯的半径大小,弧度)
trans stopped vel:平移停止的速度(一般0.2)
rot stopped vel :转弯停止的速度(一般0.3)
sim time:计算时间(1.5转弯比较快~4就是转弯弧度安全圆滑。一般调1.7左右)
path drstance bias;全局路线
goal drstance bias :局部路线(上下这两个相互影响)
occdist scale:避障欲望(0.1)

音频与播报导航处理(续)

!!!重新整理!!!:》

两个思路过程,1是开启语音模块并获取到需要播报的位置坐标,2是修改获取的参数重新运行

首先老样子需要先打开软件(全程打开!

#打开软件
roslaunch bobac2_navigation demo_nav_2d.launch

运行语音播报:

运行播报以及语音模块需要开启如下命令:

#需要网络,访问迅飞,这是一个服务,需要进行请求
roslaunch match_demo match_demo.launch
#在打开一个终端
rosservice call /match_start "start: true"
#多开用(直接开启语音助手模块)
roslaunch voice_integrated_application voice_integrated_application.launch

注意,如果出现报错 QTTSAudioGet failed, error code: 10407. 则说明APPID与libs的连接文件无法对应,需要从迅飞助手中再度将libs下的libmsc.so文件给取出,对项目中所需要模块的libs文件进行替换

进行播报语音坐标位置修改:

首先打开文件夹,找到

#打开需要修改的文件
~/bobac2_ws/src/bobac2-master/bobac2_audio/voice_nav/config/voice_nav/position_info.txt

#获取当前坐标位置:
rostopic echo /amcl_pose 

文件中的位置数据通过二维数组进行存储,每一行中的数据内容有:

  • 位置坐标(position) x y z,其中因为没有高度所以z固定为0
  • 方向(orientation)x y z w ,其中因为xy为0值,因此核心修改为zw坐标

获取的数据内容有:

header: 
  seq: 149
  stamp: 
    secs: 395
    nsecs: 563000000
  frame_id: "map"
pose: 
  pose: 
    position: 
      x: -0.0962459325388	#=============#
      y: 0.0275780254311	#=============#
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: -0.182542539963	#=============#
      w: 0.983197956214		#=============#
  covariance: [0.006574169390090938, -0.0009474390923510261, 0.0, 0.0, 0.0, 0.0, -0.000947439092351027, 0.009094770685125932, 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, 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.00230069321889966]
---

核心需要获取的内容为标注了 #=============# 的文件,记得注意小数点,不要太长

音频文件修改:

修改唤醒词:

#打开文件夹
cd ~/bobac2_ws/src/bobac2-master/bobac2_audio/awake/launch
#编辑文件
vim awake.launch
#或者使用gedit编辑器
gedit awake.launch

编辑语音文件,直接打开文件夹,对下面的音频文件进行替换即可(名字相同)

#打开文件夹
cd ~/bobac2_ws/src/bobac2-master/bobac2_audio/ifly_package/config/source/AIUI/audio

编辑语音播报顺序:

#打开文件夹
cd  ~/bobac2_ws/src/bobac2-master/match_demo/launch
#编辑文件
vim match_demo.launch
#或者使用gedit编辑器
gedit match_demo.launch

顺序解释(打开launch文件后,显示内容如下):

<launch>
  <node name="match_demo" pkg="match_demo" type="match_demo_node" output="screen">
    <param name="first" type="int" value="1"/>
    <param name="second" type="int" value="2"/>
    <param name="third" type="int" value="3"/>
    <param name="fourth" type="int" value="4"/>
    <param name="fifth" type="int" value="5"/>
  </node>
</launch>

与他对于的文件为~/bobac2_ws/src/bobac2-master/match_demo/src/match_demo.cpp :

        switch(num[i]){
          case 1:
            system("aplay ./source/AIUI/audio/shanghai.wav");
            break;
          case 2:
            system("aplay ./source/AIUI/audio/beijing.wav");
            break;
          case 3:
            system("aplay ./source/AIUI/audio/tianjin.wav");
            break;
          case 4:
            system("aplay ./source/AIUI/audio/shenzhen.wav");
            break;
          case 5:
            system("aplay ./source/AIUI/audio/guangzhou.wav");
            break;
        }

大概这个位置,对应的是音频文件与打开方式

 

音频代码准备:替换项目文件为自己的appid

修改语音:找到语音包,找到230行,APPID复制下来,主要是三个包

  1. awake(唤醒模块)21行
  2. voice_nav.cpp (语音识别)65行
  3. tts_test.cpp(语音播报)39行

 

注意编译原则

当修改了.c或者.cpp文件这样的东西时候需要重新编译,只是修改launch是不需要重新编译的(也就是说修改了appid需要重新编译)

 

分类: AIC++Linux

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注