ROS探索总结(五十四)—— ROS机器人开发案例(附ppt)
8月1日晚,古月君在深蓝学院的的公开课平台,和大家一起聊了下ROS机器人开发的相关案例,主要结合自身机器人开发经验,从机器人系统组成、移动机器人开发案例和机械臂开发案例等三个方面,介绍了古月君是如何将ROS应用于机器人项目开发的。
公开课的全部内容可以免费回看,有兴趣的小伙伴可以访问课程网站:
http://www.shenlanxueyuan.com/open/course/13
另外古月君主讲的《机器人操作系统ROS理论与实践》第二期课程也在火热进行中,同样可以在深蓝学院的机器人课程中找到:
http://www.shenlanxueyuan.com/course/92
以下是8月1日晚公开课的ppt内容,供各位参考。
用微信 OR 支付宝 扫描二维码
为本文作者 打个赏


李瑞锋
古月老师你好:请问这种灵巧手哪里可以买到;得多少钱?
Wust
古月老师你好,之前看你的Moveit视频有一段没看懂,视频里讲到plan多段轨迹,不如说从A点到B点,再从B点到C点,但是我看plan不是都是从机械臂当前位置开始plan的吗,比如说机械臂当前位置是A点,我可以plan A点到B点,但是如何plan B点到C点呢?
古月
@Wust 按照你的描述,moveit可以规划B到C,API设置起点即可,规划不代表执行,执行的时候就会因为起点不符报错了
Wust
@古月 那从B到C也是用的set_target_pose这个函数吗?规划A到B,再规划从B到C,然后去掉中间速度为0的点那从A到C就是一段连续的轨迹是这样么?
古月
@Wust 是的,接到一起之后要重新再用addTimeParameter计算一次速度和加速度,这样中间就不会有突然的减速了
烟消云散
古月老师你好,能不能讲一下您公开课里提到的约束条件里的一些参数,看得不是很明白,比如方向约束里的orientation和absolute_x_axis_tolerance,这些都是指定一个具体的值,但是约束不应该是有上下限的吗?比如从多少到多少。这些值代表什么含义呢?
烟消云散
@烟消云散 因为我发现我设置orientation四元数的四个值以后,机械臂末端就被约束成只能往一个方向运动,即我设置orientation的值的那个方向,那假设我想把机械臂末端约束在一定的方向区间之内(即有上下限,比如可以绕x轴,y轴旋转,但是不能绕z轴旋转),而不只是某一个方向应该怎么做呢?
古月
@烟消云散 在某个方向上的absolute_x_axis_tolerance设置的大一点就可以允许在该方向上旋转了
古月
@烟消云散 orientation是约束值,absolute_x_axis_tolerance是允许在约束值周围的上下限
古月
@烟消云散 orientation是约束值,absolute_x_axis_tolerance是允许在约束值周围的上下限
烟消云散
@古月 谢谢古月老师,还想请问一下position约束的几个参数,target_point_offset,constraint_region这些表示什么含义呢?
古月
@烟消云散 请在wiki上查找具体说明
初学者
老师,您好!我最近在做一个四轮驱动的ros自主导航小车,但是我在网上找的一些资料都是两轮驱动的,所以,麻烦问一下老师,这两种方式在ros层还有stm32底层控制方面有哪些区别?能麻烦老师推荐一下相关资料吗?
古月
@初学者 淘宝里有很多小车是四轮的,四轮差速驱动的数学模型网上也找的到,ros功能方面都是一样的,区别只是在硬件驱动方面
邹
古月老师你好,我是一个ROS和MoveIt的初学者,请问一下学习ROS和MoveIt好就业吗?有哪些就业方向?
古月
@邹 你好,这个不好一言蔽之,ROS只是一个机器人开发工具,重要的还是确定自己的研究方向,比如视觉、slam、运动控制等。配合ROS多进行机器人项目开发,同时需要夯实理论基础,企业更看重理论与实践的结合。
dylan
请问有课程的课后作业答案吗?
古月
@dylan 什么课程?
陈伟
古月大神您好!请教您一个问题:ROS kinetic下如何写一个基本的机械臂运动规划算法,如PRM或者RRT?
我刚入门ros,其强大之处确实让人称赞,但同时也让我有很多细节上的迷茫,我刚学机械臂运动规划,看的文献中有很多算法,十分希望能够复现、对比、应用实处,但ros moveit集成了ompl,对实现都进行了封装,那么以基本的PRM或者RRT算法为例,如何用ROS进行机械臂的C-space构建、碰撞检测、运动控制?在宾夕法尼亚大学Coursera运动规划公开课中,这样的每一步都用来作为实验部分引领初学者入门,但ROS中对这些的一步到位,确实让我有些无从下手,但我查了很多都没能有答案,ros answer上有人指点我说这个问题涉及太多,可我目前也不知道具体该如何细化,也有可能是我某些地方没想明白,小弟还在知乎上也提了同样的问题(https://www.zhihu.com/question/293386019),暂时还没有回答,如果古月大神您能抽空的话,十分希望能够指点一下,在此先大榭了。
古月
@陈伟 可以参考下目前ompl的集成方式,然后自己写一个功能算法替换掉已有的方法
陈伟
@古月 非常感谢!小弟在ros answer上找到了类似的问题,然后跟着步骤把源码安装了MoveIt和ompl,加入了一个planner,我把步骤也记录在了这个知乎(https://www.zhihu.com/question/293386019)问答中,希望古月老师有空的可以看一看。今天教师节,小弟在此祝愿古月老师事业顺利!心想事成!把中国机器人教育事业越办越好!
古月
@陈伟 好的,谢谢
烟消云散
请教古月老师:
基于ROS能做双臂协作吗?即双臂机器人左臂和右臂的协调控制,两个臂一起做一件事(倒水这种不算,因为本质上还是两个臂单独运动,两个臂并没有协作)比如说双臂协作搬运物体,我看过一些文献,现在有不少双臂协作的方法,但是没看到基于ROS和moveit的,他们的代码也不开源。
古月
@烟消云散 是的,就我所知,目前在ROS里还没有双臂协作相关的功能包
探索发现
请教古月大神:
正在考虑基于Zynq实现机器人控制系统的方案,但我听说Zynq的功耗控制一直做得不太好,尤其是在双ARM核都工作的情况下(例如您在“新一代片上驱控一体系统”中述及的一个ARM核跑linux系统、另一个ARM核执行控制+驱动算法的模式),功耗非常大,请问在您实现过的、了解到的系统中是否也是这样?
如果是这样,利用PPT中的FPGA“算法加速”模块分担ARM核的运算任务,对降低功耗是否有明显的效果?
如果效果不够明显,是否影响到了系统的整体性能(例如,因为发热而导致系统不稳定)?最终方案中是如何解决的?
进而,根据您了解到的情况,在您或其他同行的系统中,新一代Zynq UltraScale+芯片是否在功耗控制方面有了比较明显的进步?
古月
@探索发现 zynq我们用了很多年了,并不是用于嵌入式设备,相比机器人系统常用的工控机,功耗低很多,并没有成为一个瓶颈
探索发现
@古月 非常感谢!