学习ros最好的教程便是维基百科,但是要注意一点便是中文的维基百科比较的旧特别容易出问题。还是推荐使用英文的维基百科,英文不好的同学可以用谷歌翻译(虽然翻译的水平很烂,但是可以中英文对照着看),推荐一个好办法就是看中文的维基但是命令都用英文版的维基上面的。当然对英文很反感的同学也可以看这里创客制造翻译的教程
闲话不多说,下面是我配置ros基础教程的步骤,我的环境是Ubuntu14.04 ros是indigo。安装教程很多,也比较简单就不详细说明。
一 创建ros程序包
1.1创建catkin工作空间
source /opt/ros/indigo/setup.bash
mkdir -p ~/robochengzi/src
cd ~/robochengzi/
catkin_make
source devel/setup.bash
这样我们就新建了一个catkin工作空间
1.2创建catkin包
cd src/
catkin_create_pkg robot std_msgs rospy roscpp
cd ..
catkin_make
这样我们就成功创建了一个包含std_msgs rospy roscpp的catkin包,接下来我们验证一下是否成功
输入
rospack depends1 robot
rospack depends1 robot
~/robochengzi$ rospack depends1 robot
roscpp
rospy
std_msgs
如果出现,说明创建成功了。你可以继续下面的操作,如果不行只能重新来一次,可能某一步出错了,也可以参考维基百科
二 编译ros程序包
这一步十分便捷,只需要cd到最外层的目录下,然后
catkin_make
ls
build devel src
输入命令ls出现三个文件夹,如果出错请确定当前已经source过。
三 创建msg和srv
3.1 创建msg
进入robot路径
roscd robot
创建一个Num.msg文件
mkdir msg
echo "int64 num" > msg/Num.msg
更改
package.xml,这个文件就在当前目录下可以ls看到
取消如下两行
<build_depend>message_generation</build_depend>
<!-- Use build_export_depend for packages you need in order to build against this package: -->
<!-- <build_export_depend>message_generation</build_export_depend> -->
<!-- Use buildtool_depend for build tool packages: -->
<!-- <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use exec_depend for packages you need at runtime: -->
<exec_depend>message_runtime</exec_depend>
find_package(catkin REQUIRED COMPONENTS#在cmakelist下更改成如下形式
roscpp
rospy
std_msgs
message_generation
)
##取消注释并改成下面的形式
add_message_files(
FILES
Message1.msg
Message2.msg
)
add_message_files(
FILES
Num.msg
)
##取消下面的注释
generate_messages(
DEPENDENCIES
std_msgs
)
现在可以运行一下,观察是否正确
rosmsg show Num
出现下面的结果说明正确
~/robochengzi/src/robot$ rosmsg show Num
[robot/Num]:
int64 num
3.2下面我们新建一个srv
$ roscd beginner_tutorials
$ mkdir srv
这次我们使用复制的方式
roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
同样我们要更改Cmakelist文件
找到如下代码
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
改成
## Generate services in the 'srv' folder
add_service_files(
FILES
AddTwoInts.srv
)
下面检验一下我们的srv文件
输入
rossrv show robot/AddTwoInts
如果看见
~/robochengzi/src/robot$ rossrv show robot/AddTwoInts
int64 a
int64 b
---
int64 sum
说明正常。
第一次写博客,还是特别艰难,后面没有完成的部分我会尽快完成的,希望大家喜欢。