机器人操作系统ROS_典型功能实现方法详解

2019-03-28 12:01

机器人操作系统ROS: 典型功能实现方法详解

李宝全

ROS体系 ....................................................................................................................... 2 ROS安装 ....................................................................................................................... 3 TurtleBot 配置与运行 ................................................................................................... 3 ROS基础的学习 ........................................................................................................... 4 P3-AT/DX ...................................................................................................................... 8

ROSARIA配置与运行 ............................................................................................................. 8 ROSARIA键盘控制: .............................................................................................................. 10 ROSARIA程序控制方式: .................................................................................................... 11 Android遥控 ............................................................................................................................. 11 TurtleBot的键盘控制: ................................................................................................ 12 配置USB转串口 ........................................................................................................ 12 CmakeList.txt的制作 .................................................................................................. 13 图像的发布与接收...................................................................................................... 13

图像的接收,处理与显示 ...................................................................................................... 13 Kinect端获取图像 .................................................................................................................. 14 内置USB 摄像头图像获取 .................................................................................................... 15 外接USB摄像头图像获取 .................................................................................................... 17 KinectSkeleton ............................................................................................................. 17 TF Listener(综合实现人体跟踪) ................................................................................ 19 Voice ............................................................................................................................ 22

语言识别pocketsphinx ........................................................................................................... 22 识别结果的接收与显示 .......................................................................................................... 23 语言发布 .................................................................................................................................. 23 综合: 捕获String并发声 ........................................................................................................ 25 两主机通讯ROS_Network ......................................................................................... 25 ROS_OpenTLD ........................................................................................................... 27 ROS学习材料 ............................................................................................................. 27

1

ROS体系

版本:

Hydro 2013-09-04 Groovy 2012-12-31 Fuerte 2012-04-23 Electric

Diamondback

ROS是一种分布式的处理框架。

文件系统: 在硬盘上查看的ROS源代码的组织形式 包 Package:

含有manifest.xml 或package.xml?

比如下文中的turtlebot_teleop,turtlebot_bringup。 堆:Stack 包的集合

含有stack.xml

编译方法:

catkin:Groovy及以后版本

rosbuild:用于Fuerte及以前版本

常用命令: rostopic list;列出系统中的所有Topic

rosdep: 安装依赖包, 例如 rosdep install rosaria

安装时, 需要先建一个工作空间,然后把gitgub网站上相应的包下载到src文件夹下,再执行该语句。具体见 “ROSARIA配置与运行”一节。

环境变量设置:export 例如:

export ROS_HOSTNAME=marvin

export ROS_MASTER_URI=http://hal:11311

Bulks给的一些有用的命令

rosnode info /rosaria_teleop_key_1

rosrun rqt_robot_steering rqt_robot_steering rosrun rqt_gui rqt_gui rostopic help rosnode help

rosnode info /RosAria

rosnode info /rosaria_teleop_key_1 rosnode list

echo $ROS_HOSTNAME

2

ROS安装

安装教程:http://wiki.ros.org/hydro/Installation/Ubuntu

sudo sh -c 'echo \latest.list' 1.3 安装keys

wget http://packages.ros.org/ros.key -O - | sudo apt-key add - 1.4 安装

使Debian包为最新:sudo apt-get update

Full安装:sudo apt-get install ros-hydro-desktop-full 会出现一个界面,利用Tab选择Yes即可

成功则提示:ldconfig deferred processing now taking place

找到可以使用的包: apt-cache search ros-hydro

1.5初始化rosdep sudo rosdep init rosdep update 1.6环境设置

echo \source ~/.bashrc 1.7得到rosintall

sudo apt-get install python-rosinstall

TurtleBot 配置与运行

介绍TurtleBot的主页面(安装&运行): http://wiki.ros.org/Robots/TurtleBot

TurtleBot包(Package)的安装过程

安装(turtlebot/Tutorials/hydro/Installation ):按照Debs Installation按照方法来安装: 1. 首先安装:> sudo apt-get install ros-hydro-turtlebot ros-hydro-turtlebot-apps ros-hydro-turtlebot-viz ros-hydro-turtlebot-simulator ros-hydro-kobuki-ftdi 2. 之后加入sourse的bash中:> . /opt/ros/hydro/setup.bash. 说明:

a) 在终端中输入这一行后很快就结束.

b) 效果是在.bashrc(Home中的隐藏文件)的最后一行加入了\

/opt/ros/hydro/setup.bash\

c) 效果等效于命令> echo \这样的话就不

用每次启动都输入命令“source /opt/ros/hydro/setup.bash”了. d) 这个好像在安装ROS时已经执行过了,不需要再执行一次吧? 3. 之后加入kobuki的udev规则:> rosrun kobuki_ftdi create_udev_rules

安装完之后还需要加入网络时间控制(turtlebot/Tutorials/hydro/Post-Installation Setup ), 否则与kokuki无法通讯.

1.首先安装chrony:sudo apt-get install chrony 2.再进行syncNTP:sudo ntpdate ntp.ubuntu.com

问题: 我重装系统后再安装turtlebot后,连接不上kokuki,但能正常连接Kinect。在命令

3

行中,提示到bad callback, 因此说明有很多件没有安装成功。需要将其卸载重装,可以网上搜索Uninstall turtlebot来卸载并重装。

运行:

1. 首先打开机器人核心服务程序:打开一个终端:键入: roscore //

2. 系统的检测:New Terminal:输入命令 roslaunch turtlebot_dashboard

turtlebot_dashboard.launch 之后就会弹出kobukiDashboard-rqt 3. kobuki的运动控制:

a. New Terminal: TurtleBot Bringup > roslaunch turtlebot_bringup minimal.launch 用于

初始化机器人?

b. New Terminal:Teleoperation/ Keyboard Teleop : roslaunch turtlebot_teleop

keyboard_teleop.launch 开启键盘控制这一节点, 用于键盘控制机器人的运动.

4. 应用视觉传感器kinect并启动rviz界面: 3D Visualisation

a. New Terminal: > roslaunch turtlebot_bringup 3dsensor.launch; //将3Dsensor加入到系

统中, 初始化kinect传感器//kinect最好插到USB2.0上

b. 启动rviz的view_robot :New Terminal: roslaunch turtlebot_rviz_launchers

view_robot.launch // rviz中也整合了上一步的kobuki的运动控制 c. 这个也可以在p3at上的kinect上运行.

5. SLAM: 与之前的两项无关. 需要重新开始, 否则就报错了.

a. New Terminal: 开启ROS服务: roscore

b. New Terminal: 启动kobuki:roslaunch turtlebot_bringup minimal.launch

c. New Terminal: 运行gmapping Demo:roslaunch turtlebot_navigation

gmapping_demo.launch

d. 启动RVIZ的navigation:New Terminal: roslaunch turtlebot_rviz_launchers

view_navigation.launch

e. 保存建图的结果:rosrun map_server map_saver -f /tmp/my_map f. 说明: 该例程只用到kobuki, 没有用到Kinect. 6. 退出:ctrl+c

ROS基础的学习

ROS Tutorials:http://wiki.ros.org/ROS/Tutorials

1.1.1 Installing and Configuring Your ROS Environment 创建catkin workspace:

1. $ mkdir -p ~/catkin_ws/src //产生工作空间Workspace文件夹, 并产生源空间src文件夹 2. $ cd ~/catkin_ws/src

3. $ catkin_init_workspace //

a. 初始化工作空间//

b. 在src中仅生成一指向/opt/ros/hydro/share/catkin/cmake/toplevel.cmake的

CMakeLists.txt的链接,即CMakeLists.txt的内容与toplevel.cmake的内容一样

4. $ cd ~/catkin_ws/ //回到工作空间中 5. $ catkin_make //build工程??

a. 要在工作空间目录下输入该命令 b. //会产生build,devel文件夹

6. $ source devel/setup.bash //在当前bash环境下读取并执行devel/setup.bash 中的命令

工作空间的结构(包含包的):

workspace_folder/ -- WORKSPACE src/ -- SOURCE SPACE

CMakeLists.txt //怎么没有这个呢 -- 'Toplevel' CMake file, provided by catkin package_1/

4

CMakeLists.txt -- CMakeLists.txt file for package_1 package.xml -- Package manifest for package_1 ...

package_n/

CMakeLists.txt -- CMakeLists.txt file for package_n package.xml -- Package manifest for package_n

1.1.2 Navigating the ROS Filesystem

1. 查找某一包(package): 使用命令(例如)$ rospack find roscpp. 则会返回路径:

/opt/ros/hydro/share/roscpp

2. 利用命令$ roscd roscpp, 则直接进入/opt/ros/hydro/share/roscpp文件夹. 3. $ pwd //报告当前位置

1.1.3 Creating a ROS Package

上接1.1.1

1. $ cd ~/catkin_ws/src: 首先进入src文件夹.

2. $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp:创建包

a. beginner_tutorials为产生的包的名称,

b. std_msgs, roscpp, rospy为依赖项(dependencies)

1.1.4 Building a ROS Package 上接1.1.3

1. $ cd ~/catkin_ws/ : 首先返回工作空间文件夹. 2. $ ls src: 查看src文件夹中的内容,

a) 结果为beginner_tutorials CMakeLists.txt. b) 链接CMakeLists.txt一直存在

c) 命令ls为列出当前文件夹下的东西 3. $ catkin_make. //build

a) 需要在工作空间目录下运行该命令

b) 若在src文件夹下运行该命令,会有错误提示The specified base path

\contains a CMakeLists.txt but \must be invoked in the root of workspace.

1.1.10 Creating a ROS msg and srv 2.1产生一个消息: 1. 创建一个消息

a) cd ~/catkin_ws/src/beginner_tutorials首先进入文件夹. b) 再创建一个文件夹$ mkdir msg.

c) $ echo \创建一文件Num.msg, 并写入一行话int64 num,

当然还可以多加入几行.

2. 对(beginner_tutorials中的)package.xml添加下面两行:

a) message_generation b) message_runtime

3. 对(beginner_tutorials中的)CMakeList.txt做如下修改 :

a) 在原有的find_package(xxx)中加入“message_generation”

b) 在catkin_package()中添加CATKIN_DEPENDS message_runtime

c) 取消add_message_files()的注释, 并修改为add_message_files(FILES Num.msg) d) 取消generate_messages(DEPENDENCIES std_msgs)的注释

2.2使用rosmsg

5


机器人操作系统ROS_典型功能实现方法详解.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微积分实验报告2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: