为了避免这些碰撞,添加中间路径点,以确保机器人绕过障碍物。

intermediatePose1 = trvec2tform([-.3 -.2 .6])*axang2tform([0 1 0 -pi/4]); % Out and around the sphere
intermediatePose2 = trvec2tform([0.2,0.2,0.6])*axang2tform([1 0 0 pi]); % Come in from aboveintermediateConfig1 = ik("EndEffector_Link",intermediatePose1,weights,q(:,collidingIdx1));
intermediateConfig2 = ik("EndEffector_Link",intermediatePose2,weights,q(:,collidingIdx2));% Show the new intermediate poses
ax = exampleHelperVisualizeCollisionEnvironment(worldCollisionArray);
show(robot,intermediateConfig1,"Parent",ax,"PreservePlot",false);
show(robot,intermediateConfig2,"Parent",ax);

然后生成一个新的轨迹

[q,qd,qdd,t] = trapveltraj([homeConfiguration(robot),intermediateConfig1,startConfig,intermediateConfig2,endConfig],200,"EndTime",2);

验证生成的新轨迹是无碰撞的

%Initialize outputs
inCollision = false(length(q),1); % Check whether each pose is in collision
for i = 1:length(q)inCollision(i) = checkCollision(robot,q(:,i),worldCollisionArray,"IgnoreSelfCollision","on");
end
isTrajectoryInCollision = any(inCollision)

计算出的结果为:

isTrajectoryInCollision = logical0

可视化生成的轨迹:

% Plot the environment
ax2 = exampleHelperVisualizeCollisionEnvironment(worldCollisionArray);% Visualize the robot in its home configuration
show(robot,startConfig,"Parent",ax2);% Update the axis size
axis equal% Loop through the other positions
for i = 1:length(q)show(robot,q(:,i),"Parent",ax2,"PreservePlot",false);% Update the figure    drawnow
end

画出随时间变化的关节位置:

figure
plot(t,q)
xlabel("Time")
ylabel("Joint Position")

机器人碰撞检测——生成无碰撞轨迹相关推荐

  1. 机器人碰撞检测几何模型设计

    混沌无形 混沌系统是世界本质,无形之中存在规律.机器人智能化发展从线性过渡到混沌,本号将分享机器人全栈技术(感知.规划.控制:软件.机械.硬件等). 43篇原创内容 公众号 [文末提供原文PDF免费下 ...

  2. 基于野火F407骄阳开发板的苹果采摘机器人机械臂的采摘轨迹与夹持器的采摘动作的设计(1)

    基于野火F407骄阳开发板的苹果采摘机器人机械臂的采摘轨迹与夹持器的采摘动作的设计(1) 苹果采摘机器人 1.采摘流程与硬件设计 2.机械臂驱动以及采摘轨迹设计 2.1.台达A2电机驱动实现 2.2. ...

  3. Apollo6.0代码Lattice算法详解——Part5: 生成横纵向轨迹

    Apollo6.0代码Lattice算法详解--Part5: 生成横纵向轨迹 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代码部分 ...

  4. 自动驾驶—两轮差速机器人基于PID控制下轨迹跟踪

    机器人轨迹跟踪一般有两种方式,一是基于PID,二是基于MPC模型预测控制方法.本文主要介绍了PID控制,这里我只采用了航向角的控制,对速度没有控制,因为,我认为,小车只要能到达目标点即可,复杂的我后续 ...

  5. Python之——生成动态路由轨迹图

    一.scapy简介与安装 scapy( http://www.secdev.org/projects/scapy/)是一个强大的交互式数据包处理程序,它能够对数据包进行伪造或解包,包括发送数据包.包嗅 ...

  6. 小蛮机器人如何联网_国际相对论第三期——机器人与物联网的碰撞

    11月11日,国际相对论第三期在3号楼阅览室顺利举行.本期主题为"机器人与物联网的碰撞",主讲嘉宾是物联1882方群和物联1881胡文乐. 首先,方群向大家简单介绍了物联网与机器人 ...

  7. python矩形碰撞检测算法_简易夺旗游戏(python像素级碰撞检测之颜色碰撞)

    以下是部分代码预览: """ 简易夺旗游戏(python像素级碰撞检测之颜色碰撞) 按上下左右方向箭头操作小虫子去碰到小旗子,游戏就胜利了, 否则如果碰到黑色,游戏就失败 ...

  8. 四足机器人并联腿足端轨迹Matlab仿真

    四足机器人并联腿足端轨迹Matlab仿真 轨迹计算 轨迹是分成两部分:摆线方程+水平线段 首先,设置大腿关节轴心坐标为(0,0),根据机械设计的大腿小腿长度设置参数.此处设置大腿 l1=100mm,小 ...

  9. 按要求自动生成无向/有向图(基于C++实现)

    按照要求自动生成无向/有向图(基于C++实现) 最小连通子图生成算法 程序的思路和伪代码 主函数代码 程序运行结果展示 本文内容是按照图的类型(随机有向图 无向连通图.节点个数N.边个数M.以及边的权 ...

最新文章

  1. 彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
  2. 读“基于深度学习的图像识别技术研究综述”有感
  3. Android webview加载pdf实验成功
  4. 【面试招聘】去不了大厂实习,小厂实习去吗?
  5. golang goroutine协程概念及入门:轻量级线程(或用户态线程)
  6. VTK:Utilities之3DArray
  7. Kotlin与Java之争
  8. Js获取短信验证码前段效果
  9. SQL server 2005安装问题汇总
  10. 万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题.....
  11. 《设计模式详解》行为型模式 - 模板方法模式
  12. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一2.8  黄金分割的三分法构图...
  13. 用一个时钟在FPGA中计算直方图
  14. NOIP2016换教室 BZOJ 4720
  15. 广数系统加工中心编程_数控铣床与数控加工中心操作与编程
  16. *明确插件的功效*千千静听听音效插件使用介绍及相关下载
  17. Android IPC —— AIDL的原理
  18. Typora保留文本格式
  19. 一文带你搞懂Python中的文件操作
  20. Solidwork仿真总结(Motion,Xpress、Simulation,Flow Simulaiton)

热门文章

  1. vue 仿写微信公众号自定义菜单
  2. 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
  3. 7-2 输出数组元素分数 20
  4. CSP-201609-3-炉石传说
  5. NOI / 2.1基本算法之枚举 1809:两倍
  6. 每日英语好文翻译(11)
  7. UE4 HUD相关的笔记
  8. Android 全局字体设置
  9. (三)JMockit API:@Mocked -基础篇
  10. 汇编:动态画出一棵七彩圣诞树