• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2

人工智能 布剪刀石头 2107次浏览 0个评论

前言

注意:因为版本原因没能成功操作R2,还在探索阶段,这里只是记录安装过程。   NASA的R2机器人已经在空间站成功的部署了,可是这个开源机器人在ros平台上的资源很少,估计都被人遗忘了,R2机器人拥有两条机械臂以及人形的外壳,对于初学ros的人来说应该是非常有吸引力的,今天参考书上的例子尝试下R2的操作。   ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2 ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2  

实验环境

ros:kinetic Ubuntu:16.04 gazebo:7.0.0

安装

现在下载github的资源是真的慢。。。解决办法可以看我这篇微博:解决github资源下载慢  

mkdir -p ~/r2_ws/src
cd r2_ws/src
catkin_init_workspace
catkin_create_pkg r2 rospy geometry_msgs
git clone https://gitee.com/xmy0916/nasa_r2_simulator.git
git clone https://gitee.com/xmy0916/nasa_r2_common

  你可以看到这两个谷仓是我从NASA的github上拉到我的gitee上的,从gitee下载资源非常的快。

编译

cd ~/r2_ws
catkin_make

  不出意外要很多报错,这也是这篇博客这么晚写的原因,初学的时候看到这些问题头都大了,无从下手,慢慢的发现作者给的包肯定是能用的,问题都出在版本不同上了,所以解决这些问题的方法就是看不同版本软件的源码,寻找差异。debug过程我个人觉得还是最重要的。  

错误一

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   细看一下好像是c的标准不一样,这个好解决。

修改CMakeLists.txt中,SET(CMAKE_CXX_FLAGS ” “)为SET(CMAKE_CXX_FLAGS “-std=c++0x”)

 

cd ~/r2_ws/src
sudo vi CMakeLists.txt 

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2  

错误二:

  再次编译

cd ~/r2_ws
catkin_make

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   可以看到刚才的问题解决了,然后是gazebo的 问题,这个比较棘手。。。作者用的gazebo版本非常老。。。好像是gazebo0.几的版本这些函数都废弃了。我于是下载了作者用的版本的gazebo源码,对比了缺少的代码,但是能力有限,本以为添加这几个函数就可以了,结果这些函数间互相牵连的太多了。。。改动起来要大改,而且不太清楚这些函数的用处,所以只能放弃了。这里我只整明白了修改一部分代码。  

sudo gedit /home/xmy/r2_ws/src/nasa_r2_simulator/gazebo_gripper/src/gazebo_gripper/GazeboGripper.cpp

  打开报错的cpp文件,ctrl+F搜索报错关键字AddContact   ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   修改为:

                if (collisionPtrs.find(name1) == collisionPtrs.end())
                {
                    cc[name1] = contacts[i].collision1;
                    contactCounts[name1] += 1;
                }
                if (collisionPtrs.find(name2) == collisionPtrs.end())
                {
                    cc[name2] = contacts[i].collision2;
                    contactCounts[name2] += 1;
                }

 

错误三

  再次编译

cd ~/r2_ws
catkin_make

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   可以看到AddContact的报错已经没有了。

然后处理这个replace_all replace_all是c语言boost库里面的函数,这个肯定很好解决 网上搜了下源码发现replace_all在algorithm类里面,显然调用的代码应该是

 

boost::algorithm::replace_all 

  再次编辑文本

sudo gedit /home/xmy/r2_ws/src/nasa_r2_simulator/gazebo_taskboard/src/gazebo_taskboard/GazeboTaskboard.cpp

 

包含下头文件#include “boost/algorithm/string.hpp” 全改成boost::algorithm::replace_all 即可。

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2 ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2  

错误四

  再次编译

cd ~/r2_ws
catkin_make

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   最后一个错误了。。。真不容易,这个吧,就是设置一个属性,之前学java都会有set、get方法,然后我看了0.几版本的gazebo源码,他确实就是修改了类里面一个成员的值为true,也不知道这个成员在那些文件都被用上了,我也不好直接加上。。。哎。。那就只能把这句话删了呗。。。  

sudo gedit /home/xmy/r2_ws/src/nasa_r2_simulator/gazebo_gripper/src/gazebo_gripper/GazeboGripper.cpp

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   再次编译

cd ~/r2_ws
catkin_make

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   大功告成。。但是这个注释操作估计会带来隐患。。。

测试

cd ~/r2_ws
source ./devel/setup.bash
roslaunch r2_gazebo r2_gazebo.launch

  ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2   看样子安装是有点问题的,初始化之后他应该是会抬头收起手臂的。。。。  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ros机器人编程实践(11.1)- 下棋机器人之安装nasa_r2
喜欢 (0)

您必须 登录 才能发表评论!

加载中……