您的位置:首页 > 其它

ROS学习笔记一:基础教程(上)

2018-01-29 19:47 429 查看
       学习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

    说明正常。
   第一次写博客,还是特别艰难,后面没有完成的部分我会尽快完成的,希望大家喜欢。

    

          

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ros 基础教程