用UR5机器人开发实际工业加工的项目,Sim2Real的基础项目搭建
需要开发一个实际操作工业机器人的程序,并且在实际机器人测试计通过。
业务场景为:碳纤维模具的表面打磨
工具为:
所需要的功能点:
UR5 演示:
Gazebo 演示:
ROS 核心概念文档:http://wiki.ros.org/ROS/Tutorials
因此UR这样的硬件开发商接入ROS只需根据ROS的消息规则匹配自己软件的输入输出即可了
Universal robot 模拟器和机器人驱动: https://github.com/UniversalRobots/Universal_Robots_ROS_Driver
逆运动学是指指定目标和机器人当前状态,这个库会根据机器人形状和环境等"constraint"限制条件规划一个运行路径, Moveit默认使用的是OMPL这个项目: https://ompl.kavrakilab.org/
求解过程是数值方法求解,这部分整体综述我是看的 Tedrake 这个老师的视频 https://www.youtube.com/channel/UChfUOAhz7ynELF-s_1LPpWg
核心概念:https://classic.gazebosim.org/tutorials
其中和ROS交互的重点部分:https://classic.gazebosim.org/tutorials?cat=connect_ros
几何形状求凸包:
这是3d mesh求法向量(TODO没有求3d凸包,后面会补上), 其中红色为mesh三角的中心点 蓝色点为垂直法相量
2d维凸包实现:https://github.com/mrzhuzhe/vanilla/tree/master/geometry
1d凸包实现:https://github.com/mrzhuzhe/Patrick/tree/main/geo/contour
效果如下:
可维护性和健壮性
ROS和moveit方面:
业务方面:
实验设计:
实验一:实体机器人运行沿着模具法相量等高线运行一圈并复位, 要求跟gazebo中模拟尽可能一致,机器人执行器上要有一个摄像头
实验一视频:
实验一结论:基本符合预期,摄像头gazebo中模拟摄像头和实际摄像头看到的画面基本一致
未解决问题:
思考:
其实最主要的问题就是问题1
实际上接触操作都会因为机器人本身的误差和接触摩擦反冲造成很大的误差 需要 “Impediance control” Wiki pedia来主动“阻抗”外部环境摩擦和反冲的干扰
这个需要自定义ros_controler 和 KDL
其他问题: 如问题4 涉及大规模几何计算,会另外单独拆分出来作为“HPC”专项单独跟进
下一步计划:
围绕问题1跟进,做一套ros中gazebo的力控阻抗控制模拟