加载中…
请输入标题
暂无内容
个人资料
BigSam78
BigSam78
  • 博客等级:
  • 博客积分:0
  • 博客访问:571,476
  • 关注人气:167
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
标签:

actionlib

ros

分类: 机器人-ROS
作者: Sam (甄峰)  sam_code@hotmail.com

Sam在ROS学习中,遇到知识点actionLib, 觉得特别有用。学习记录之。

0. 基础知识:
actionlib是ROS一个功能包集(actionlib stack).
http://www.ros.org/browse/details.php?distro=kinetic&name=actionlib
http://wiki.ros.org/actionlib

在ROS系统中,向某个Node发送请求,并获取响应。可以通过ROS Srevice机制来满足。但如果执行某个请求的时间很长,(如要求机器人从A点移动到B点)在此期间,用户想要查看执行的进度或者干脆取消这个请求。Service机制就没法满足了,但是actionlib可以满足用户这种需求。
ActionLib栈提供工具,使用户可以创建一些Servers,这些Server用来执行较长时间的任务,并且任务可以被制止。同时ActionLib还提供了一些Client接口,用来给Server发
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

python

modules

分类: Python
作者: Sam (甄峰)  sam_code@hotmail.com

Sam学习使用Python不久,就Python module的理解有限。因为此原因,在工作中遇到一些疑惑。现把学习过程记录下来。


0. Python Module 的最初认识

模块让你能够有逻辑地组织你的Python代码段。

把相关的代码分配到一个 模块里能让你的代码更好用,更易懂。

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

bash

分类: linux
作者:Sam (甄峰)  sam_code@hotmail.com

0. Bash的运行模式:
运行中的Bash有两种属性(模式)。 A:是否Interactive shell(交互式Shell)。  B:是否Login shell(登陆shell).
当这两项模式排列组合后,就会出现4种运行模式。

1. 登录交互式Shell。
2. 非登录交互式Shell。
3. 登陆非交互式Shell。
4. 非登录非交互式Shell。


1. Bash运行模式具体介绍
1.1:Login Shell
login shell是指用户以非图形化界面或者以ssh登陆到机器上时获得的
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

tk1

ubuntu

ros

分类: 机器人-ROS
作者: Sam (甄峰)   sam_code@hotmail.com

最近想在UD Tegra K1开发板上安装ROS系统。因为TK1开发板,本身就支持安装ubuntu, 所以理论上,一定可以成功安装ROS某个版本。现记录如下。

之前在编译过UD提供的Android Image,并烧入到TK1。所以以为ROS也是类似做法,后来请教过UD的几位朋友,才知道可以直接烧入Ubuntu。并提供了论坛地址,其中详细说明了如何烧入Ubuntu.
http://bbs.uditech.com.cn/


0. 准备工作:
0.1:系统要求:
Linux(Fedora/Ubuntu, 32bit/64bit).

0.2:硬件要求:
TK1开发板,Mirc-USB线。

0.3: 下载TK1 Ubuntu Image:
 百度云:链接: http://pa
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-11-09 10:00)
标签:

ros

rplidar

分类: 机器人-ROS
作者: Sam (甄峰)  sam_code@hotmail.com

最初接触机器人领域时,就接触到Slamtec(www.slamtec.com)这家公司和他们的产品。购买了他们的早期版本。但之后没有继续下去。最近又开始ROS的相关学习。想通过学习slamtec的RPLidar对三角定位激光雷达有更多的了解。

在ROS wiki 上,有 slamtec的 rplidar的支持包 rplidar_ros. 
可以通过 

1. package分析
首先看package.xml, 它指定包名为:rplidar_ros. 以及一些依赖包。

再看CMakeLists.txt:
其中编译了两个可执行程序:
rplidarNodeClient, rplidarNode
rplidarNodeClient是由:src/client.cpp生成的。
rplidarNode则是由:src/node.cpp   sdk/src/arch/linux/*.cpp  
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ros

launch

分类: 机器人-ROS
作者: Sam (甄峰)  sam_code@hotmail.com

0. 背景:
rosrun 可以运行node. 但如果某个项目需要N多个Node执行。一句句执行起来,不要遗漏,是件很麻烦的事。
所以提供了一个方式-----Launch文件。ROS中可以把很多的命令以描述的形式写成Launch文件,然后用roslaunch命令执行launch文件。就相当于使用rosrun调用了这些Node。 这个Launch文件,以 .launch为后缀名,放在Package的launch目录内。




1. 使用方法:
roslaunch [package]  [filename.launch]


2. Launch文件解析:
例1:

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ros

joy

分类: 机器人-ROS
作者:Sam (甄峰) sam_code@hotmail.com

这次学习如何将ROS所支持的外设与我们本身的程序结合在一起使用。

例如:已经有底盘,或者使用turtlesim小乌龟程序。 如何使用游戏手柄来控制底盘或小乌龟。如何使用使用激光雷达等。


1. 使用游戏手柄控制Turtlesim小乌龟
1.1:相关包的安装:
在使用游戏手柄前,需要先安装joystick, ros-indigo-joy, ros-indigo-joystick-drivers等包。

1.2:  硬件设别:
把USB插口或USB Dongle插入系统。 察看/dev/input/中是否创建了js0 这个node.  如果建立,说明硬件设备被识别。
此时, cat /dev/input/js0
按下手柄按键,会看到一些乱码。他们是按照input数据格式发送的。这也说明,硬件连接成功了。

1.3: 察看和解析硬件数据:
硬件数据发出了,通过/dev/input/js0 或者 /dev/hidrawX在Linux层面显现出来。
但它的ROS
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ros

gdb

分类: 机器人-ROS
作者:Sam (甄峰)  sam_code@hotmail.com

在使用C++开发ROS程序时,经常需要逐行调试代码。 这时就需要用到GDB了。

之前在Linux上使用GDB, 在嵌入式系统或Android使用过GDB Server。 知道GDB使用中需要注意哪些问题。
1. 编译时,需要加入-g 选项。
2. 不能有任何strip的动作。不能被去掉debug信息。

1. 处理CMakeLists.txt文件:
set (CMAKE_CXX_FLAGS  '${CMAKE_CXX_FLAGS}  -g ')
set (CMAKE_VERBOSE_MAKEFILE ON)

第一句保证了CXXFLAGS被加上了-g
第二局保证了具体的Make语句被显示出来,我们可以实际检查编译选项是否正常。

2. 运行语句:
2.1: 运行ros master
$roscore
2.2: 运行想要Debug的程序:
进入catkin_ws/devel/lib/Package_Name. 可以看到可执行文件。
$gdb ./example2_sam

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ros

msg

分类: 机器人-ROS
作者: Sam (甄峰)  sam_code@hotmail.com

1. ROS消息类型和消息文件
ROS语言中立,支持Python, C++, Lisp等。为了支持交叉语言,ROS利用了简单的,语言无关的接口定义语言去描述模块间的消息传递。
它使用这种简化的消息类型描述语言来描述ROS节点发布的数据值,通过这样的描述语言,ROS能够使用多种编程语言生成不同类型消息的源代码。

ROS提供了很多预定义的消息类型,如果我们需要创建一个新的类型,就要把消息的类型定义放在功能包的msg文件夹下(Package介绍时说过)。 在此文件夹下,有用于定义各种消息的文件,它们都以 .msg为扩展名。


2. MSG文件格式
消息类型必须有两个主要部分:字段,常量。
字段定义了消息中传输的数据类型,如:int32, float32, string.
常量用于定义字段的名称。

int32 id
float32 vel
string name 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2016-10-24 15:25)
标签:

handsfree

ros

分类: 机器人-ROS
作者:Sam (甄峰)  sam_code@hotmail.com


之前介绍过Hands-Free,现在开始介绍如何下载Hands-Free相关ROS Package, 并编译运行之。

0. ROS版本,Cmake版本:
强烈建议使用indigo.   CMake:2.8.12.2或之上
Sam之前使用hydio, cmake 版本也较低, 结果编译时出各类错误。


1.  下载Hands-Free相关ROS Package-----ROS_DEMO
https://github.com/HANDS-FREE是Hands-Free的github仓库,其中https://github.com/HANDS-FREE/ROS_DEMO 是ROS Package.

https://github.com/HANDS-FREE/ROS_DEMO.git

Sam在catkin_ws/src/hands-free目录下,运行:
$sudo git clone https://github.com/HANDS-FREE/ROS_DEMO.git
将ROS_DEMO加入catkin workspace.

2. 运行脚本,安装依赖包:
在catkin_ws/src/hands-free/ROS
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有