zoukankan      html  css  js  c++  java
  • 4.9-移动,避障与导航

    • 现在出现了两种开发模式(框架)
      • 第一种,在ROS下针对机器人本体,相机,机械臂等开发接口,形成很多独立的包
        • 这种是根据设备来对包进行分类,分模块开发
      • 第二种,使用ROS的MoveIt!开发包,在这个大框架下,针对不同的机器人和机器人功能进行开发
        • 这种是根据功能的不同,进行接口开发!
      • 第二种貌似开始流行了!!
      • 进行接口开发!!
    • 目标:弄懂原理,看怎么样在不载入地图的情况下实现移动和避障行为,机器人行为设计
      • 不载入地图是否意味着可以载入一个空的地图?(就算不是空的,也只给一个全局围墙,像一个矩形似的),然后通过手动指定初始坐标,就可以进行局部路径规划,因为全局地图为空,相当于不进行全局规划,实际上全局规划在LV上通过语义地图进行
    • 实现:给定一个门的虚拟位置(位置,距离和角度),机器人能够走过去,避障,调整位置和姿态
    • Using the ROS MoveIt! and Navigation Stack
    • 安装
      • sudo apt-get install python-wstool
      • STEP 2: Download the source code

        • source /opt/ros/indigo/setup.bash

          mkdir moveit

          cd moveit

          mkdir src

          cd src/

          wstool init .

          wstool merge https://raw.github.com/ros-planning/moveit_docs/indigo-devel/moveit.rosinstall

          wstool update

          cd ..

      • STEP 3: Make sure MoveIt! dependencies are installed

        • rosdep install --from-paths src --ignore-src --rosdistro indigo -y

      • STEP 4: Build MoveIt!

        • Assuming you are in the moveit folder created above,
        • catkin_make
      • 这样装太慢了
    • 推荐这样安装??
      •  sudo apt-get install ros-indigo-moveit-full
    • 由于这样没有源码看,所以又卸载了
    • 还是按照源码来构建吧
      • 下载后安装依赖包
      • 将文件夹复制到ROS工作空间下吧
    • 计划
      • 手动制定初始点
      • 语义地图作为全局规划器
      • 先实现手动遥操作P3AT机器人
      • 再完成机器人语义导航
      • 再实现追门
    • 在自己电脑上实现P3AT手动操作,并寻找vontrol base,只有这样才能够使用navigation stack,使用mobilesim模拟
    • 查看move_base的代码!思考改进方案,最终在自己电脑上实现,给定点序列,机器人能够实现局部避障,和完成路径。
    • amcl node    
      • 看看不启动这个节点会不会出错。如果出错,则改造,使得这个节点的功能是手工定位。zslocal
    • 已经查看globleplanner, movebase,navcore完毕
    • 继续查看代码,分析出需要修改的地方,和怎样修改。
    • 为什么收不到ROSARIA的其他消息呢?
      • tf的原因及相关研究
    • navigation stack 的相关研究及代码修改
      • 卸载deb包,不过要返回来安装bfl第三方依赖包,后来发现编译出现问题,还是把所有依赖包安装上吧
        • sudo apt-get install ros-indigo-bfl libasound2-dev libavahi-client-dev libavahi-common-dev libcaca-dev libdbus-1-dev libpulse-dev libsdl-image1.2-dev libsdl1.2-dev libslang2-dev libwebp-dev libwebpdemux1 libasound2-doc
      • 把所有有关globalplanner 和 global costmap 有关的代码都注释
        • 因为本项目的全局规划器(语义导航模块)并未完成,所以将recovery 模块也注释掉,即不加载此模块
        • 卧槽,太TM难了,代码太多了,估计编译都通不过,更不用说调试了,而且还有四元数!!
      • 方法二:地图使用空白地图,使用假定位,自己设计全局规划器
        • 估计和上面一样难;
      • 方法三:自己从头编写zsbase
        • 但是这也得是在看懂movebase的基础上好吧!!
      • 卧槽,太难了,先花一两天时间来看代码吧!
  • 相关阅读:
    java用户角色权限设计
    六种方式实现hibernate查询,及IDE推荐
    SSH远程会话管理工具
    Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
    Linux 下JDK安装
    linux下FTP的工具和使用以及rpmReadSignature failed错误
    不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常
    hibernate通过数据库表反向生成实体类
    解决vmware 桥联 再次使用联不上网的问题
    log4j详解与实战
  • 原文地址:https://www.cnblogs.com/lizhensheng/p/11117563.html
Copyright © 2011-2022 走看看