Solving the problem when installing birl_baxter

来源:互联网 发布:天网软件拖欠工资 编辑:程序博客网 时间:2024/06/05 12:54

本文记录了解决安装birl_baxter的问题的步骤

~/ros/indigo/baxter_ws

~/ros/indigo/rbx_ws

~/ros/indigo/baxter_test_ws


一、cakin_make时

1. 在安装到example_gui时,说find_package(catkin_simle required)这一句有错,系统找不到catkin_simple的相关配置文件或者独立的package,于是到各个ros有关的资料包去寻找catkin_simple,发现的确不存在此配置文件或package,因此上网找是否有安装此包的方法,找到了一个github关于catkin_simple代码的网址,于是

$ cd baxter_test_ws/src$ mkdir catkin_simple$ cd catkin_simple$ git clone https://github.com/catkin/catkin_simple.git$ cd ../..$ catkin_make
此后,关于catkin_simple的问题再也没有出现过,catkin_simple问题解决。


2. 在安装到controllers/force_controller时,说find_package(... orocos_kdl required)这一句有错,系统找不到orocos_kdl的相关配置文件或者独立的package, 于是先找本地是否有orocos_kdl的相关文件,发现没有,因此上网找是否有安装此包的方法,找到了一个wiki.ros上的相关页面:http://wiki.ros.org/python_orocos_kdl,于是如上面的方法炮制:

$ cd baxter_test_ws/src$ mkdir orocos_kdl$ cd orocos_kdl$ git git clone https://github.com/orocos/orocos_kinematics_dynamics.git$ cd ../..$ catkin_make
系统提示orocos_kdl并不是用catkin_make来安装的,和baxter_test_ws的其他包的编译工具(catkin_make)不一样,于是建议用catkin_make_isolated,但是使用此命令后,仍是编译链接不了,因此决定将他们分开到不同的workspace下各自用不同的工具执行安装命令。其中,orocos_kdl是被birl_baxter调用的工具,因此先安装orocos_kdl:

$ cd ~/ros/indigo$ mkdir orocos_kdl_ws$ catkin_init_workspace$ mkdir src$ cd src$ git git clone https://github.com/orocos/orocos_kinematics_dynamics.git$ cd ../..$ catkin_make

系统报错,原因是编译工具不一样,不可以使用catkin_make来安装orocos_kdl。在源码的github主页上找到了安装说明书 orocos_kinematics_dynamics/.travis.yml,将其安装步骤记录如下:

before_script:  - sudo apt-get install -qq libeigen3-dev libcppunit-dev python-sip-dev  #build orocos_kdl  - cd orocos_kdl  - mkdir build  - cd build  - cmake -DENABLE_TESTS:BOOL=ON -DCMAKE_CXX_FLAGS:STRING="-Wall" -DCMAKE_BUILD_TYPE=${OROCOS_KDL_BUILD_TYPE} ./..  # compile and install orocos_kdl  - make  - sudo make install  - cd ../..  #build python bindings  - cd python_orocos_kdl  - mkdir build  - cd build  - cmake -DCMAKE_CXX_FLAGS:STRING="-Wall" -DCMAKE_BUILD_TYPE=${OROCOS_KDL_BUILD_TYPE} ./..  #compile and install python bindings  - make  - sudo make install  - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib  - sudo ldconfig  - cd ../..  script:  #execute orocos_kdl tests  - cd orocos_kdl/build  - make check  - cd ../..  #execute python bindings tests  - cd python_orocos_kdl/build  - python ../tests/PyKDLtest.py 

自此,orocos_kdl便已安装完毕。此时若在终端输入

$ rospack find orocos_kdl

则会返回orocos_kdl的安装目录/opt/ros/indigo/share/orocos_kdl。由此可见,不是用catkin_make工具安装好的包,其安装目录不是workspace/devel。因此在这里也没有必要将workspace/devel/setup.sh包含到~/.bashrc里。(况且此安装方法没有自动生成devel文件夹...)。也由此可见,orocos_kdl已安装完毕并且可以被系统查找到。

3. 安装好orocos_kdl后,仍然报错说系统找不到orocos_kdl的相关配置文件或者独立的package。orocos_kdl明明是已经编译成了package并且可以被系统找到了,但是仍然不能被CMakeList.txt文件导入调用,因此可能是修改CMakeList.txt文件并且

原本的birl_baxter/controllers/force_controller/CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)project(force_controller)find_package(catkin REQUIRED COMPONENTS roscpp geometry_msgs sensor_msgs baxter_core_msgs kdl_parser orocos_kdl                ## This line will be deleted message_generation)
修改过后的birl_baxter/controllers/force_controller/CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.3)project(force_controller)<p></p><p>set(orocos_kdl_DIR /home/drinkcor/ros/indigo/orocos_ws/src/orocos_kinematics_dynamics/orocos_kdl/config)    ## Added line</p>find_package(catkin REQUIRED COMPONENTS roscpp geometry_msgs sensor_msgs baxter_core_msgs kdl_parser message_generation)
然后再catkin_make,orocos_kdl的相关问题便不再出现了。


3. usr/bin/ld: cannot find -llapack

Invoking "make -j4 -l4" failed

网上查找到问题原因一般是由于ld在进行库的连接时找不到库文件所致,解决方案是:

    出现该问题时,去lib目录下查找相关的库文件,基本如下:

# cd  /usr/lib# ll | grep liblapack
返回的消息大致如下:

lrwxrwxrwx   1 root root       16 Nov 14 22:40 liblapack.so.3 -> liblapack.so.3.1.4
-rwxr-xr-x   1 root root    25484 Dec 16  2009 liblapack.so.3.1.4

可以观察到,上述库文件中没有库的入口: liblapack.so,可以通过手动建立连接来解决:

# ln -s ./liblapack.so.3 ./liblapack.so
再次安装,birl_baxter终于安装成功。


二、安装成功后仍找不到birl_baxter下的包。

首先确保已将下列两句添加到~/.bashrc中:

source ~/ros/indigo/baxter_test_ws/devel/setup.bashexport ROS_WORKSPACE=~/ros/indigo/baxter_test_ws/src
其次,在终端输入下列三句命令:

$ source ~/.bashrc$ source ~/ros/indigo/baxter_test_ws/devel/setup.bash$ source ~/ros/indigo/baxter_test_ws/devel/setup.sh

稍后片刻,rospack等命令便可以找到birl_baxter下的包了。

0 0