Franka安装ROS功能包,有以下两种安装方式:
- 二进制包安装
- 从源码安装编译
二进制包安装只要在终端输入一行命令就行,很方便。但是功能包全部安装在根目录:/opt/ros/kinetic/share下了,在同样的目录下有很多其它ros文件,查看起来不方便。而且如果想要安装特定版本的功能包,只能肝源码安装了。所有的安装都可以参考Franka官网
1、二进制包安装
直接在终端输入:
sudo apt install ros-noetic-libfranka ros-noetic-franka-ros
2、源码安装
如果之前使用过二进制包安装,那么需要执行下面的命令去把franka相关的文件给删除:
sudo apt remove "*franka*"
防止后续安装出现冲突。
2.1 安装编译libfranka
// 1.安装依赖
sudo apt install build-essential cmake git libpoco-dev libeigen3-dev
// 2.一个创建工作空间
mkdir -p ~/catkin_franka/src
cd ~/catkin_franka/src
catkin_init_workspace
cd ~/catkin_franka
source ~/.bashrc
// 3.选择一个位置下载libfranka
cd ~/catkin_franka
在从github上下载libfranka时,不同型号的Franka机械臂型号命令是不同的。
- 当机械臂是Franka Emika Panda
git clone --recursive https://github.com/frankaemika/libfranka --branch 0.10.0 // 默认下载最新版本 cd libfranka
- 当机械臂是Franka Research 3
git clone --recursive https://github.com/frankaemika/libfranka --branch 0.10.0 # only for FR3 cd libfranka
如果需要安装特定版本,则还需要加上下面命令:
git checkout <version> //version指的是你需要的版本
git submodule update
- 比如我们实验室需要0.8.0版本的,就写成git checkout 0.8.0
- 注意:假如这一步报错不能克隆下来github的代码,出现连接超时的问题。一种方式是把wifi换成手机热点,多尝试几次运气好就能下载下来。如果运气太差一直不行,那就参考自己新建代码库(不过有可能common文件下载不下来,是空文件)。反正我自己是过了几天之后运气好突然就很顺利的下载下来了,之前一直试各种方法都不好使。估计就是命吧。
成功检出特定版本之后是这样的:
// 4. 编译安装
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF ..
cmake --build .
成功之后是这样的:
2.2 安装编译franka_ros
// 1.选择位置下载安装包
cd ~/catkin_franka/src
git clone --recursive https://github.com/frankaemika/franka_ros //默认下载最新版本
cd franka_ros
如果需要安装特定版本,则还需要加上下面命令:
git checkout <version> //version是你需要的版本
比如我们实验室需要0.8.0版本的,就写成git checkout 0.8.0
成功检出特定版本之后是这样的
如果编译报错了,可以尝试以下方法:
现在一定要把刚刚下载的franka_ros文件夹打开,如果里面还有一个同名的franka_ros文件夹,就要把里面那个franka_ros文件夹删掉,才能进行下一步安装依赖,不然会报错。
如果不能解决报错,请把franka_ros包重新恢复回来
// 2.下载安装依赖
cd ~/catkin_franka
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y --skip-keys libfranka
注意这里如果你的ubuntu是18.04的,那么ros是melodic,下载安装依赖的语句就是
rosdep install --from-paths src --ignore-src --rosdistro melodic -y --skip-keys libfranka
同理如果ros是noetic,就把kinetic换成noetic。
这里可能会报错:
这是因为缺少相关的包,只需要把这些包安装就行。比如 第一行表示我缺少realtime_tools,那我就安装这个:
sudo apt-get install ros-kinetic-realtime-tools
注意:
- 这一行代码里面如果你的ros是melodic,你就要吧kinetic换成melodic。
- realtime-tools这里是间隔线,不是下划线。
依次把其他缺少的包给装上(根据自己报错缺失的信息来):
sudo apt-get install ros-kinetic-joint-limits-interface sudo apt-get install ros-kinetic-transmission-interface sudo apt-get install ros-kinetic-combined-robot-hw sudo apt-get install ros-kinetic-controller-interface sudo apt-get install ros-kinetic-panda-moveit-config sudo apt-get install ros-kinetic-controller-manager sudo apt-get install ros-kinetic-control-toolbox sudo apt-get install ros-kinetic-gazebo-ros-control
最后成功是这样的:
// 3.编译安装
catkin_make -DCMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=~/catkin_franka/libfranka/build
source ~/.bashrc
- 注意这里PATH=/path/to/libfranka/build 其实PATH后面跟的是自己libfranka/build的路径。如果一直跟着我的步骤就按照上面的来就行。
- 在编译安装之前,需要打开刚刚下载的franka_ros包里面是不是还有一个文件夹,如果有就要删掉,不然容易编译不成功。
成功之后是这样的:
之后就可以考虑安装实时内核了。可以参考:Franka实时内核安装
关于如何将自己的电脑连接Franka机械臂,可以参考如何物理连接Franka机械臂