作者:Sam (甄峰) sam_code@hotmail.com
之前介绍过Hands-Free,现在开始介绍如何下载Hands-Free相关ROS Package,
并编译运行之。
0. ROS版本,Cmake版本:
强烈建议使用indigo. CMake:2.8.12.2或之上
Sam之前使用hydio, cmake 版本也较低, 结果编译时出各类错误。
1. 下载Hands-Free相关ROS
Package-----ROS_DEMO
https://github.com/HANDS-FREE是Hands-Free的github仓库,其中https://github.com/HANDS-FREE/ROS_DEMO
是ROS Package.
https://github.com/HANDS-FREE/ROS_DEMO.git
Sam在catkin_ws/src/hands-free目录下,运行:
$sudo git clone https://github.com/HANDS-FREE/ROS_DEMO.git
将ROS_DEMO加入catkin workspace.
2. 运行脚本,安装依赖包:
在catkin_ws/src/hands-free/ROS_DEMO/Documention/中,有个environment_config.sh,
它里面描述了要安装的一些依赖包。
$sudo apt-get install xxxx
3. 修改main.cpp内容:
catkin_ws/src/hands-free/ROS_DEMO/handsfree_hw/src/main.cpp
的第7行,修改为自己的路径。
4. catkin_make
5.
source catkin_ws/devel/setup.bash
下面就可以运行ROS_DEMO的例子了。
附1:
setup.bash和setup.sh解读:
$(BASH_SOURCE[0])
这个用法很关键, 在不同目录下,不同调用方式下,要获取BASH SOURCE File name,
就可以使用它来获取。
例如:
test/build/目录内,有个env.bash文件,
可以在test/build目录内,./env.bash 调用, 也可以对本bash起效的方式:
A:不同调用方式:
. ./env.bash 或:bash
env.bash 或 source env.bash
都想获取Bash Source 文件。
echo ${BASH_SOURCE[0]}
则以上调用方式,都得到env.bash.
B:不同调用目录:
在 build目录,在test目录,在test/build目录下,分别调用:
得到 build/env.bash
test/build/env.bash
env.bash
所以,很好的得到了bash 文件。
dirname : 取目录名
所以:setup.bash
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`"
> /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"
含义是,找到这个目录,并运行: . /home/sam/catkin_ws/devel/setup.sh