ubuntu16.04(ros版本kinetic)维基百科20例操作示例

首先,给出示例的网址http://wiki.ros.org/ROS/Tutorials(本身有例程,不过部分有问题或者不够详尽)

本例的工作空间是在个人目录中的workspace文件夹表示为~/workspace或者/home/(你的用户名)/workspace

1、配置环境,创建程序包,编译程序包;

  • $ source /opt/ros/kinetic/setup.bash     在当前bash环境下读取并执行setup.bash中的命令。
  • $ mkdir -p ~/workspace/src               在工作目录下创建src文件夹-p(目的)no error if existing, make parent directories as needed
  • $ catkin_make                             此时你的目录应该是在~/workspace下,如果进入了src目录可输入cd ..到上层目录(可能这步会报错,后面有解法)
  • $ echo $ROS_PACKAGE_PATH                  查看ros中最重要的环境变量是否设置成功(成功的标志应该是路径中有指向当前工作空间的路径,长这样:/home/你的用户名/workspace/src:/opt/ros/kinetic/share)如果未成功,则要在工作目录~/workspace下执行:
    $ source devel/setup.bash,在当前终端应用环境变量.
  • 进入~/workspace/src  执行:$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp  然后返回workspace目录
  • $catkin_make                                                         到此时程序包已经编译完成,使用$roscd beginner_tutorials应该可以直接进入该包的目录(~/workspace/src/beginner_tutorials)了.(可能这步会报错,后面有解法)

2、创建ROS消息和ROS服务:

  • $ roscd beginner_tutorials                                     如果完成了上面的所有操作,此步骤应该不会报错(如果报错请执行文末的错误解决方法)
  • $ mkdir msg                                                           在包文件目录下创建msg文件夹
  • $ echo "int64 num" > msg/Num.msg                     将引号内的内容写入Num.msg中
  • 打开包目录(beginner_tutorials)下CMakeLists.txt文件,在find_package函数的参数列表中添加message_generation,(不包含逗号)在catkin_package函数参数列表中添加CATKIN_DEPENDS message_runtime,(不包含逗号)找到
    # add_message_files(
    #   FILES
    #   Message1.msg
    #   Message2.msg
    # )将所有#号删除,删除Message1.msg和Message2.msg,添加Num.msg,,(不包含逗号)(后面这句用来暂时添加,在执行完最后一句后编译前将这句删除(因为在之前需要有将被注释的这句话释放出来添加依赖项))在最后添加一行,generate_messages()保存
  • $ rosmsg show beginner_tutorials/Num    此时应该就能看到之前输入到文件中的内容
  • $ roscd beginner_tutorials              回到包目录下
  • $ mkdir srv                             创建服务文件夹
  • $ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv  从rospy中拷贝一个服务出来
  • CMakeLists.txt文件中
    • # add_service_files(
    • # FILES
    • # Service1.srv
    • # Service2.srv
    • # )将所有#号删除,删除Service1.srvService2.srv,添加AddTwoInts.srv,(不包含逗号),保存退出
  • $ rossrv show beginner_tutorials/AddTwoInts  此时应该就能看到int64 a int64 b --- int64 sum
  • CMakeLists.txt文件中找到
    # generate_messages(
    #   DEPENDENCIES
    # #  std_msgs  # Or other packages containing msgs
    # )去掉注释并附加上所有你消息文件所依赖的那些含有.msg文件的package(这个例子是依赖std_msgs,不要添加roscpp,rospy),结果如下:
    generate_messages(
      DEPENDENCIES
      std_msgs
    )
  • 返回到~/workspace重新输入$ catkin_make编译

3、编写简单的消息发布器和订阅器 (C++)

大部分错误解法:经多次尝试和搜索发现都是环境变量未生效等等配置未能实现,需要每次启动终端输入source ~/workspace/devel/setup.bash即可,由于每次打开都要输入该指令太过繁琐,只需执行:$ vim ~/.bashrc在文件最后输入source ~/workspace/devel/setup.bash即可

转载于:https://www.cnblogs.com/benxiaohai1995/p/7769076.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值