Franka Emika Panda 的python控制包Frankapy的安装使用

本文详细指导了如何在两台电脑上安装protobuf、Franka-interface和Frankapy,包括网络配置、SSH通信设置,以及使用方法。重点在于自动化部署步骤和关键配置细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

********Install ProtoBuf
************************

终端输入 nproc 查看核心数,以下的N为核心数
sudo apt-get install autoconf automake libtool curl make g++ unzip
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protobuf-all-3.11.4.zip
unzip protobuf-all-3.11.4.zip
cd protobuf-3.11.4
./configure
make -jN
make check -jN
sudo make install
sudo ldconfig

 

********Install Franka-interface
********************************

git clone --recurse-submodules https://github.com/iamlab-cmu/franka-interface.git
cd franka-interface
以下步骤均在franka-interface目录下进行
如果Robot系统软件版本firmware is 3.x(进桌面软件查看版本号)
    bash ./bash_scripts/clone_libfranka.sh 3
或者如果版本号是4.x,那么
    bash ./bash_scripts/clone_libfranka.sh 4

bash ./bash_scripts/make_libfranka.sh
bash ./bash_scripts/make_franka_interface.sh

确保source /opt/ros/kinetic/setup.bash` or `source /opt/ros/melodic/setup.bash` into your `~/.bashrc` file.
安装catkin-tools: 
    pip install catkin-tools
   或者 
    sudo apt-get install python-catkin-tools
    
bash ./bash_scripts/make_catkin.sh
sudo apt install ros-melodic-libfranka ros-melodic-franka-ros #kinect版本替换melodic

 

********Install Frankapy
********************************

git clone --recurse-submodules https://github.com/iamlab-cmu/frankapy.git 

以下步骤在frankapy目录下进行
pip3 install -e .  
上面这步如果报错,则需要安装LLVM,llvmlite和numba,在python3中
    安装llvm llvmlite numba
    sudo apt install llvm-10
    export LLVM_CONFIG=/usr/bin/llvm-config-10
    pip3 install llvmlite==0.36.0

    升级pip
    python3 -m pip install --upgrade pip
    安装numba
    pip3 install numba --no-cache-dir

 

numba安装结束后再运行
pip3 install -e .
bash ./bash_scripts/make_catkin.sh
bash ./bash_scripts/make_proto.sh

To make the protobufs use the following script (**you don't need to do this if you haven't modified the proto messages**):
    ```bash
   ./bash_scripts/make_proto.sh
   
以上安装过程均需在两台电脑上安装(也可以一台配置Franka-interface和ProtoBuf,另一台配置frankapy和ProtoBuf)

 

********网络配置
********************************   

Franka的Ip为172.16.0.2(请勿修改)
Control PC(实时内核电脑,装有franka-interface,用于控制panda)
    ipv4方式:手动
    地址: 172.16.0.3 
    子关掩码:25(随便填)
    点击应用
WorkStation (Frankapy运行电脑,也用于远程启动franka机器人)
    ipv4方式:手动
    地址: 172.16.0.1 
    子关掩码:25(随便填)
    点击应用
在Control PC上 ping 172.16.0.1或者在Workstation上 ping 172.16.0.3
出现如下即为局域网网络配置成功
PING 172.16.0.9 (172.16.0.9) 56(84) bytes of data.
64 bytes from 172.16.0.9: icmp_seq=1 ttl=64 time=0.789 ms
64 bytes from 172.16.0.9: icmp_seq=2 ttl=64 time=0.546 ms
64 bytes from 172.16.0.9: icmp_seq=3 ttl=64 time=0.889 ms

 

********SSH通信
********************************   

两台电脑都安装ssh
sudo apt install openssh-server

在Control PC上编辑hosts
sudo gedit /etc/hosts

将Workstation的ip和计算机名字添加到hosts然后保存
172.16.0.1 Workstation_PC_名字

同理在Workstation上编辑hosts
sudo gedit /etc/hosts

将Control PC的ip和计算机名字添加到hosts然后保存
172.16.0.3 Control PC的名字

配置成功后在Workstation执行命令ssh 'ControlPCUserName@ControlPCName,比如
ssh userName@ControlPCName
然后对方电脑输入密码
控制成功的标志是当前终端的用户和电脑名称变成了对方的

更改start_control_pc.sh 内部参数
control_pc_uname:实时内核电脑名称(安装了franka-interface)
control_pc_use_password:

添加SSH key
在Workstation上执行如下命令,将email替换成自己的邮箱
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
   [Press enter]
   [Press enter]
   [Press enter]
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

这个时候会在home目录的.ssh文件夹下看到一个文件 id_rsa.pub
然后在COntrol PC的.ssh文件夹新建一个名为authorized_keys的文件
sudo gedit ./ssh/authorized_keys
将该id_rsa.pub文件内容复制到上面的新建文件里保存
然后 
ssh userName@ControlPCName
如果不需要密码即切换到Control PC,则配置成功

 

 

********使用方法
********************************   

除了-i 参数必须主动输入以外,其他的参数都可以在bash_scripts/start_control_pc.sh文件内修改

其中:
    -h show this help text
    -i IP address for the control PC.
    -u Username on control PC. (default iam-lab)
    -p Control PC password
    -d Path to franka_interface on control PC (default ~/Documents/franka-interface)
    -r Robot number (default 1)
    -s Start franka-interface on control PC (0 / 1 (default))
    -g Robot has gripper (0 / 1 (default))
    -l Log at 1kHz on franka interface (0 (default) / 1)
    -e Stop franka interface when an error has occurred (0 (default) / 1)
    
    ./start_control_pc.sh -i iam-space
    ./start_control_pc.sh -i iam-space -u iam-lab -p 12345678 -d ~/Documents/franka-interface -r 1 -s 0
    "

control_pc_uname="tesla"
control_pc_use_password=0
control_pc_password="xxxx"
control_pc_franka_interface_path="~/franka-interface"
start_franka_interface=1
robot_number=1
with_gripper=1
log_on_franka_interface=1
stop_on_error=0

 

因为上述ssh通信没有设置任何密码,因此这里的control_pc_use_password=0

到fWorkstation电脑上,启动ControlPC的驱动程序和ROS程序

cd frankapy
bash ./bash_scripts/start_control_pc.sh -i 【control PC IP地址】

source catkin_ws/devel/setup.bash

python3 xxx.py

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值