ROS探索总结(七十一)—— 古月私房课 | ROS:机器人开发的神兵利器

  • 内容
  • 评论
  • 相关

~欢迎关注~

微信公众号:古月居

新浪微博:古月春旭

知乎专栏:古月居

原文链接:古月私房课 | ROS——机器人开发的神兵利器

 

古月居联合深蓝学院推出的“古月私房课”第一弹——《ROS机械臂开发:从入门到实战》已经上线啦,欢迎各位小伙伴前来围观,以下是第12讲《ROS——机器人开发的神兵利器》的内容精要。

大家好,这里是《ROS机械臂开发:从入门到实战》的第12讲——ROS:机器人开发的神兵利器,我是主讲人胡春旭。

幻灯片1

这是我们系列课程的最后一讲,我们来回顾下课程内容并整理下阶段的学习资料。

幻灯片2

在之前的11讲课程中,我们一起学习了ROS机械臂开发中的关键技术。

幻灯片3

课程分成三大篇章,从ROS基础原理到机械臂开发中的关键功能实践,再到综合应用的实现方法,希望大家能够熟悉整体流程,具体技术点还需要在实际开发中不断磨练。

幻灯片4

以下是对各讲关键内容的整理,大家可以再回顾一下。

幻灯片5

幻灯片6

幻灯片7

幻灯片8

幻灯片9

幻灯片10

幻灯片11

幻灯片12

幻灯片13

幻灯片14

学习了这些知识后,我们该如何进一步提高自己的开发能力,关键就是“实践”。

幻灯片15

如果你身边有可以使用的机器人,那一定不要放过上手操作的机会,这样才能加深对传感器、执行器原理和应用的理解。

幻灯片16

如果没有条件,也可以为梦想投入一些资金,或者搭建ROS仿真环境,一样可以把ROS系统跑起来,以下是ROS机械臂相关的部分资源,可以作为参考资料。

幻灯片17

此外,再给大家整理一些学习资料。

幻灯片18

机器人学是研究机器人的基础理论,大家需要熟悉其中的关键概念,可以参考以下视频学习。

幻灯片19

这里还有一些偏向实际操作的视频课程。

幻灯片20

关于ROS的学习,大家也可以参考以下网站和书籍:

幻灯片21

幻灯片22

ROS是重要的开发工具,深入的机器人研究依然离不开这些经典的理论著作。

幻灯片23

不管你看了多少书、学习了多少视频,在实际开发中还是会遇到各种各样的问题,这个时候你一定离不开以下网站的帮助。

幻灯片24

ROS并不是万能的,很多功能也存在缺陷,大家一定要正确认识ROS,充分发挥ROS的强大之处,让它成为你在机器人开发中的神兵利器。

幻灯片25

ROS是一个开源系统,开源的核心精神就是分享,古月居也一直秉承分享精神,努力为大家提供优质的学习资源,我们也鼓励大家一起加入分享的队伍,这不仅是对别人的帮助,也是对自己的成长。

幻灯片26

最后,还是那句话:怕什么真理无穷,进一寸有一寸的欢喜。祝愿大家在机器人开发的道路上克服艰难,抵达期望的终点。

幻灯片27

更多精彩,也欢迎大家继续关注古月居微信公众号和Bilibili帐号,后续我们将推出更多机器人相关的学习课程。

幻灯片28

 

更多内容欢迎关注:

微信公众号:古月居 (guyue_home)

新浪微博:古月春旭

知乎专栏:古月居

微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixinpay_weixin

评论

2条评论
  1. Gravatar 头像

    小李 回复

    古老师,请问一下,为什么我用了group.shift_pose_target()函数,移动之后和目标位置有偏差?

  2. Gravatar 头像

    何绪晖 回复

    胡老师,你好,我之前通过solidwork到urdf文件,并且已经配置了moveit文件,也已经编译过工作空间,编译过程中没有问题出现,但是在运行demo.launch文件的时候出现了以下的报错
    ... logging to /home/simon/.ros/log/9d51e160-6f06-11e9-998b-78929c729af2/roslaunch-simon-2135.log
    Checking log directory for disk usage. This may take awhile.
    Press Ctrl-C to interrupt
    Done checking log file disk usage. Usage is <1GB.

    Traceback (most recent call last):
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 306, in main
    p.start()
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
    self._start_infrastructure()
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 217, in _start_infrastructure
    self._load_config()
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 132, in _load_config
    roslaunch_strs=self.roslaunch_strs, verbose=self.verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/config.py", line 451, in load_config_default
    loader.load(f, config, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 749, in load
    self._load_launch(launch, ros_config, is_core=core, filename=filename, argv=argv, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 721, in _load_launch
    self._recurse_load(ros_config, launch.childNodes, self.root_context, None, is_core, verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 685, in _recurse_load
    val = self._include_tag(tag, context, ros_config, default_machine, is_core, verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 627, in _include_tag
    default_machine, is_core, verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 655, in _recurse_load
    default_machine, is_core, verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 681, in _recurse_load
    self._rosparam_tag(tag, context, ros_config, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 239, in _rosparam_tag
    self.load_rosparam(context, ros_config, cmd, param, file, value, verbose=verbose, subst_function=subst_function)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/loader.py", line 430, in load_rosparam
    self.add_param(ros_config, full_param, data, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/loader.py", line 357, in add_param
    self.add_param(ros_config, ns_join(param_name, k), v, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/loader.py", line 357, in add_param
    self.add_param(ros_config, ns_join(param_name, k), v, verbose=verbose)
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosgraph/names.py", line 172, in ns_join
    if is_private(name) or is_global(name):
    File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosgraph/names.py", line 133, in is_private
    return name and name[0] == PRIV_NAME
    TypeError: 'int' object has no attribute '__getitem__'

何绪晖进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据