ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:44.83KB ,
资源ID:14110455      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14110455.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(机器人操作系统ROS典型功能实现方法详解.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、机器人操作系统ROS典型功能实现方法详解 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】机器人操作系统ROS典型功能实现方法详解机器人操作系统ROS: 典型功能实现方法详解李宝全 ROS体系版本:Hydro 2013-09-04Groovy 2012-12-31Fuerte 2012-04-23ElectricDiamondbackROS是一种分布式的处理框架。文件系统: 在硬盘上查看的ROS源代码的组织形式包 Package:含有 或比如下文中的turtlebot_teleop,turtlebot_bringup。堆:Stac

2、k包的集合含有编译方法:catkin:Groovy及以后版本rosbuild:用于Fuerte及以前版本常用命令: rostopic list;列出系统中的所有Topicrosdep: 安装依赖包, 例如 rosdep install rosaria安装时, 需要先建一个工作空间,然后把gitgub网站上相应的包下载到src文件夹下,再执行该语句。具体见 “ROSARIA配置与运行”一节。环境变量设置:export例如:export ROS_HOSTNAME=marvinexport ROS_MASTER_URI= Bulks给的一些有用的命令rosnode info /rosaria_tel

3、eop_key_1 rosrun rqt_robot_steering rqt_robot_steering rosrun rqt_gui rqt_guirostopic helprosnode helprosnode info /RosAriarosnode info /rosaria_teleop_key_1rosnode listecho $ROS_HOSTNAMEROS安装安装教程: 安装keys 安装使Debian包为最新:sudo apt-get updateFull安装:sudo apt-get install ros-hydro-desktop-full会出现一个界面,利用Ta

4、b选择Yes即可成功则提示:ldconfig deferred processing now taking place找到可以使用的包:apt-cache search ros-hydro初始化rosdepsudo rosdep initrosdep update 环境设置echo source /opt/ros/hydro/ /.bashrcsource /.bashrc得到rosintallsudo apt-get install python-rosinstallTurtleBot 配置与运行介绍TurtleBot的主页面(安装&运行): TurtleBot包(Package)的安装过程

5、安装(/ ):按照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-ftdi2.之后加入sourse的bash中: . /opt/ros/hydro/. 说明:a)在终端中输入这一行后很快就结束. b)效果是在.bashrc(Home中的隐藏文件)的最后一行加入了source /opt/ros/hydro/,

6、 c)效果等效于命令 echo source /opt/ros/hydro/ /.bashrc. 这样的话就不用每次启动都输入命令“source /opt/ros/hydro/”了. d)这个好像在安装ROS时已经执行过了,不需要再执行一次吧3.之后加入kobuki的udev规则: rosrun kobuki_ftdi create_udev_rules安装完之后还需要加入网络时间控制(/ ), 否则与kokuki无法通讯. 1.首先安装chrony:sudo apt-get install chrony问题: 我重装系统后再安装turtlebot后,连接不上kokuki,但能正常连接Kine

7、ct。在命令行中,提示到bad callback, 因此说明有很多件没有安装成功。需要将其卸载重装,可以网上搜索Uninstall turtlebot来卸载并重装。运行:a.首先打开机器人核心服务程序:打开一个终端:键入: roscore 2.应用视觉传感器kinect并启动rviz界面: a.New Terminal: roslaunch turtlebot_bringup ; 3.SLAM: 与之前的两项无关. 需要重新开始, 否则就报错了. a.New Terminal: 开启ROS服务: roscoreb.New Terminal: 启动kobuki:roslaunch turtleb

8、ot_bringup c.New Terminal: 运行gmapping Demo:roslaunch turtlebot_navigation d.启动RVIZ的navigation:New Terminal: roslaunch turtlebot_rviz_launchers e.保存建图的结果:rosrun map_server map_saver -f /tmp/my_mapf.说明: 该例程只用到kobuki, 没有用到Kinect. 4.退出:ctrl+cROS基础的学习ROS Tutorials: Installing and Configuring Your ROS Env

9、ironment创建: $ mkdir -p /catkin_ws/src . package_n/ - file for package_n - Package manifest for package_n Navigating the ROS Filesystem1.查找某一包(package): 使用命令(例如)$ rospack find roscpp. 则会返回路径: /opt/ros/hydro/share/roscpp2.利用命令$ roscd roscpp, 则直接进入/opt/ros/hydro/share/roscpp文件夹.1.$ pwd $ catkin_create_

10、pkg beginner_tutorials std_msgs rospy roscpp:创建包a.beginner_tutorials为产生的包的名称, b.std_msgs, roscpp, rospy为依赖项(dependencies) Building a ROS Package1.上接 cd /catkin_ws/ : 首先返回工作空间文件夹.2.$ ls src: 查看src文件夹中的内容, a)结果为beginner_tutorials . b)链接一直存在c)命令ls为列出当前文件夹下的东西$ catkin_make. a ROS msg and srv产生一个消息:1.创建一

11、个消息a)cd /catkin_ws/src/beginner_tutorials首先进入文件夹. b)再创建一个文件夹$ mkdir msg. c)$ echo int64 num msg/: 创建一文件, 并写入一行话int64 num, 当然还可以多加入几行. 2.对(beginner_tutorials中的)添加下面两行: a)message_generationb)message_runtime3.对(beginner_tutorials中的)做如下修改 :a)在原有的find_package(xxx)中加入“message_generation”b)在catkin_package(

12、)中添加CATKIN_DEPENDS message_runtimec)取消add_message_files()的注释, 并修改为add_message_files(FILES d)取消generate_messages(DEPENDENCIES std_msgs)的注释使用rosmsg$ rosmsg show beginner_tutorials/Num. 应该输出int64 num但但提示找不到该消息使用查找命令$ rosmsg show Num, 应该输出beginner_tutorials/Num:int64 num. 但还是找不到创建一个srv1.创建一个srv$ roscd b

13、eginner_tutorials应该输出int64 a int64 b - int64 sum. 但提示找不到该消息使用查找命令 $ rossrv show AddTwoInts, 也只能查找到rospy_tutorials/AddTwoInts中的, 找不到beginner_tutorials/AddTwoInts中的. 与srv共同的下一步在中, 取消generate_messages(DEPENDENCIES std_msgs)的注释(创建msg阶段已经完成)在catkin_ws工作空间下输入命令: $ catkin_make结果是生成了针对不同语言的头文件: msg的C+头文件在 /

14、catkin_ws/devel/include/beginner_tutorials/. Python脚本在 /catkin_ws/devel/lib/dist-packages/beginner_tutorials/msg. 列表处理语言文件在 /catkin_ws/devel/share/common-lisp/ros/beginner_tutorials/msg/. 对于.srv, 生成的结果也类似. 生成成功!上接,不需要经过生成msg与srv的过程 进入包cd /catkin_ws/src/beginner_tutorials1.1创建Publisher Node:src/ 文件(在

15、该包的src文件夹下)2.1创建Subscriber Node:src/ 文件(在该包的src文件夹下)3.1Building your nodes 生成可执行文件a)在文件中(包的目录下面的)最后面加入(已经在之前msg&srv中生成并处理了, 若没经过上面的msg&srv阶段的处理, 也能正常编译生成)b)add_executable(talker src该过程使用了. 生成的结果为在:devel/lib/beginner_tutorials下有talker与listener节点(可执行文件). 并有提示:100% Built target talker;100% Built target

16、 listener1.打开ros服务:roscore2.运行talkera.另开一个terminal,进入$ cd /catkin_ws, b.再执行命令$ source ./devel/ . 该命令等效于 source /catkin_ws(工作空间名)/devel/。该命令很快即执行完毕c.$ rosrun beginner_tutorials(包的名称) talker : 运行Publisher. (不需要在工作空间目录下) 之后会看到如下类似消息: 3.运行listenera.进入$ cd /catkin_ws, b.再执行命令$ source ./devel/ c.$ rosrun

17、beginner_tutorials(包的名称) 因为需要加入头文件#include beginner_tutorials/1.写一个服务器节点: 进入文件夹cd /catkin_ws/src/beginner_tutorials, 编写src/ 2.写一个客户端节点: 进入文件夹cd /catkin_ws/src/beginner_tutorials编写src/ 3.Build节点a)在/catkin_ws/src/beginner_tutorials/中加入如下几行: devel/ b)2.运行客户端a)还需要再进入$ cd /catkin_ws, 再执行命令$ source ./deve

18、l/ b)运行add_two_ints_server :输入$ rosrun beginner_tutorials add_two_ints_client 1 3. 之后会看到如下类似消息:. 在客户端terminal中可以看到信息k response: 4进一步的服务器客户端例程: P3-AT/DXROSARIA配置与运行网站主页 How to use ROSARIA:创建ROS工作空间之前若没有加入启动命令. /opt/ros/hydro/的话, 则加入. 为了创建一个关于ROSARIA的工作空间, 将学习ROS基础阶段的catkin_ws文件夹重命名为catkin_ws_Base, 再新

19、建一个工作空间catkin_ws:mkdir -p /catkin_ws/srccd /catkin_ws/srccatkin_init_workspace首先进入src文件夹, 之后运行命令git clone 包中包含文件 在安装ARIA后再下载该包应该也可以 安装ARIA以及Build ROSARIA1.source /catkin_ws/devel/a)b)或者把这项添加到.bashrc文件中再执行.bashrc文件:echo source /catkin_ws/devel/ /.bashrc - source /.bashrc2.得到包之后, 编译它们:i.rosdep updateT

20、hey have been ignored, or old ones used instead. 解决方法:sudo rm /var/lib/apt/lists/* -vf 删除相应文件1.catkin_make若不在第一步运行该命令,则会报错rospack Error: stack/package rosaria not found2.运行启动该节点的命令: rosrun rosaria RosAriaa)不需要到catkin_ws文件夹下. b)命令rosrun 允许直接运行一个包里面的节点(可执行程序): rosrun package_name node_name.c)节点的位置为cat

21、kin_wsdevellibrosariaRosAria3.(从运行下面4可知不需要这一步)设置网络地址 4.配置好USB转串口后就可以连接了, 连接成功时输出的提示信息为(退出连接的话, 直接Ctrl+C就可以了.):Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0.Syncing 0Syncing 1Syncing 2Connected to robot.Name: RoboticsWorld_4129Type: PioneerSubtype: p3at-shArConf

22、ig: Config version: Loaded robot parameters from ArRobotConnector: Connecting to MTX batteries (if neccesary).ArRobotConnector: Connecting to MTX sonar (if neccesary).om robot EEPROM: 32550说明:1.一问题的解决:在运行后面连接Android时, 再回头运行此命令, 则就去src/rosaria找该可执行文件了, 因此从路径上就错了, 不知是那一步影响了该命令的执行. 不过用中的catkin_make命令重新

23、编译一下就又能正常连接了. 2.若USB转串口没有配置好, 则会出现下方的错误提示, 配置方法请见下方的USB转串口配置. ArSerialConnection:open: Could not open serial port /dev/ttyUSB0 | ErrorFromOSNum: 2 ErrorFromOSString: No such file or directoryCould not connect, because open on the device connection failed.Failed to connect to robot.d. Topics and Comm

24、andsa)获得姿态: rostopic echo /RosAria/pose cho 应该是请求输出的命令b)运行结果:2.线速度控制量的设置(s):rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist linear: x: , y: , z: , angular: x: , y: , z: a)/RosAria/cmd_vel 指话题名字 Topic, 不能是/cmd_vel 或者cmd_velb)geometry_msgs/Twist 为数据类型 Messagec)linear: x: , y: , z: , angular: x: ,

25、 y: , z: 合成一个消息d)运行结果:机器人做相应运动并提升publishing and latching message for seconds3.角速度控制量的设置(s):rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist linear: x: , y: , z: , angular: x: , y: , z: 4.也可以把2,3合成起来. 5.其他的 sonar, bumpers, acceleration parameters如何用更多ROS API请见: ROSARIA键盘控制:1. mkdir -p /RosAriaKey

26、board/src2. 创建包catkin_create_pkg RosAriaKeyboard std_msgs rospy roscpp编写程序:3. 编写文件在文件夹下加入如下几行命令(Bluks给我的程序是用rosbuild编译方法。需要做相应借鉴并修改)1.find_package(PkgConfig REQUIRED)新建工程mkdir -p /RosAriaCode/src2.创建包: catkin_create_pkg RosAriaCode std_msgs rospy roscpp3.处理CMakeListadd_executable(rosaria_teleop_code

27、 src/target_link_libraries(rosaria_teleop_code $catkin_LIBRARIES)add_dependencies(rosaria_teleop_code RosAriaCode_generate_messages_cpp)4. catkin_make一下。5. 执行:source devel/rosrun wmrcontrol rosaria_teleop_codeAndroid遥控Android Teleoperate Pioneer 3at Robot. 见网站:/ /Connecting to a ROS Master进入之前下载的ROS

28、ARIA包的文件夹中cd /catkin_ws/src/rosaria 网页上是不是写错了没有ROSARIA. 只能自己写命令git clone , 结果还可以, 结果是在src文件夹中得到了ROSARIA文件夹. rosaria与ROSARIA文件夹一样大小, 是不是就是一样的 Step2使用命令:Path_from_Home/ROSARIA$ rosmake但是在rosaria中使用rosmake 就可以, 结果为Built 52 packages with 0 failures., 但在ROSARIA下就报错. 网站上是不是写错了 Step3进入文件夹, 网站上写的命令$ roscd R

29、OSARIA, 但进入不了, 只能手动进入rosaria了, 好像roscd也不能使用. 创建一个文件:命令:gedit & 把网站上的代码粘贴进去再保存. Step4编辑rosaria文件夹下的CMakeList. txt文件. 在最后一行添加rosbuild_add_executable(android_teleop 在rosaria下输入命令:rosmake. 不起作用呢提示错误信息: rosmake rosmake starting. rosmake No package or stack specified. And current directory catkin_ws is no

30、t a package name or stack name. rosmake Packages requested are: rosmake Expanded args to: rosmake ERROR: No arguments could be parsed into valid package or stack names.从pubulisher节点中学习如何编译并运行NodeTurtleBot的键盘控制:控制命令以Terminal端键入方式:TurtleBot与p3dx应该很像,那么能不能在p3dx的terminal命令的基础上修改得到呢,大胆尝试后,竟然对了!TurtleBot端的命令为:(当然需要先启动机器人)rostopic pub -1 cmd_vel_mux/input/teleop geometry_msgs/Twist linear: x: , y: , z: , angular: x: , y: , z: 原因是,观察到中含有如下一句话:那么很有可能Top

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2