- 现在出现了两种开发模式(框架)
- 第一种,在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的基础上好吧!!
- 卧槽,太难了,先花一两天时间来看代码吧!