機(jī)器人操作系統(tǒng)ROS_典型功能實(shí)現(xiàn)方法詳解_第1頁
機(jī)器人操作系統(tǒng)ROS_典型功能實(shí)現(xiàn)方法詳解_第2頁
機(jī)器人操作系統(tǒng)ROS_典型功能實(shí)現(xiàn)方法詳解_第3頁
機(jī)器人操作系統(tǒng)ROS_典型功能實(shí)現(xiàn)方法詳解_第4頁
機(jī)器人操作系統(tǒng)ROS_典型功能實(shí)現(xiàn)方法詳解_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、機(jī)器人操作系統(tǒng)ROS: 典型功能實(shí)現(xiàn)方法詳解李寶全 28ROS體系2ROS安裝3TurtleBot 配置與運(yùn)行3ROS基礎(chǔ)的學(xué)習(xí)4P3-AT/DX8ROSARIA配置與運(yùn)行8ROSARIA鍵盤控制:10ROSARIA程序控制方式:11Android遙控11TurtleBot的鍵盤控制:12配置USB轉(zhuǎn)串口12CmakeList.txt的制作13圖像的發(fā)布與接收13圖像的接收,處理與顯示13Kinect端獲取圖像14內(nèi)置USB 攝像頭圖像獲取15外接USB攝像頭圖像獲取17KinectSkeleton17TF Listener(綜合實(shí)現(xiàn)人體跟蹤)19Voice22語言識(shí)別pocketsphinx

2、22識(shí)別結(jié)果的接收與顯示23語言發(fā)布23綜合: 捕獲String并發(fā)聲25兩主機(jī)通訊ROS_Network25ROS_OpenTLD27ROS學(xué)習(xí)材料27ROS體系版本:Hydro 2013-09-04Groovy 2012-12-31Fuerte 2012-04-23ElectricDiamondbackROS是一種分布式的處理框架。文件系統(tǒng): 在硬盤上查看的ROS源代碼的組織形式包 Package:含有manifest.xml 或package.xml?比如下文中的turtlebot_teleop,turtlebot_bringup。堆:Stack包的集合含有stack.xml編譯方法:c

3、atkin:Groovy及以后版本rosbuild:用于Fuerte及以前版本常用命令: rostopic list;列出系統(tǒng)中的所有Topicrosdep: 安裝依賴包, 例如 rosdep install rosaria安裝時(shí), 需要先建一個(gè)工作空間,然后把gitgub網(wǎng)站上相應(yīng)的包下載到src文件夾下,再執(zhí)行該語句。具體見 “ROSARIA配置與運(yùn)行”一節(jié)。環(huán)境變量設(shè)置:export例如:export ROS_HOSTNAME=marvinexport ROS_MASTER_URI=http:/hal:11311 Bulks給的一些有用的命令rosnode info /rosaria_t

4、eleop_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安裝安裝教程:/hydro/Installation/Ubuntu sudo sh -c echo deb /ros/ubuntu pr

5、ecise main /etc/apt/sources.list.d/ros-latest.list1.3 安裝keyswget /ros.key -O - | sudo apt-key add -1.4 安裝使Debian包為最新:sudo apt-get updateFull安裝:sudo apt-get install ros-hydro-desktop-full會(huì)出現(xiàn)一個(gè)界面,利用Tab選擇Yes即可成功則提示:ldconfig deferred processing now taking place找到可以使用的包:apt-cache se

6、arch ros-hydro1.5初始化rosdepsudo rosdep initrosdep update 1.6環(huán)境設(shè)置echo source /opt/ros/hydro/setup.bash /.bashrcsource /.bashrc1.7得到rosintallsudo apt-get install python-rosinstallTurtleBot 配置與運(yùn)行介紹TurtleBot的主頁面(安裝&運(yùn)行): /Robots/TurtleBotTurtleBot包(Package)的安裝過程安裝(turtlebot/Tutorials/hyd

7、ro/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-ftdi2. 之后加入sourse的bash中: . /opt/ros/hydro/setup.bash. 說明:a) 在終端中輸入這一行后很快就結(jié)束. b) 效果是在.bashrc(Home中的隱藏文件)的最后一行加

8、入了source /opt/ros/hydro/setup.bash, c) 效果等效于命令 echo source /opt/ros/hydro/setup.bash /.bashrc. 這樣的話就不用每次啟動(dòng)都輸入命令“source /opt/ros/hydro/setup.bash”了. d) 這個(gè)好像在安裝ROS時(shí)已經(jīng)執(zhí)行過了,不需要再執(zhí)行一次吧?3. 之后加入kobuki的udev規(guī)則: rosrun kobuki_ftdi create_udev_rules安裝完之后還需要加入網(wǎng)絡(luò)時(shí)間控制(turtlebot/Tutorials/hydro/Post-Installation Se

9、tup ), 否則與kokuki無法通訊. 1.首先安裝chrony:sudo apt-get install chrony2.再進(jìn)行syncNTP:sudo ntpdate 問題: 我重裝系統(tǒng)后再安裝turtlebot后,連接不上kokuki,但能正常連接Kinect。在命令行中,提示到bad callback, 因此說明有很多件沒有安裝成功。需要將其卸載重裝,可以網(wǎng)上搜索Uninstall turtlebot來卸載并重裝。運(yùn)行:1. 首先打開機(jī)器人核心服務(wù)程序:打開一個(gè)終端:鍵入: roscore /2. 系統(tǒng)的檢測(cè):New Terminal:輸入命令 roslaunch turtlebo

10、t_dashboard turtlebot_dashboard.launch 之后就會(huì)彈出kobukiDashboard-rqt3. kobuki的運(yùn)動(dòng)控制:a. New Terminal: TurtleBot Bringup roslaunch turtlebot_bringup minimal.launch 用于初始化機(jī)器人? b. New Terminal:Teleoperation/ Keyboard Teleop : roslaunch turtlebot_teleop keyboard_teleop.launch 開啟鍵盤控制這一節(jié)點(diǎn), 用于鍵盤控制機(jī)器人的運(yùn)動(dòng). 4. 應(yīng)用視覺傳

11、感器kinect并啟動(dòng)rviz界面: 3D Visualisation a. New Terminal: roslaunch turtlebot_bringup 3dsensor.launch; /將3Dsensor加入到系統(tǒng)中, 初始化kinect傳感器/kinect最好插到USB2.0上b. 啟動(dòng)rviz的view_robot :New Terminal: roslaunch turtlebot_rviz_launchers view_robot.launch / rviz中也整合了上一步的kobuki的運(yùn)動(dòng)控制c. 這個(gè)也可以在p3at上的kinect上運(yùn)行. 5. SLAM: 與之前的

12、兩項(xiàng)無關(guān). 需要重新開始, 否則就報(bào)錯(cuò)了. a. New Terminal: 開啟ROS服務(wù): roscoreb. New Terminal: 啟動(dòng)kobuki:roslaunch turtlebot_bringup minimal.launchc. New Terminal: 運(yùn)行g(shù)mapping Demo:roslaunch turtlebot_navigation gmapping_demo.launchd. 啟動(dòng)RVIZ的navigation:New Terminal: roslaunch turtlebot_rviz_launchers view_navigation.launche

13、. 保存建圖的結(jié)果:rosrun map_server map_saver -f /tmp/my_mapf. 說明: 該例程只用到kobuki, 沒有用到Kinect. 6. 退出:ctrl+cROS基礎(chǔ)的學(xué)習(xí)ROS Tutorials:/ROS/Tutorials 1.1.1 Installing and Configuring Your ROS Environment創(chuàng)建catkin workspace: 1. $ mkdir -p /catkin_ws/src /產(chǎn)生工作空間Workspace文件夾, 并產(chǎn)生源空間src文件夾2. $ cd /catk

14、in_ws/src3. $ catkin_init_workspace /a. 初始化工作空間/b. 在src中僅生成一指向/opt/ros/hydro/share/catkin/cmake/toplevel.cmake的CMakeLists.txt的鏈接,即CMakeLists.txt的內(nèi)容與toplevel.cmake的內(nèi)容一樣4. $ cd /catkin_ws/ /回到工作空間中5. $ catkin_make /build工程?a. 要在工作空間目錄下輸入該命令b. /會(huì)產(chǎn)生build,devel文件夾6. $ source devel/setup.bash /在當(dāng)前bash環(huán)境下讀

15、取并執(zhí)行devel/setup.bash 中的命令工作空間的結(jié)構(gòu)(包含包的):workspace_folder/ - WORKSPACE src/ - SOURCE SPACE CMakeLists.txt /怎么沒有這個(gè)呢 - Toplevel CMake file, provided by catkin package_1/ CMakeLists.txt - CMakeLists.txt file for package_1 package.xml - Package manifest for package_1 . package_n/ CMakeLists.txt - CMakeLis

16、ts.txt file for package_n package.xml - Package manifest for package_n1.1.2 Navigating the ROS Filesystem1. 查找某一包(package): 使用命令(例如)$ rospack find roscpp. 則會(huì)返回路徑: /opt/ros/hydro/share/roscpp2. 利用命令$ roscd roscpp, 則直接進(jìn)入/opt/ros/hydro/share/roscpp文件夾.3. $ pwd /報(bào)告當(dāng)前位置1.1.3 Creating a ROS Package上接1.1.1

17、1. $ cd /catkin_ws/src: 首先進(jìn)入src文件夾.2. $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp:創(chuàng)建包a. beginner_tutorials為產(chǎn)生的包的名稱, b. std_msgs, roscpp, rospy為依賴項(xiàng)(dependencies)1.1.4 Building a ROS Package上接1.1.31. $ cd /catkin_ws/ : 首先返回工作空間文件夾.2. $ ls src: 查看src文件夾中的內(nèi)容, a) 結(jié)果為beginner_tutorials CM

18、akeLists.txt. b) 鏈接CMakeLists.txt一直存在c) 命令ls為列出當(dāng)前文件夾下的東西3. $ catkin_make. /builda) 需要在工作空間目錄下運(yùn)行該命令b) 若在src文件夾下運(yùn)行該命令,會(huì)有錯(cuò)誤提示The specified base path /home/listname/catkin_ws_wmr/src contains a CMakeLists.txt but catkin_make must be invoked in the root of workspace.1.1.10 Creating a ROS msg and srv2.1產(chǎn)生

19、一個(gè)消息:1. 創(chuàng)建一個(gè)消息a) cd /catkin_ws/src/beginner_tutorials首先進(jìn)入文件夾. b) 再創(chuàng)建一個(gè)文件夾$ mkdir msg. c) $ echo int64 num msg/Num.msg: 創(chuàng)建一文件Num.msg, 并寫入一行話int64 num, 當(dāng)然還可以多加入幾行. 2. 對(duì)(beginner_tutorials中的)package.xml添加下面兩行: a) message_generationb) message_runtime3. 對(duì)(beginner_tutorials中的)CMakeList.txt做如下修改 :a) 在原有的f

20、ind_package(xxx)中加入“message_generation”b) 在catkin_package()中添加CATKIN_DEPENDS message_runtimec) 取消add_message_files()的注釋, 并修改為add_message_files(FILES Num.msg)d) 取消generate_messages(DEPENDENCIES std_msgs)的注釋2.2使用rosmsg$ rosmsg show beginner_tutorials/Num. 應(yīng)該輸出int64 num但但提示找不到該消息?使用查找命令$ rosmsg show Nu

21、m, 應(yīng)該輸出beginner_tutorials/Num:int64 num. 但還是找不到?3.1創(chuàng)建一個(gè)srv1. 創(chuàng)建一個(gè)srva) $ roscd beginner_tutorials/輸入這行命令后, 提升找不到 beginner_tutorials文件夾呢. /只能手動(dòng)進(jìn)入該文件夾了b) $ mkdir srv /創(chuàng)建一個(gè)srv文件夾c) $ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv把ROS系統(tǒng)文件中的rospy_tutorials包復(fù)制文件到srv文件夾下 2. 對(duì)beginner_tutorials中的CM

22、akeList.txt做如下修改: a) 在原有的find_package(xxx)中加入“message_generation”(在創(chuàng)建msg過程中已添加)b) 取消add_serivce_files( )的注釋, 并修改為add_serivce_files(FILES AddtwoInts.srv)3.2使用rossrv:使用命令:$ rossrv show beginner_tutorials/AddTwoInts. 應(yīng)該輸出int64 a int64 b - int64 sum. 但提示找不到該消息?使用查找命令 $ rossrv show AddTwoInts, 也只能查找到rosp

23、y_tutorials/AddTwoInts中的, 找不到beginner_tutorials/AddTwoInts中的. ?4.msg與srv共同的下一步在CMakeList.txt中, 取消generate_messages(DEPENDENCIES std_msgs)的注釋(創(chuàng)建msg階段已經(jīng)完成)在catkin_ws工作空間下輸入命令: $ catkin_make結(jié)果是生成了針對(duì)不同語言的頭文件: msg的C+頭文件在 /catkin_ws/devel/include/beginner_tutorials/. Python腳本在 /catkin_ws/devel/lib/python2

24、.7/dist-packages/beginner_tutorials/msg. 列表處理語言文件在 /catkin_ws/devel/share/common-lisp/ros/beginner_tutorials/msg/. 對(duì)于.srv, 生成的結(jié)果也類似. 生成成功!1.1.11 cc Writing a Simple Publisher and Subscriber (C+)上接1.1.4,不需要經(jīng)過生成msg與srv的過程1.0 進(jìn)入包c(diǎn)d /catkin_ws/src/beginner_tutorials1.1 創(chuàng)建Publisher Node:src/listener.cpp

25、文件(在該包的src文件夾下)2.1 創(chuàng)建Subscriber Node:src/talker.cpp 文件(在該包的src文件夾下)3.1 Building your nodes 生成可執(zhí)行文件a) 在CMakeLists.txt文件中(包的目錄下面的)最后面加入(CMakeLists.txt已經(jīng)在之前msg&srv中生成并處理了, 若沒經(jīng)過上面的msg&srv階段的處理, 也能正常編譯生成)add_executable(talker src/talker.cpp)/生成可執(zhí)行文件target_link_libraries(talker $catkin_LIBRARIES)add_depen

26、dencies(talker beginner_tutorials_generate_messages_cpp)/包的名錯(cuò)了也沒關(guān)系/若是在catkin_ws_wmr的工作空間下, 該行命令可以改為add_dependencies(talker wmrcontrol_generate_messages_cpp)add_executable(listener src/listener.cpp)/對(duì)于listener文件target_link_libraries(listener $catkin_LIBRARIES)add_dependencies(listener beginner_tutori

27、als_generate_messages_cpp)/若是在catkin_ws_wmr的工作空間下, 該行命令可以改為add_dependencies(listener wmrcontrol_generate_messages_cpp)b) 在工作空間目錄下, 輸入命令$ catkin_make. 該過程使用了CMakeList.txt. 生成的結(jié)果為在:devel/lib/beginner_tutorials下有talker與listener節(jié)點(diǎn)(可執(zhí)行文件). 并有提示:100% Built target talker;100% Built target listener1.1.13 cc

28、 Examining the Simple Publisher and Subscriber1. 打開ros服務(wù):roscore2. 運(yùn)行talkera. 另開一個(gè)terminal,進(jìn)入$ cd /catkin_ws, b. 再執(zhí)行命令$ source ./devel/setup.bash . 該命令等效于 source /catkin_ws(工作空間名)/devel/setup.bash?。該命令很快即執(zhí)行完畢c. $ rosrun beginner_tutorials(包的名稱) talker : 運(yùn)行Publisher. (不需要在工作空間目錄下) 之后會(huì)看到如下類似消息: INFO W

29、allTime: 1314931831.774057 hello world 1314931831.77. 3. 運(yùn)行l(wèi)istenera. 進(jìn)入$ cd /catkin_ws, b. 再執(zhí)行命令$ source ./devel/setup.bash c. $ rosrun beginner_tutorials(包的名稱) listener : 運(yùn)行Subscriber. (不需要在工作空間目錄下) 之后會(huì)看到如下類似消息:INFO WallTime: 1314931969.258941 /listener_17657_1314931968795I heard hello world 13149

30、31969.261.1.14 cc Writing a Simple Service and Client (C+) 需要在1.1.10 Creating a ROS msg and srv的基礎(chǔ)上來編寫, 因?yàn)樾枰尤腩^文件#include beginner_tutorials/AddTwoInts.h1. 寫一個(gè)服務(wù)器節(jié)點(diǎn): 進(jìn)入文件夾cd /catkin_ws/src/beginner_tutorials, 編寫src/add_two_ints_server.cpp 2. 寫一個(gè)客戶端節(jié)點(diǎn): 進(jìn)入文件夾cd /catkin_ws/src/beginner_tutorials編寫src/a

31、dd_two_ints_client.cpp 3. Build節(jié)點(diǎn)a) 在/catkin_ws/src/beginner_tutorials/CMakeLists.txt中加入如下幾行: /把之前生成talker與listener的相關(guān)部分注釋掉add_executable(add_two_ints_server src/add_two_ints_server.cpp)/編譯成可執(zhí)行文件target_link_libraries(add_two_ints_server $catkin_LIBRARIES)/添加動(dòng)態(tài)鏈接庫add_dependencies(add_two_ints_server

32、beginner_tutorials_gencpp)/包的名+gencpp?add_executable(add_two_ints_client src/add_two_ints_client.cpp)/clienttarget_link_libraries(add_two_ints_client $catkin_LIBRARIES)add_dependencies(add_two_ints_client beginner_tutorials_gencpp)b) 再進(jìn)行: cd /catkin_ws - catkin_make : 結(jié)果是在devel/lib/beginner_tutorial

33、s下生成了兩個(gè)可執(zhí)行文件1.1.16 cc Examining the Simple Service and Client1. 打開ros服務(wù):roscore2. 運(yùn)行服務(wù)器端:a) 還需要再進(jìn)入$ cd /catkin_ws, 再執(zhí)行命令$ source ./devel/setup.bash b) 運(yùn)行add_two_ints_server :輸入$ rosrun beginner_tutorials add_two_ints_server. 之后會(huì)看到如下類似消息: INFO 1394710514.388776396: Ready to add two ints 3. 運(yùn)行客戶端a) 還需

34、要再進(jìn)入$ cd /catkin_ws, 再執(zhí)行命令$ source ./devel/setup.bash b) 運(yùn)行add_two_ints_server :輸入$ rosrun beginner_tutorials add_two_ints_client 1 3. 之后會(huì)看到如下類似消息: INFO 1394710671.682839350: Sum: 4. 在客戶端terminal中可以看到信息 INFO 1394710671.682255841: request: x=1, y=3; INFO 1394710671.682339580: sending back response: 4

35、進(jìn)一步的服務(wù)器客戶端例程: 1.1.17 Recording and playing back data? /ROS/Tutorials/Recording%20and%20playing%20back%20data P3-AT/DXROSARIA配置與運(yùn)行網(wǎng)站主頁 /ROSARIA How to use ROSARIA:/ROSARIA/Tutorials/How%20to%20use%20ROSARIA 1.2創(chuàng)建ROS工作空間之前若沒有加入啟動(dòng)命令. /opt/ros/hydro/

36、setup.bash的話, 則加入. 為了創(chuàng)建一個(gè)關(guān)于ROSARIA的工作空間, 將學(xué)習(xí)ROS基礎(chǔ)階段的catkin_ws文件夾重命名為catkin_ws_Base, 再新建一個(gè)工作空間catkin_ws:mkdir -p /catkin_ws/srccd /catkin_ws/srccatkin_init_workspace/cd /catkin_wscatkin_make/build /這后幾步是需要做的,因?yàn)樵?。4中要運(yùn)行devel/setup。dash1.3下載ROSARIA到該工作空間中. 首先進(jìn)入src文件夾, 之后運(yùn)行命令git clone /這次使用github網(wǎng)站就沒有問題

37、, 結(jié)果是在src文件夾下得到了rosaria包. 包中包含RosAria.cpp文件 在安裝ARIA后再下載該包應(yīng)該也可以?1.4 安裝ARIA以及Build ROSARIA1. source /catkin_ws/devel/setup.basha) /在當(dāng)前bash環(huán)境下執(zhí)行文件/catkin_ws/devel/setup.bash中的命令. b) 或者把這項(xiàng)添加到.bashrc文件中再執(zhí)行.bashrc文件:echo source /catkin_ws/devel/setup.bash /.bashrc - source /.bashrc2. 得到包之后, 編譯它們:a) rosdep

38、 update/更新b) rosdep install rosaria/運(yùn)行完提示ARIA has been installed in /usr/local/Aria,installation successful, 再等會(huì),就有 All required rosdeps installed successfullyi. 這個(gè)應(yīng)該與1.3中的rosaria包沒有關(guān)系, 應(yīng)該是從ROS網(wǎng)站上安裝rosariaii. 看看是不是安裝在了/usr/local/Aria中?iii. 重裝系統(tǒng)后再次安裝時(shí),出現(xiàn)問題:apt: command sudo apt-get install checkinsta

39、ll failed。 運(yùn)行sudo apt-get update時(shí)出現(xiàn)問題Some index files failed to download. They have been ignored, or old ones used instead. 解決方法:sudo rm /var/lib/apt/lists/* -vf 刪除相應(yīng)文件c) catkin_make/與上次的catkin_make顯示出不同的結(jié)果;/該命令要在該工作空間中/i. 對(duì)于包來講, 名稱不區(qū)分大小寫, 比如當(dāng)有兩個(gè)包rosaria與ROSARIA時(shí), 會(huì)有如下提示:Multiple packages found with

40、 the same name rosaria:- rosaria- ROSARIA”ii. 當(dāng)在catkin_ws文件夾下使用命令catkin_make時(shí), 會(huì)用到文件src/rosaria/CMakeList.txtiii. 是這一步在devel/lib下生成了rosaria可執(zhí)行文件?關(guān)于CMakeList.txt文件(不用改):add_executable(RosAria RosAria.cpp)add_dependencies(RosAria rosaria_gencfg)add_dependencies(RosAria rosaria_gencpp)target_link_libra

41、ries(RosAria $catkin_LIBRARIES $Boost_LIBRARIES Aria pthread dl rt)set_target_properties(RosAria PROPERTIES COMPILE_FLAGS -fPIC)generate_messages( DEPENDENCIES geometry_msgs std_msgs)/要包括geometry_msgs1.5 運(yùn)行roscore: 運(yùn)行roscore1.6 運(yùn)行RosAria節(jié)點(diǎn)1. source /RosAria/devel/setup.bash. 若不在第一步運(yùn)行該命令,則會(huì)報(bào)錯(cuò)rospack

42、Error: stack/package rosaria not found2. 運(yùn)行啟動(dòng)該節(jié)點(diǎn)的命令: rosrun rosaria RosAriaa) 不需要到catkin_ws文件夾下. b) 命令rosrun 允許直接運(yùn)行一個(gè)包里面的節(jié)點(diǎn)(可執(zhí)行程序): rosrun package_name node_name.c) 節(jié)點(diǎn)的位置為catkin_wsdevellibrosariaRosAria3. (從運(yùn)行下面4可知不需要這一步)設(shè)置網(wǎng)絡(luò)地址export ROS_IP=77. 4. 配置好USB轉(zhuǎn)串口后就可以連接了, 連接成功時(shí)輸出的提示信息為(退出連接的話,

43、直接Ctrl+C就可以了.): INFO 1394765069.684460124: RosAria: using port: /dev/ttyUSB0Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0.Syncing 0Syncing 1Syncing 2Connected to robot.Name: RoboticsWorld_4129Type: PioneerSubtype: p3at-shArConfig: Config version: 2.0Loaded robo

44、t parameters from p3at-sh.pArRobotConnector: Connecting to MTX batteries (if neccesary).ArRobotConnector: Connecting to MTX sonar (if neccesary). INFO 1394765070.477106453: Setting TicksMM from robot EEPROM: 138 INFO 1394765070.480042783: Setting DriftFactor from robot EEPROM: 0 INFO 1394765070.4832

45、54729: Setting RevCount from robot EEPROM: 32550 INFO 1394765070.526489547: RosAria: publishing new recharge state 0. INFO 1394765070.526596408: RosAria: publishing new motors state 0. INFO 1394765072.184292718: RosAria: publishing new motors state 1.說明:1. 一問題的解決:在運(yùn)行后面連接Android時(shí), 再回頭運(yùn)行此命令, 則就去src/ro

46、saria找該可執(zhí)行文件了, 因此從路徑上就錯(cuò)了, 不知是那一步影響了該命令的執(zhí)行. 不過用1.4中的catkin_make命令重新編譯一下就又能正常連接了. 2. 若USB轉(zhuǎn)串口沒有配置好, 則會(huì)出現(xiàn)下方的錯(cuò)誤提示, 配置方法請(qǐng)見下方的USB轉(zhuǎn)串口配置. INFO 1394760211.482514856: RosAria: using port: /dev/ttyUSB0/這說明使用的COM編號(hào)為ttyUSB0Could not connect to simulator, connecting to robot through serial port /dev/ttyUSB0.ArSeri

47、alConnection: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.ERROR 1394760211.511075792: RosAria: ARIA could not connect to robot! (Check port para

48、meter is correct, and permissions on port device.)FATAL 1394760211.511173101: RosAria: ROS node setup failed. 1.9 Topics and Commands1. 獲得姿態(tài): rostopic echo /RosAria/pose / 可以在另一terminal的根命令a) /RosAria/pose為Topic名稱b) .echo 應(yīng)該是請(qǐng)求輸出的命令c) 運(yùn)行結(jié)果:2. 線速度控制量的設(shè)置(0.1m/s):rostopic pub -1 /RosAria/cmd_vel geomet

49、ry_msgs/Twist linear: x: 0.1, y: 0.0, z: 0.0, angular: x: 0.0, y: 0.0, z: 0.0a) /RosAria/cmd_vel 指話題名字 Topic, 不能是/cmd_vel 或者cmd_velb) geometry_msgs/Twist 為數(shù)據(jù)類型 Messagec) linear: x: 0.1, y: 0.0, z: 0.0, angular: x: 0.0, y: 0.0, z: 0.0 合成一個(gè)消息d) 運(yùn)行結(jié)果:機(jī)器人做相應(yīng)運(yùn)動(dòng)并提升publishing and latching message for 3.0 s

50、econds。以及 INFO 1395025704.461141760: new speed: 100.00,-0.30(1395025704.461)3. 角速度控制量的設(shè)置(0.1rad/s?):rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist linear: x: 0.1, y: 0.0, z: 0.0, angular: x: 0.0, y: 0.0, z: 0.14. 也可以把2,3合成起來. 5. 其他的? sonar, bumpers, acceleration parameters?如何用?更多ROS API請(qǐng)見:http

51、://ROSARIA ROSARIA鍵盤控制:1. mkdir -p /RosAriaKeyboard/src2. 創(chuàng)建包c(diǎn)atkin_create_pkg RosAriaKeyboard std_msgs rospy roscpp編寫程序:3. 編寫rosaria_teleop_key.cpp文件在CMakeList.txt文件夾下加入如下幾行命令(Bluks給我的程序是用rosbuild編譯方法。需要做相應(yīng)借鑒并修改)1.find_package(PkgConfig REQUIRED)/若無此 ncurses相關(guān)編譯命令, 會(huì)報(bào)錯(cuò) initscr未定義pkg_che

52、ck_modules ( ncurses+ REQUIRED ncurses+)/ncurses相關(guān)add_executable(rosaria_teleop_key src/rosaria_teleop_key.cpp)target_link_libraries(rosaria_teleop_key $catkin_LIBRARIES)target_link_libraries(rosaria_teleop_key $ncurses+_LIBRARIES)/ncurses相關(guān)add_dependencies(rosaria_teleop_key wmrcontrol_generate_mes

53、sages_cpp)3. 運(yùn)行命令catkin_make: 結(jié)果是在devel/lib/wmrcontrol下生成了一個(gè)rosaria_teleop_key的可執(zhí)行文件4. 執(zhí)行該節(jié)點(diǎn)a). 進(jìn)入工作空間文件夾 cd /catkin_ws_wmrb). 執(zhí)行命令 $ source devel/setup.bashc). 運(yùn)行節(jié)點(diǎn):$rosrun RosAriaKeyboard rosaria_teleop_key。需要進(jìn)入工作空間文件夾, 因?yàn)樵谇耙徊揭獔?zhí)行 $ source devel/setup.bashROSARIA程序控制方式:與鍵盤控制大致相同, 執(zhí)行節(jié)點(diǎn)時(shí)注意運(yùn)行下面的命令$ 為避

54、免混亂,1. 新建工程mkdir -p /RosAriaCode/src2. 創(chuàng)建包: catkin_create_pkg RosAriaCode std_msgs rospy roscpp3. 處理CMakeListadd_executable(rosaria_teleop_code src/rosaria_teleop_code.cpp)target_link_libraries(rosaria_teleop_code $catkin_LIBRARIES)add_dependencies(rosaria_teleop_code RosAriaCode_generate_messages_cpp)4. catkin_make一下。5. 執(zhí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論