需要的配置
1.一台安装了ubuntu 16.04 系统的笔记本电脑
2.Franka Emika Panda 机械臂
3.Franka Emika Panda 机械臂环境配置
机械臂环境配置请看上一篇博客:Franka Emika Panda 机械臂环境配置
如果这些都准备好了,那就进行下一步吧!
机械臂的环境是配置好了,但是我们怎么能在rviz里看到franka机械臂的模型呢?
franka仿真
panda_moveit_config下载及编译
在配置好环境之后,是不是能够在rviz规划机械臂呢?
尝试在终端输入命令:roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
在看到tab键能够补全panda_moveit_config
时,还是挺高兴的,没想到报出了很多错误。
经过一番研究,这里的panda_moveit_config
是在/opt/ros/kinetic/share/panda_moveit_config
路径下的包,可能是之前下载机器人模型的遗留。
后来找了教程来看,决定在home目录重新编译moveit
的包。
首先,先把ros软件包更新一下。
rosdep update
sudo apt-get update
sudo apt-get dist-upgrade
因为之前已经安装了catkin和moveit,这里就不需要再装了。如果没有安装:
sudo apt-get install ros-kinetic-catkin python-catkin-tools
sudo apt install ros-kinetic-moveit
回到home目录
mkdir -p ~/ws_moveit/src
cd ~/ws_moveit/src
git clone -b kinetic-devel https://github.com/ros-planning/moveit_tutorials.git
git clone -b kinetic-devel https://github.com/ros-planning/panda_moveit_config.git
这里git clone 可能会失败,建议换个好一点的网络,多git clone几次。
配置环境,设置自动source。
cd ~/ws_moveit/src
rosdep install -y --from-paths . --ignore-src --rosdistro kinetic
cd ~/ws_moveit
catkin config --extend /opt/ros/kinetic
catkin build
source ~/ws_moveit/devel/setup.bash
echo 'source ~/ws_moveit/devel/setup.bash' >> ~/.bashrc
在rodep的时候出现了Cannot locate rosdep definition for [moveit_visual_tools]
只需要sudo apt install ros-kinetic-moveit-visual-tools
(缺什么安装什么)
rviz机械臂仿真
终于来到这一步了。启动rviz,让我们看看机械臂吧。
roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
但是,万万没想到,rviz里啥也没有。
点击Add
,从moveit_ros_visualization
文件夹中,选择"Motion Planning
“作为显示类型。按"Ok”。如图所示:
这里,我们发现规划轨迹的球呢?
所以还需要设置一下:
Global Option
里的Fixed Frame
设置为/panda_link0
;
Motion Planning
里的Robot Description
设置为robot_description
;
Motion Planning
里的Planning Scene Topic
设置为/planning_scene
;
Planning Request
里的Planning Group
设置为panda_arm
;
Planned Path
里的Trajectory Topic
设置为/move_group/display_planned_path
;
这个时候,你就可以尽情拖动你的机械臂了!
如果你还想进一步设置的话,可以在Planned Path、Scene Robot 、Planning Request中设置碰撞显示等,这里就不赘述了。
配置静态IP
没有想到写了那么久才写到正文,真是令人头大。
要连接真实机器人,首先当然得配置好电脑得静态ip,当然一根优秀的网线也必不可少。
首先,编辑连接。
打开之后,点击有线连接,点击编辑,选择IPv4设置。接下来的设置和截图一样就行了。
因为机器人的ip是172.16.0.2,此处笔记本的ip设置为172.16.0.1即可。设置完了,别忘记点保存。
设置静态ip需要重启电脑,打开终端,输入reboot
。重启电脑,打开终端,输入ifconfig
,查看电脑ip是否已经更改为172.16.0.1。
连接机器人
franka机器人底座和控制柜都可以插网线,但是为了安全起见,还是要插在控制柜上。
插上电源,给机器人供电,打开控制柜的电源,机器人底座黄灯闪烁。这里因为之前做实验的时候没有拍照,就不附图了,大家可以在网上找一下图片,比如显扬科技的文章。
开始实验之前,别忘了把外部激活设备拿在手里,实验重要,安全更重要啊!
好了,闲话也不多说了。
打开火狐浏览器,网址上输入172.16.0.2,进入Desk界面,对机械臂解锁。这个时候底座的灯会变成蓝色。
打开终端,ping 172.16.0.2
,能够通讯,说明笔记本已经和机械臂连接上了。
libfranka/build/examples
里有一些编译好的示例,大家可以多多尝试一下。
这里作者君又发现了一个问题,那就是git clone 下载的franka_ros
似乎不是kinetic版。作者不得不重新下载了kinetic版本的franka_ros
并重新编译。这里还要提醒一下,编译完后,一定要在终端source一下,不然很可能像作者君一样,tab键只能补全franka_description
。
先进入libfranka/build/examples
,
./communication_test 172.16.0.2
这里是测试机器人与笔记本的数据传输情况,这里10000个数据作者君能接受9917个,还算不错。
这里更改了一下demo.launch的代码,在终端运行:
roslaunch panda_moveit_config demo.launch robot_ip:=172.16.0.2
可是,模型虽然可以plan和execute,但是机械臂并没有发生相应运动。所以还需要进一步的学习。
这里提供一个网友的控制机械臂的命令:
roslaunch panda_moveit_config panda_control_moveit_rviz.launch robot_ip:=172.16.0.2 load_gripper:=false
这里提供传送门:【ROS】ROS驱动UR和FRANKA机器人