拿到的kinova机械臂为6个关节,JACO2 6自由度机械臂是加拿大KINOVA公司的一款产品,设计非常的精简紧凑,移动的精度很高,能在Windows和Linux下驱动,我想拿它验证一些控制算法,以及配合计算机视觉完成一些目标识别和抓取的工作。
一开始的工作当然是先驱动机械臂,以下是在Ubuntu14.04系统下完成的。
安装一个叫kinova_ws的工作空间
mkdir -p kinova_ws/src
cd ~/kinova_ws/src
git clone https://github.com/Kinovarobotics/kinova-ros.git kinova-ros
cd ~/catkin_ws
catkin_make
给kinova上电,将kinova的USB接口连到电脑上
绑定端口
sudo cp ~/kinova_ws/src/kinova-ros/kinova_driver/udev/10-kinova-arm.rules /etc/udev/rules.d/
cd切换到kinova_bringup/launch文件夹下,执行
roslaunch kinova_bringup kinova_robot.launch
这时就启动了kinova。
重新打开一个终端,进入/kinova_ws/src/kinova-ros/kinova_demo/nodes/kinova_demo文件夹下;
这个文件夹中有很多测试指令,输入ls,可以看到下面的Python代码文件:
输入:
rosrun kinova_demo joints_action_client.py -v -r j2n6s300 degree -- 90 0 0 0 0 0
顾名思义,joints_action_client.py,是测试关节动作的。
可以观察到,机械臂的第一个关节,也就是底座关节旋转了,然后停下,单位是角度,因此是旋转了90°。
-v 代表输出显示所有关节的当前角度值
-r代表按照关节旋转后面的数值变化,单位是角度,改变相应的角度,正数就增加,负数就减小。
j2n6s300是用到的kinova机械臂型号,这款kinova机械臂有好几种,我用到这款机械臂是这种。
kinova为了支持不同的产品,利用8个字节的字符串kinova_robotType来配置参数,参数范围[{j|m|r|c}{1|2}{s|n}{4|6|7}{s|a}{2|3}{0}{0}]
{j|m|r|c}
代表产品 jaco, mico, roco and customized
{1|2}
版本号
{s|n} wrist type 手腕类型
{4|6|7} 几自由度的机械臂
{s|a} 机器人模型
{2|3} 手指的个数
最后两位还没有被定义
手指关节控制:
li@li:~/kinova_ws/src/kinova-ros/kinova_demo/nodes/kinova_demo$ rosrun kinova_demo fingers_action_client.py j2n6s300 percent -- 100 100 100
可以看到关节动作
其余的指令类似,可以一一进行尝试。
用rostopic指令来查看机械臂状态
li@li:~/kinova_ws/src/kinova-ros/kinova_demo/nodes/kinova_demo$ $ rostopic echoc-c /j2n6s300river/out/joint_state
可以打印出:
重新打开一个终端:
li@li:~/kinova_ws/src/kinova-ros/kinova_demo/nodes/kinova_demo$ rosrun rviz rviz
出现可视化界面,add一个RobotModel
然后把Fixed Frame后面选项改为world。
就出现了机械臂实时画面,如下:
参考:https://github.com/Kinovarobotics/kinova-ros#installation