PyKDL
是一款开源的机器人运动学求解库,能实现正逆运动学的分析,在ROS机械臂编程控制中被广泛使用。
一般来说,用户在安装MoveIt!
时,是默认安装PyKDL
的,但是PyKDL
相关的pykdl_util
库是不会自行安装的,此时就需要用户自己来使用源码安装,本节主要讲述pykdl_utils
源码安装的方法。
1 安装环境介绍
Ubuntu版本:Ubuntu 20.04
ROS版本:ROS Noetic
Python版本:Python 3.8
2 源码下载
建议使用下面的pykdl_utils
源码进行安装:
克隆源码的命令如下:
git clone https://github.com/gt-ros-pkg/hrl-kdl.git -b thermans/noetic-dev
hrl-kdl
下有三个文件夹,分别为:
hrl_geom hrl_kdl pykdl_utils
3 安装步骤
首先,创建工作路径:
mkdir -p ~/catkin_ws/src
之后,切换到pykd_utils
中进行pykd_utils
安装:
cd hrl-kdl/pykdl_utils
python3 setup.py build
sudo python3 setup.py install
此时可以发现,终端并没有安装成功的提示,此时需要对其中的setup.py文件进行修改,文件修改的内容如下:
#!/usr/bin/python3
from setuptools import setup
from catkin_pkg.python_setup import generate_distutils_setup
setup(
name = 'pykdl_utils',
version='0.1.0',
packages=['pykdl_utils'],
package_dir={'': 'src'},
zip_safe=False
)
同理,对于hrl_geom
文件夹下的setup.py也需要进行下面的修改:
#!/usr/bin/python3
from setuptools import setup
from catkin_pkg.python_setup import generate_distutils_setup
setup(
name = 'hrl_geom',
version='0.1.0',
packages=['hrl_geom'],
package_dir={'': 'src'},
zip_safe=False
)
两个setup.py中都设置version为0.1.0,原因是其路径下的package.xml文件中,指明了version:
<?xml version="1.0"?>
<package>
<name>hrl_geom</name>
<version>0.1.0</version>
......
zip_safe=False
这个参数的作用,主要是之前报错的问题**zip_safe flag not set; analyzing archive contents...
**
package_dir={'': 'src'},
这一句话的作用,是指明编译的源码的路径为当前路径下的src文件夹
修改之后采用先前的命令安装pykd_utils
,可以发现终端最后显示了安装成功的信息。
同理,也需要切换到hrl_geom
下安装hrl_geom
:
cd ~/catkin_ws/src/hrl-kdl/hrl_geom/
python3 setup.py build
sudo python3 setup.py install
在安装完hrl_geom
和pykd_utils
之后,接着开始编译整个工作空间:
cd ../../../
catkin build
如果终端中没有显示红字,则说明编译通过。
接下来将source命令写入用户的.bashrc文件中,在用户空间所在的文件夹下编辑.bashrc文件,在文件末尾添加下面这句话:
source /home/[username]/catkin_ws/devel/setup.bash
至此,pykdl_utils
安装完毕,此时在终端中输入python3,并import pykdl_utils
,就会发现程序没有报错,这说明安装成功了:
Python 3.8.10 (default, Nov 22 2023, 10:22:35)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pykdl_utils
>>>