ros_beginner

introduction(background):

最近两周开始学习机器人相关的技术包括ROS工具平台和SLAM算法。一开始没有使用相关的教材,导致装环境也是看别人整理的blog, 非常琐碎。于是花了几天搜索了一下国内相对好点的教程资源,确定了要学习的内容 - 工具ROS 以及算法部分SLAM。

resources:

  • 深蓝学院的课程几乎涵盖所有人工智能相关的内容,同时讲课的也是业界有知名度的人物, 目前看了古月居的ROS课程和机械臂开发 以及高翔讲授的slam入门课程 - 配套他的作品<<视觉SLAM十四讲>>。
  • 关注blog: 泡泡机器人(对于做科研的同学来说是福音 上传了很多相关论文资源) 古月居blog(讲授的内容更贴近实战,在于掌握会用工具)。
  • 目前了解该领域比较少,自己也在探索中,后面会继续补充

my experience in learning Robotics:

  • 首先说下我学习机器人相关的内容也是为了找相关实习,目标比较单一直接,鉴于之前投简历的时候都没有相关的项目,着实尴尬,投了好几家都没有回复,后来下定决心开始学习ROS相关的工具先做出一点东西来,目前学到ROS平台下Gazebo仿真,相当于课程的一半,由于本身也是计算机科班出身,我在3月底开始准备找实习,每天坚持刷算法题和补充C++知识点,Ubuntu这种OS也是很早就碰过了,可能学工具会很好上手点, 但是涉及到算法SLAM数学部分,就很捉襟见肘了,目前也在弥补这块的劣势,将数学公式与算法结合起来学习。

  • 1.安装ROS平台

    • 这个可以说是非常坑的了,我当时听了一个朋友的话做个cartographer仿真跑算法的小demo,结果搜了一圈需要先安装ROS环境,因为安装会报错(后来发现是安装包的问题 用国内大神张明明做好的三个包安装一次性完成的 浪费了三天时间…) 安装ROS我参考的这个blog1 blog2,里面介绍的很全了,大家可以拿去用现成的。
  • 2.ROS基础:

    • 接下来根据古月居的课程 需要了解ROS基本架构 通信编程之类的 在此需要学习 因为后期开发自己的ROS包 都是自己去写那些函数的 主要关注service topic action tf坐标变换即可 下面主要对这几点做出梳理:

    • service programing

      srv_msg

      server client
      init ROS init ROS
      create Server instance create Client instance
      循环等待服务请求 进入回调函数 publish 服务请求数据
      在回调函数中完成服务请求+反馈(类似tcp/ip握手模型) 等待Server处理后的应答结果

      server
      client

    • topic programming

      • msg 定义
        topic_msg
        topic
        topic_msg
        下面来看talker和subscriber分别做了什么

        talker subscriber
        init ROS init ROS
        向ROS Master注册节点信息(发布话题名和话题消息类型) 订阅需要topic
        按照频率循环发布 循环等待话题消息 接收到消息后进入回调函数
        在回调函数中完成消息处理

        talker
        subscriber

      • 课后作业参考该blog1

      • 还需在对应的camkelists配置好才行

        add_executable(talker src/talker.cpp)
        target_link_libraries(talker ${catkin_LIBRARIES})
        # add_dependencies(talker ${PROJECT_NAME}_generate_messages_cpp)
        add_executable(listener src/listener.cpp)
        target_link_libraries(listener ${catkin_LIBRARIES})
        # add_dependencies(talker ${PROJECT_NAME}_generate_messages_cpp)
  • action programming
    action1
    action2
    action3
    action4
  • tf programming
    tf1
    tf2
    作业参考
  • 以上步骤 每次完成相应的camke 都需要catkin_make check是否正确, 当然你们也需要给自己的ubuntu配上编程环境参考blog
    • 后续更新ing

   转载规则


《ros_beginner》 林钊 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录