
ROS总结
文章平均质量分 78
ros小生
这个作者很懒,什么都没留下…
展开
-
Ubuntu下程序进程堆栈信息——gstack
分享Ubuntu下根据gstack进行CPU占用较高程序排查原创 2021-12-18 16:20:29 · 4553 阅读 · 0 评论 -
[原创] Ubuntu开机启动程序崩溃解析
当把程序安装至Ubuntu的开机启动项后,发现程序崩溃无法启动且非必现,可通过如下操作进行解析.流程1.Ubuntu开机启动后,/var/log/apport.log将保留程序崩溃日志,如:ERROR: apport (pid 3702) Mon May 18 10:43:13 2020: apport: report /var/crash/_opt_ros_kinetic_lib_test.0.crash already exists and unseen, doing nothing to原创 2020-05-18 14:02:42 · 2635 阅读 · 0 评论 -
【ROS书籍】ROSByExampleⅡ——第三章 使用ROS任务执行
第三章 使用ROS任务执行 正如我们在卷一讲述的,机器人的程序相对简单来运行一个特定的行为,例如人脸跟踪、位置导航、或跟随一个人。但是一个期望的完全自主机器人从一个巨大的行为列表中选择一个自己的行为取决于手头的任务和当前的条件。在本章节中,我们将学习如何使用两个不同启用ROS任务执行框架:SMACH(使用状态机和宣言“smash”)和pi_trees(行为树)。每一种方法都原创 2017-06-13 12:37:28 · 1388 阅读 · 0 评论 -
【ROS总结】ROS故障排除
前言 在ROS学习与开发中,难免遇到各种各样的问题,除了一些可以解决问题(语法问题)外,其他一些问题有时很难发现并解决,在这里,总结下在开发中遇到的各种问题,不定期更新中。。。 为了方便和管理,每一个标题都是一些问题模块,现在有catkin_make编译模块。 catkin_make问题问题1:在使用catkin_make过程中,明明有需要编译的包,但是系统提示找不到该路径...原创 2017-06-03 15:17:12 · 26229 阅读 · 2 评论 -
【ROS书籍】ROSByExampleⅡ——第三章 使用ROS任务执行 (二)
3.6 脚本的问题 以上描述的标准脚本存在的主要问题是,我们不得不必须将电池检查深埋在导航程序。同时这个工作的定义用于示例联系,当我们给机器人行为添加更多的任务时,将变得不那么有效。例如,虚拟设我们想要机器人导航到下一个位置之前,在每一个坐标点通过左右平移相机扫描一个人时。我们的巡逻程序可能会是这样:def patrol(): for location in waypoints:原创 2017-06-14 19:15:38 · 1751 阅读 · 0 评论 -
【ROS总结】Turtlebot ROS 开机自启动设置(2)
Gmapping only this methodsudo vi /etc/init/tty1.configadd like under# tty1 - getty## This service maintains a getty on tty1 from the point the system is# started until it is shut原创 2017-08-01 19:31:00 · 3791 阅读 · 0 评论 -
【ROS总结】点激光扫描仪数据发布(驱动编写)
前言 在使用ROS的过程中,不可避免的会遇到要自己手动编写驱动、节点、行为库、服务、消息等内容,尤其是需要一些传感器,而所需传感器没有相关ROS驱动时,下面将讲述的是在使用的传感器中,没有ROS驱动时,我们将如何使用该传感器。 在接下来的博客中将根据本身经验来编写一些ROS相关内容,权当是作为记忆来分享。ROS驱动——点激光扫描仪 下面将讲述使用R原创 2017-11-25 17:05:58 · 5115 阅读 · 0 评论 -
Ubuntu14.04+GTX1080+Cuda8+Cudnn7.0+Tensorflow
Tensorflow安装下面讲述如何在Ubuntu14.04上安装Tensorflow,需求如下:软件&系统版本Ubuntu(64位)14.04.5内核4.4.0GTX1080 驱动384.98Java8Bazel0.7.0以上Cuda8.0.61_375.26G原创 2017-12-18 10:14:51 · 3206 阅读 · 0 评论 -
【ROS总结】 关于下载源更新失败问题
关于下载源更新失败问题有时候使用sudo apt-get update的时候,出现can not download http://http://packages.ros.org/ros/ubuntu/dists/trusty/main/binary-amd64/Packages错误,更新源也无济于事。在这个时候可以使用以下办法解决:一般来说,使用apt-get update的时候会原创 2018-01-05 10:16:09 · 8223 阅读 · 1 评论 -
【ROS总结】发布ROS1包到ROS版本
前言在ROS开发过程中,想要发布自己的包贡献到ROS社区,也就是想要自己的包可以通过apt-get的形式进行下载,这样可以避免每次源码编译的时候会遇到很多坑的情况,不过想要发布ROS包到ROS社区需要如下能力:长期维护能力:ROS包会一直迭代更新,因此自己的包也应具有长期维护能力,当然,稳定版本后可以不用长期维护。开源精神:因为ROS包遵循BSD协议,会要求将包开源后才可以上传到ROS社区,所以将...原创 2018-04-22 17:48:13 · 1994 阅读 · 2 评论 -
【ROS总结】发布ROS1包之文档编写
前言在上一节中,讲述了如何发布一个包到ROS社区,这一节将讲述,如何在wiki界面编写ROS包说明文档、教程。步骤如下:登录wiki官网,创建界面编辑账号向ROS社区提交wiki页面编辑权限,取得白名单编辑ROS包文档创建wiki账号登录wiki.ros.org,选择登录,创建账户输入用户名密码创建完成后,选择登录,登录成功会将显示:点击界面获取白名单。wiki白名单在github上,登录当前gi...原创 2018-04-22 18:35:30 · 779 阅读 · 0 评论 -
【ROS总结】发布ROS2包到ROS版本
前言在上一总结中,讲述了如何将ROS1的包发布到ROS版本(Indigo、jade、kinetic、lunar等),在这一节中,讲述如何把ROS2的包发送到ROS社区,比如发布到ROS2版本(ardent)。这个页面描述了如何准备在公共ROS 2 buildfarm上发布存储库。在你创建了一个包之后,这是将你的包引入到公开可用的Debian软件包(即:你将能够通过apt-get安装包。这个页面包含...原创 2018-04-25 11:40:44 · 2222 阅读 · 1 评论 -
【ROS翻译】ROS2 Ament教程
> 说明:<br><br>> 本文首发于 [Playfish Blog](http://carlzhang.club/2018/05/17/ament-tutorial/),转载请保留链接。## 概述这将为你提供一个快速总结,如何使用一个工作空间来启动和运行。它将是一个实用的教程,并不是用来取代核心文档的。### 背景Ament是catkin元构建工具的一个迭代...翻译 2018-05-17 22:08:00 · 2782 阅读 · 0 评论 -
【ROS翻译】Ubuntu下安装ROS2
说明:本文首发于 Playfish Blog,转载请保留链接。前言在Beta 2中,我们正在为Ubuntu Xenial构建Debian软件包。它们在一个临时存储库中进行测试。下面的链接和说明参考了最新版本——目前是ardent。资源: Jenkins实例 存储库 状态页面(amd64,arm64) 安装源要安装Debian软件包,你需要将我们的Debian存储库添...翻译 2018-05-14 19:13:44 · 1102 阅读 · 0 评论 -
【ROS1总结】使用bloom-generat打包ROS包生成debian安装包
> 说明:<br><br>> 本文首发于 Playfish Blog,转载请保留链接。 前言在之前的博客中,介绍了ROS包的编写,在本节中将讲述如何将之前写的ROS包打包成debian安装包形式,打包成debian安装包形式有很多,例如: 将ros包开源至github,利用ros自动生成到构建仓库(buildform) 在本地将ros包打包...原创 2018-10-21 19:44:18 · 4936 阅读 · 11 评论 -
【ROS书籍】ROSByExampleⅡ——第二章 安装ROS-BY-EXAMPLE代码
第二章 安装ROS-BY-EXAMPLE代码 请注意,本书的代码是在ROS Indigo下编写。虽然其中有一些可能用于ROS的早期版本,但是强烈读者使用ROS Indigo版本。特别是,以下列出的依赖包和Moveit!机械臂导航示例程序特定于Indigo。 在开始安装卷二代码之前,如果我们安装了大部分我们以后需要的额外ROS包,会节约很多时间。(提供的介绍用于安装独立的包用原创 2017-06-13 09:13:35 · 1132 阅读 · 1 评论 -
【ROS书籍】ROSByExampleⅡ——第一章 本卷范围
第一章 本卷范围 在卷1中我们已经学习了如何使用ROS基本组件来进行机器人编程,包括控制移动底盘、SLAM、机器人视觉(OpenCV、OpenNi和一小部分PCL),语音识别和使用Dynamixel伺服电机进行关节控制。在本卷中我们将讨论一些更高级的ROS概念和真正自主机器人行为的基本编程,这其中包括:l 执行任务管理,例如smach和行为树。l 使用URDF原创 2017-06-13 09:09:55 · 1173 阅读 · 0 评论 -
【ROS总结】教程Actionlib——使用Execute Callback编写一个简单的行为服务器
前言 所有的Actionlib教程已经在中文ROS页面服务器上翻译,有兴趣的可以查看总目录: http://wiki.ros.org/cn/actionlib_tutorials/Tutorials描述 这个教程涵盖了使用simple_action_server库来创建一个Fibonacci行为服务器。这个行为服务器教程会生成一个Fibonacci序列、目标的顺序序列、自身计原创 2017-06-10 15:25:17 · 1860 阅读 · 0 评论 -
【ROS总结】 ROS接口——Odometry
版本:Indigo 这篇文章主要是把平时用到的一些ROS接口梳理一下,避免无法和ros进行对接,首先ROS中相对重要的是里程计(Odometry),里程计的重要性不言而喻,如果没有里程计,不管是建立地图还是导航都不会很好的工作,相应的Odometry更新也有一些节点可以调用,本文主要用到的是ros_controllers中的差分驱动控制器,介绍文档如下,该控制器用处广泛,基本差分驱动都可以用原创 2016-09-28 11:23:57 · 9471 阅读 · 0 评论 -
ubuntu 无线WIFI无法使用
今天升级ubuntu GCC,完成后悲剧的发现WIFI没有了,但是查看系统设置,驱动是有的,但是就是无法连接WIFI。皇天不负有心人,终于找到解决方法,参考http://www.linuxdiyf.com/linux/18426.html其他都可以不用管,直接进行最后一步。sudo apt-get intall bcmwl-kernel-source运行这个即可瞬间连接WIFI。原创 2016-12-05 18:18:32 · 1079 阅读 · 0 评论 -
ROS 简单的udev rules
Udev是Linux的设备管理器,动态地创建和删除节点的硬件设备。简而言之,它有助于你的电脑很容易找到你的机器人。默认情况下,硬件设备连接到Linux(Ubuntu)电脑将属于根用户。这意味着运行的任何程序(例如ROS节点)作为unpriveleged(即不是根)的用户将不能访问它们。最重要的是,设备将收到的名字如ttyACMx和ttyUSBx任意基于他们的顺序插入。幸运的是,你可以解决这个问题,原创 2016-09-05 18:05:01 · 2656 阅读 · 2 评论 -
【ROS总结】ROS下的百度语音识别应用
前言今天闲来无事查看下语音识别在ROS中的应用,之前在ROS中玩过一段时间的Pocket Sphinx,关于Pocket Sphinx的学习过程以后会介绍,或者可以去网上搜索一些教程,都是比较不错的。现在讲述下在ROS中百度语音的使用情况,由于百度语音的作者写了一些文章在Github上,但是步骤不是很清楚,在此记录一下防止以后忘记,也和大家分享下,避免出现一些失误而导致半途而废。需求操原创 2017-02-12 15:01:25 · 7667 阅读 · 17 评论 -
[CoffeeBot] 确定客户的坐标
确定客户的坐标我们将调用用户,要求Turtlebot把咖啡带给“顾客”。当启动Turtlebot(并且加载amcl,自主导航要求amcl),通过相对地图(你加载的)的X和Y值来声明顾客的位姿。我们需要确定每个客户的位置,并且在他们请求咖啡之前告诉他们的X和Y坐标。收集一组合理的位姿在Turtlebot上运行:roslaunch turtlebot_b原创 2017-04-19 14:38:08 · 537 阅读 · 0 评论 -
[CoffeeBot] 安装Chrome浏览器扩展
安装Chrome浏览器扩展我们可能喜欢从终端订购咖啡,但我们怀疑你的客户不会。给他们CoffeeBot Chrome扩展,这样他们就可以喜欢这个风格。我们的目标:安装 Chrome在工作机上:通过下载它安装Chrome,然后打开Ubuntu软件中心。(搜索”google-chrome-stable"并且安装。)原创 2017-04-19 16:11:53 · 1013 阅读 · 0 评论 -
[CoffeeBot] 配置最后脚本
配置最后脚本在工作机上,打开一个终端然后运行:cd ~/helloworldgedit coffee_bot.py滚轮到下面然后查找:######## CHANGE THE FOLLOWING VALUES #########这有四个值你需要改变:server_public_dns – 设置这个到你的EC2访问的公共DNS。原创 2017-04-19 16:25:25 · 395 阅读 · 0 评论 -
[CoffeeBot] 重写Auto-Docking服务器
重写Auto-Docking服务器auto-docking脚本允许CoffeeBot自动对接,需要一个auto-docking服务器。在我们的测试中,这经常坠毁。也就是说,ROS提供launch文件,可以自动产生节点崩溃。我们会修改这auto-docking服务器launch文件所以它可以auto-spawns。我们将使用这个最终的演示。打开一个终端窗口原创 2017-04-19 16:36:38 · 884 阅读 · 0 评论 -
[CoffeeBot] 安装Web App
安装Web App当我们设置web服务器后,我们还安装了一个web应用程序,可以方便用户从他们的智能手机订阅咖啡。在你的手机浏览器中,打开http://YourPublicDNS/turtlebot-web-app/ 。IOS:单击书签工具添加到主屏幕Android:点击“more” (三个垂直点)选择 “add to homes原创 2017-04-19 16:44:08 · 446 阅读 · 0 评论 -
[CoffeeBot] 运行最终脚本
运行最终脚本你准备好提供咖啡在Turtlebot上,打开一个终端然后运行:roslaunch turtlebot_bringup minimal.launchroslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yaml提示:我如何创建一个地图?在工作机上,打开一个终原创 2017-04-19 16:51:53 · 795 阅读 · 0 评论 -
[CoffeeBot] 为用户设置最优角度
为用户设置最优角度为简单起见,我们的教程应用程序只为你的客户包含X和Y坐标,并且不包含角,即当TurtleBot到达客户的位置的朝向。记住,ROS在3 d环境中开发机器人工作像无人机。因此,取向并不代表有一个角。对于那些想要将他们的应用程序到下一个级别,并允许自定义的角度,这里有一些建议:如果我们查看coffee_bot.py的代码搜索“Quaternion”,这就是控制你的取向(原创 2017-04-19 17:13:08 · 345 阅读 · 0 评论 -
[CoffeeBot] 等待挑战
等待挑战我们需要你的帮助!虽然上网本和Kobuki电池自动充电在理论上可以无限期地运行,但是Keurig不是通过底座充电。在我们的演示客户必须插入Keurig使用它。驱动Keurig加上其他一些功能将使我们的演示一个成熟的CoffeeBot !Keurig的能力: 由于Keurig的1000 - 1500瓦特的需求,当它到达他们的桌子上,客户必须插入Keurig。找到一个方原创 2017-04-19 17:21:44 · 267 阅读 · 0 评论 -
[CoffeeBot] 配置CoffeeBot的网页服务器
重要本文中提供的脚本并不是推荐的配置实例,因为他们真的没有安全。世界上任何人都可以在技术上要求咖啡或者更糟。我们离开了安全配置/ API密钥等,尽可能的保持教程简单。我们需要一种方法让客户告诉TurtleBot他们想要咖啡,并且如果多个同时人们想要咖啡需要咖啡队列管理。有多种方法,但考虑到本系列是针对web开发人员,我们将使用一个LAMP堆栈。什么是LAMP?原创 2017-04-19 15:20:34 · 498 阅读 · 0 评论 -
【ROS书籍】ROSByExampleⅡ——第三章 使用ROS任务执行 (三)
3.8.5 SMACH Iterators 在patrol_smach.py脚本,我们在一个while循环将机器执行重复巡逻。现在,我们将展示如何使用SMACH迭代器(Iterator)容器实现相同的结果。新的脚本叫做patrol_smach_iterator.py,可以在rbx2_tasks/nodes目录中找到。因为patrol_smach.py脚本的大多数是一样的,我们只会突出差异。原创 2017-06-16 08:30:21 · 932 阅读 · 0 评论 -
【ROS总结】Turtlebot ROS 开机自启动设置
关于ROS自启动设置,之前查看了很多相关文章,并不是很适用,尤其是开机启动时候加载minimal.launch和amcl.launch的时候,目前开启自启动的ROS包有upstart,该包是通过创建一个服务来启动minimal.launch等基本的launch文件,要是启动多个launch文件,可以通过把多个launch文件写入到一个launch中这样的方法来启动。 还有其他方式是利用Ubu原创 2016-09-05 10:14:08 · 5389 阅读 · 0 评论