【3】ROS1 Pika 遥操作机械臂
1.1 硬件准备
① 完成Piper连接 Piper的的连接说明与示意图如下,更详细接线及 piper 注意事项请参照PIPER使用手册。
机械臂第一次上电需要按照以下A-G顺序进行操作:
● 1、先把A的J2连接口插上;
● 2、把航空插头B的CAN线接好;
● 3、把C的XT30接头对插好;
● 4、把D航空插头红点向下对插好;
● 5、把适配器E的插头插好;
● 6、检查确认适配器E的AC头插好上电,待电器面板指示灯闪烁绿色后;
● 7、把USB线插进电脑进行使用。
启动CAN口
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can1 type can bitrate 1000000
② 完成Pika Sense的连接
Pika Sense接口说明与连接示意图,参见 Pika 配置与基站部署 1.1/1.2/1.3。
1.2 软件准备
1.克隆代码下本地并将其放置到 pika_ros/src 下
cd ~/pika_ros/src
git clone https://github.com/agilexrobotics/PikaAnyArm.git
2.安装环境依赖
sudo apt update && sudo apt install ethtool
sudo apt update && sudo apt install can-utils
# 可选,以下是xarm机械臂驱动所需依赖
sudo apt install ros-noetic-combined-robot-hw ros-noetic-moveit*
3.编译代码
cd ~/pika_ros
catkin_make install -DCATKIN_WHITELIST_PACKAGES=""
#每次编译完代码后都需要给install目录赋权限
chmod +x -R install/
4.自行安装 miniconda 或 Anaconda
5.安装环境依赖
conda create -n pika python=3.9.18
conda activate pika
conda install pinocchio==3.2.0 casadi==3.6.7 -c conda-forge
pip3 install meshcat rospkg pyyaml piper-sdk opencv-python netifaces ur-rtde
1.3 开始遥操
1.3.1 单臂遥操Piper
1.机械臂使能 :将机械臂的can线接入电脑
cd ~/pika_ros/src/PikaAnyArm/piper/piper_ros
bash can_activate.sh can0 1000000

2.对pika进行校准。
3.开启遥操单Piper程序
3-1只使用pika sense,不使用pika gripper或使用piper原装夹爪
终端1:
roscore
终端2:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_single_sensor.bash
终端3:
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_piper teleop_rand_single_piper.launch
最后,双击sense夹爪以开启遥操作
3-2若将pika gripper安装于机械臂上,使用sense控制gripper,请先绑定1个sense和1个gripper
终端1:
roscore
终端2:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_sensor_gripper.bash
终端3:
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_piper teleop_rand_single_piper.launch
最后,双击sense夹爪以开启遥操作
1.3.2 双臂遥操Piper
1.机械臂使能
先将左机械臂的can线接入电脑
cd ~/pika_ros/src/PikaAnyArm/piper/piper_ros
bash find_all_can_port.sh
终端会出现左机械臂的端口号,接着将右机械臂的can线接入电脑
bash find_all_can_port.sh
终端会出现右机械臂的端口号
将这左右两个端口号复制到 can_config.sh 文件的 111 和 112 行
if [ "$EXPECTED_CAN_COUNT" -ne 1 ]; then
declare -A USB_PORTS
USB_PORTS["1-8.1:1.0"]="left_piper:1000000" #左机械臂
USB_PORTS["1-8.2:1.0"]="right_piper:1000000" #右机械臂
fi
保存完毕后,激活左右机械臂使能脚本
cd ~/pika_ros/src/PikaAnyArm/piper/piper_ros
bash can_config.sh
2.对pika进行校准
3.开启遥操双Piper程序
3-1若只使用pika sense,不使用pika gripper或使用piper原装夹爪。请绑定左右2个sense
终端1:
roscore
终端2:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_multi_sensor.bash
终端3:
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_piper teleop_rand_multi_piper.launch
最后,双击sense夹爪以开启遥操作。左手双击开启左臂遥操作,右手双击开启右臂遥操作
3-2 若将pika gripper安装于机械臂上,使用sense控制gripper。请绑定左右2个sense和左右2个gripper
终端1:
roscore
终端2:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_multi_sensor.bash sensor
终端3:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_multi_gripper.bash gripper sensor
终端4:
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_piper teleop_rand_multi_piper.launch
最后,双击sense夹爪以开启遥操作。左手双击开启左臂遥操作,右手双击开启右臂遥操作
1.3.3 遥操ur机械臂
配置 ur 机械臂:
1. 将机械臂网口接入电脑后,对网口进行配置:
我们使用的是 ur5 这款机械臂,在 ur 控制器里面将其 IP 设置为 192.168.1.100,子网掩码设置为 255.255.255.0,如下图所示
2.设置好机械臂末端坐标系
这里的末端坐标系一定要设置成 z 轴朝前,x 轴朝下,y 轴朝左
3.打开远程控制
4.开启遥操 ur 机械臂程序
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_ur teleop_ur12e.launch
最后,双击sense夹爪以开启遥操作
1.3.4 遥操ur机械臂 + gripper
1.设置好机械臂末端坐标系
在机械臂末端装了 pika gripper,需要将工具坐标系往 z 轴延伸 190 mm,对应上 pika gripper 夹爪中心。这里的末端坐标系一定要设置成 z 轴朝前,x 轴朝下,y 轴朝左
2.打开远程控制
3.开启遥操 ur 机械臂程序
请参照【2.6 设备绑定】绑定1个sense和1个gripper,之后,
终端 1:
roscore
终端 2:
conda deactivate
source ~/pika_ros/install/setup.bash
cd ~/pika_ros/scripts && bash start_sensor_gripper.bash
终端 3:
source ~/pika_ros/install/setup.bash
conda activate pika
roslaunch pika_remote_ur teleop_ur12e_whit_gripper.launch
最后,双击sense夹爪以开启遥操作
1.4 配置文件说明
在各自的 config 文件夹中:
1、piper_rand_params.yaml 中的:
● gripper_xyzrpy 指的是夹爪相对于机器人joint6的偏移量,单位是米和弧度。
2、xarm_params.yaml 中的:
● eff_position 指的是机械臂的执行器初始位置和方向,单位是毫米和弧度。
● pika_to_arm 指的是从pika夹爪中心坐标系到机械臂末端执行器坐标系的转换,单位是米和弧度。
3、ur12e_params.yaml 中的:
● pika_to_arm 指的是从pika夹爪中心坐标系到机械臂末端执行器坐标系的转换,单位是米和弧度。
● robot_ip 指的是 ur 机械臂的 IP。
更多推荐
所有评论(0)