gazebo使用
(1)Gazebo是一个机器人仿真工具和模拟器,也是一个独立的开源机器人仿真平台,他的功能很强大,优点是对ROS支持的很好,首先启动安装好的ROS环境系统,由于已经在上一篇文章中介绍了如何安装Gazebo,这里启动终端,输入下面的指令,运行Gazebo测试。
roslaunch gazebo_ros empty_world.launc
(2)如果发现启动界面加载过程中闪退,可能是由于在虚拟机中使用时开启了图形加速,在终端中输入如下指令关闭硬件加速。
echo " export SVGA_VGPU10=0" >>~/.bashr
source ~/.bashr
(3)然后关闭虚拟机的3D图形加速,需要关闭虚拟机中的Ubuntu系统,编辑虚拟机设置,选择显示器,取消加速3D图形选项,如下图所示,然后重新启动虚拟机一般就可以解决。
(4)如果发现启动Gazebo过程中,在终端出现如下红色报错信息。
(5)需要修改.ignition/fuel/config.yaml文件,将文件中的url: https://api.ignitionfuel.org改为url: https://api.ignitionrobotics.org,运行如下指令打开文件进行修改,再次运行Gazebo即可正常使用。
sudo gedit ~/.ignition/fuel/config.yam
(6)由于Gazebo默认是使用某一个模型时从互联网下载模型,如果要脱机使用模型库,是需要提前下载好的,可以在Gazebo模型库下载,将下载好的压缩包复制到~/.gazebo/models下并解压(注意下载的模型文件要在models下,而不是在解压后的文件夹下),再次打开Gazebo便可以加载我们下载好的模型了,如下图所示,在“insert”面板中选择模型导入,查看效果。
仿真遨博机械臂
(1)为了方便各个终端的使用,将上一篇中建立的工作空间环境变量增加到.bashrc文件中,输入如下指令即可。
echo "source ~/aubo_ws/devel/setup.bash">> ~/.bashrc
source ~/.bashrc
(2)首先在终端中运行以下两条指令,分别启动Moveit功能包和Gazebo仿真,需要说明的是,这两条指令需要运行在不同的终端(在仿真时,IP地址需要是127.0.0.1)。
roslaunch aubo_e5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
roslaunch aubo_gazebo aubo_e5_gazebo_control.launc
(3)在运行第二条指令时,会报出如下错误,这是ROS会要求在配置文件中需要配置PID参数,在系统耦合中,找到合适的PID是比较困难的,如果仿真环境中不指定任何PID参数,机器人仍可以正常工作,切记不可输入错误的值,反而会导致更多的问题,所以一般在ROS开发中,这部分的错误是可以忽略的。
图片
(4)之后回到rviz界面,试着拖动轨迹球,并点击【Plan & Execute】按钮,即可看到规划执行效果,此时控制信号将同时输入到Gazebo中,运动同步发生,达到联合仿真的目的。无论仿真环境多么符合现实,也需要在实际的机械臂中进行测试,下面看一下如何控制真实的机器人。
ROS控制真实机器人
网络配置
(1)使用网线连接AUBO-E5真实机械臂的控制柜与电脑,***好不要使用路由器、交换机等设备进行转接,因为ROS需要将控制的轨迹实时发送给机械臂,如果网络不稳定,会造成机器人运动卡顿等情况。
(2)打开示教器,点击【设置】-【网络】进入网络配置界面,点击【网卡】下拉菜单,选择默认网卡以示教器显示为准,IP地址输入【192.168.1.40】(可设置为其他可用IP,必须要和网关设置的网段保持一致),掩码设置为【255.255.255.0】,网关设置为【192.168.1.1】,点击【保存】,重启机械臂完成网络配置。
(3)设置电脑主机的IP地址与ROS虚拟机中的IP地址,保证和真实机械臂处于同一网段,然后在真实机械臂的网络设置界面,使用ping功能测试ROS虚拟机的IP地址,要求延迟越低越好,***高也要低于1ms,并且较为稳定,如下图所示。
真实机器人控制
(1)在ROS环境的终端中,输入如下指令,这里的IP地址需要填入真实机械臂的IP地址。
roslaunch aubo_e5_moveit_config moveit_planning_execution.launch robot_ip:=192.168.1.40
(2)启动完成后在Rviz界面会观察到机械臂姿态和真实机械臂姿态保持一致。
(3)在Rviz中拖动机械臂上方的蓝色小球,或者通过设置goal state到随机位置,即可设置机械臂的目标位置,请设置时尽可能考虑真实机器人周围物理环境,防止碰撞,如图所示,其中黄色机械臂为目标位姿的机械臂,与真实机械臂颜色一致的是机械臂真实位姿。
(4)点击plan按钮,如图所示,可以查看机械臂从现在真实位姿到目标位姿的路径运动过程。
(5)确保控制器在实验人员的附近,可以随时拍到机器人的急停旋钮,防止对周围设备造成意外损失,点击【Excute】按钮,将上述规划的路径发送到真实机械臂,可以看到真实机械臂按照规划路径进行运动,同时在Moveit中也实时显示真实机械臂的实时位置。
(6)当机械臂运动完成后,Rviz软件中的目标位姿和真实位姿重合。可观察到真实机械臂***终的位置和设置的目标位姿相同。
(7)在机械臂运动过程中,可以点击Rviz中的Stop按钮,机器人会平滑的停止下来,点击停止到真正停止下来的一小段轨迹的规划过程我们已经在aubo_driver中提供,后续的文章中会介绍到。
真实机器人运动速度调节
(1)在终端中输入如下指令,打开机械臂关节速度参数文件。
roscd aubo_e5_moveit_config/
gedit config/joint_limits.yaml
(2)在这个文件中,可修改foreArm_joint、shoulder_joint、upperArm_joint、wrist1_joint、wrist2_joint、wrist3_joint六个关节的***大速度和***大加速度的限制,默认的值在一般情况下无需修改,如果有更高速度和加速需求,可修改这个参数文件,***好每次适当增加速度,防止速度超出预期造成不必要的损失,特别是在调试开发阶段,同时也请放心,在ROS控制下,机械臂的碰撞停止等安全功能依然有效。
(3)每个关节有四个参数,分别是has_velocity_limits、max_velocity、has_acceleration_limits、max_acceleration,功能分别如下:
has_velocity_limits代表速度限制是否生效,true代表生效,false代表不生效,生效时才能控制***大速度;
max_velocity***大速度限制值,单位为弧度/s;
has_acceleration_limits代表加速度限制是否生效,true代表生效,false代表不生效,生效时才能控制***大加速度;
max_acceleration***大加速度限制值,单位为弧度/s^2。
更多资讯,协作机器人