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

下載本文檔

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

文檔簡介

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

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

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

4、un rqt_robot_steering rqt_robot_steering rosrun rqt_gui rqt_guirostopic helprosnode helprosnode info /RosAriarosnode info /rosaria_teleop_key_1rosnode listecho $ROS_HOSTNAMEROS安裝安裝教程:sudo sh -c 'echo "deb /ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest

5、.list'1.3 安裝keyswget /ros.key -O - | sudo apt-key add -1.4 安裝使Debian包為最新:sudo apt-get updateFull安裝:sudo apt-get install ros-hydro-desktop-full會出現(xiàn)一個界面,利用Tab選擇Yes即可成功則提示:ldconfig deferred processing now taking place找到可以使用的包:apt-cache search ros-hydro1.5初始化rosdepsudo rosdep initrosd

6、ep update 1.6環(huán)境設置echo "source /opt/ros/hydro/setup.bash" >> /.bashrcsource /.bashrc1.7得到rosintallsudo apt-get install python-rosinstallTurtleBot 配置與運行介紹TurtleBot的主頁面安裝&運行:TurtleBot包(Package)的安裝過程安裝turtlebot/Tutorials/hydro/Installation :按照Debs Installation按照方法來安裝:1. 首先安裝:> sud

7、o 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) 在終端中輸入這一行后很快就完畢. b) 效果是在.bashrcHome中的隱藏文件的最后一行參加了"source /opt/ros/hydro/setup.bash", c) 效果等效

8、于命令> echo "source /opt/ros/hydro/setup.bash" >> /.bashrc. 這樣的話就不用每次啟動都輸入命令“source /opt/ros/hydro/setup.bash了. d) 這個好似在安裝ROS時已經(jīng)執(zhí)行過了,不需要再執(zhí)行一次吧.3. 之后參加kobuki的udev規(guī)則:> rosrun kobuki_ftdi create_udev_rules安裝完之后還需要參加網(wǎng)絡時間控制turtlebot/Tutorials/hydro/Post-Installation Setup , 否則與kokuki無

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

10、d turtlebot_dashboard.launch 之后就會彈出kobukiDashboard-rqt3. kobuki的運動控制:a. New Terminal: TurtleBot Bringup > roslaunch turtlebot_bringup minimal.launch 用于初始化機器人.b. New Terminal:Teleoperation/ Keyboard Teleop : roslaunch turtlebot_teleop keyboard_teleop.launch 開啟鍵盤控制這一節(jié)點, 用于鍵盤控制機器人的運動. 4. 應用視覺傳感器kine

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

12、 需要重新開場, 否則就報錯了. a. New Terminal:開啟ROS效勞:roscoreb. New Terminal:啟動kobuki:roslaunch turtlebot_bringup minimal.launchc. New Terminal:運行g(shù)mapping Demo:roslaunch turtlebot_navigation gmapping_demo.launchd. 啟動RVIZ的navigation:New Terminal:roslaunch turtlebot_rviz_launchers view_navigation.launche. 保存建圖的結(jié)果:

13、rosrun map_server map_saver -f /tmp/my_mapf. 說明: 該例程只用到kobuki, 沒有用到Kinect. 6. 退出:ctrl+cROS根底的學習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 /catkin_ws/src3. $ catkin_init_workspace /a. 初始化

14、工作空間/b. 在src中僅生成一指向/opt/ros/hydro/share/catkin/cmake/toplevel ake的CMakeLists.t*t的,即CMakeLists.t*t的容與toplevel ake的容一樣4. $ cd /catkin_ws/ /回到工作空間中5. $ catkin_make /build工程.a. 要在工作空間目錄下輸入該命令b. /會產(chǎn)生build,devel文件夾6. $ source devel/setup.bash /在當前bash環(huán)境下讀取并執(zhí)行devel/setup.bash 中的命令工作空間的構(gòu)造包含包的:workspace_fold

15、er/ - WORKSPACE src/ - SOURCE SPACE CMakeLists.t*t /怎么沒有這個呢 - 'Toplevel' CMake file, provided by catkin package_1/ CMakeLists.t*t - CMakeLists.t*t file for package_1 package.*ml - Package manifest for package_1 . package_n/ CMakeLists.t*t - CMakeLists.t*t file for package_n package.*ml - Pac

16、kage manifest for package_n1.1.2 Navigating the ROS Filesystem1. 查找*一包package:使用命令例如$ rospack find roscpp. 則會返回路徑: /opt/ros/hydro/share/roscpp2. 利用命令$ roscd roscpp, 則直接進入/opt/ros/hydro/share/roscpp文件夾.3. $ pwd /報告當前位置1.1.3 Creating a ROS Package1. $ cd /catkin_ws/src: 首先進入src文件夾.2. $ catkin_create_p

17、kg beginner_tutorials std_msgs rospy roscpp:創(chuàng)立包a. beginner_tutorials為產(chǎn)生的包的名稱, b. std_msgs, roscpp, rospy為依賴項(dependencies1.1.4 Building a ROS Package1. $ cd /catkin_ws/ : 首先返回工作空間文件夾.2. $ ls src: 查看src文件夾中的容, a) 結(jié)果為beginner_tutorials CMakeLists.t*t. b) CMakeLists.t*t一直存在c) 命令ls為列出當前文件夾下的東西3. $ catki

18、n_make. /builda) 需要在工作空間目錄下運行該命令b) 假設在src文件夾下運行該命令,會有錯誤提示The specified base path "/home/listname/catkin_ws_wmr/src" contains a CMakeLists.t*t but "catkin_make" must be invoked in the root of workspace.1.1.10 Creating a ROS msg and srv2.1產(chǎn)生一個消息:1. 創(chuàng)立一個消息a) cd /catkin_ws/src/beginn

19、er_tutorials首先進入文件夾. b) 再創(chuàng)立一個文件夾$ mkdir msg. c) $ echo "int64 num" > msg/Num.msg: 創(chuàng)立一文件Num.msg, 并寫入一行話int64 num, 當然還可以多參加幾行. 2. 對(beginner_tutorials中的)package.*ml添加下面兩行: a) <build_depend>message_generation</build_depend>b) <run_depend>message_runtime</run_depend>

20、3. 對(beginner_tutorials中的)CMakeList.t*t做如下修改 :a) 在原有的find_package*中參加“message_generationb) 在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.

21、應該輸出int64 num但但提示找不到該消息.使用查找命令$ rosmsg show Num, 應該輸出beginner_tutorials/Num:int64 num. 但還是找不到.3.1創(chuàng)立一個srv1. 創(chuàng)立一個srva) $ roscd beginner_tutorials/輸入這行命令后, 提升找不到 beginner_tutorials文件夾呢. /只能手動進入該文件夾了b) $ mkdir srv /創(chuàng)立一個srv文件夾c) $ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv把ROS系統(tǒng)文件中的rospy_tut

22、orials包復制文件到srv文件夾下2. 對beginner_tutorials中的CMakeList.t*t做如下修改: a) 在原有的find_package*中參加“message_generation在創(chuàng)立msg過程中已添加b) 取消add_serivce_files( )的注釋, 并修改為add_serivce_files(FILESAddtwoInts.srv)3.2使用rossrv:使用命令:$ rossrv show beginner_tutorials/AddTwoInts. 應該輸出int64 a int64 b - int64 sum. 但提示找不到該消息.使用查找命令

23、 $ rossrv show AddTwoInts, 也只能查找到rospy_tutorials/AddTwoInts中的, 找不到beginner_tutorials/AddTwoInts中的. .4.msg與srv共同的下一步在CMakeList.t*t中, 取消generate_messages(DEPENDENCIES std_msgs)的注釋創(chuàng)立msg階段已經(jīng)完成在catkin_ws工作空間下輸入命令: $ catkin_make結(jié)果是生成了針對不同語言的頭文件: msg的C+頭文件在/catkin_ws/devel/include/beginner_tutorials/. Pyth

24、on腳本在/catkin_ws/devel/lib/python2.7/dist-packages/beginner_tutorials/msg. 列表處理語言文件在/catkin_ws/devel/share/mon-lisp/ros/beginner_tutorials/msg/. 對于.srv, 生成的結(jié)果也類似. 生成成功!1.1.11 cc Writing a Simple Publisher and Subscriber (C+)上接1.1.4,不需要經(jīng)過生成msg與srv的過程1.0 進入包cd /catkin_ws/src/beginner_tutorials1.1 創(chuàng)立Pub

25、lisher Node:src/listener.cpp 文件在該包的src文件夾下2.1 創(chuàng)立Subscriber Node:src/talker.cpp 文件在該包的src文件夾下3.1 Building your nodes 生成可執(zhí)行文件a) 在CMakeLists.t*t文件中包的目錄下面的最后面參加CMakeLists.t*t已經(jīng)在之前msg&srv中生成并處理了, 假設沒經(jīng)過上面的msg&srv階段的處理, 也能正常編譯生成add_e*ecutable(talker src/talker.cpp)/生成可執(zhí)行文件target_link_libraries(talk

26、er $catkin_LIBRARIES)add_dependencies(talker beginner_tutorials_generate_messages_cpp)/包的名錯了也沒關系/假設是在catkin_ws_wmr的工作空間下,該行命令可以改為add_dependencies(talker wmrcontrol_generate_messages_cpp)add_e*ecutable(listener src/listener.cpp)/對于listener文件target_link_libraries(listener $catkin_LIBRARIES)add_depende

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

28、ilt target listener1.1.13 cc E*amining the Simple Publisher and Subscriber1. 翻開ros效勞:roscore2. 運行talkera. 另開一個terminal,進入$ cd /catkin_ws, b. 再執(zhí)行命令$ source ./devel/setup.bash . 該命令等效于source /catkin_ws工作空間名)/devel/setup.bash.。該命令很快即執(zhí)行完畢c. $ rosrun beginner_tutorials包的名稱talker : 運行Publisher. (不需要在工作空間目

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

30、ld 1314931969.261.1.14 cc Writing a Simple Service and Client (C+)需要在1.1.10 Creating a ROS msg and srv的根底上來編寫, 因為需要參加頭文件*include "beginner_tutorials/AddTwoInts.h"1. 寫一個效勞器節(jié)點: 進入文件夾cd /catkin_ws/src/beginner_tutorials, 編寫src/add_two_ints_server.cpp 2. 寫一個客戶端節(jié)點: 進入文件夾cd /catkin_ws/src/beginn

31、er_tutorials編寫src/add_two_ints_client.cpp 3. Build節(jié)點a) 在/catkin_ws/src/beginner_tutorials/CMakeLists.t*t中參加如下幾行: /把之前生成talker與listener的相關局部注釋掉add_e*ecutable(add_two_ints_server src/add_two_ints_server.cpp)/編譯成可執(zhí)行文件target_link_libraries(add_two_ints_server $catkin_LIBRARIES)/添加動態(tài)庫add_dependencies(add

32、_two_ints_server beginner_tutorials_gencpp)/包的名+gencpp?add_e*ecutable(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) 再進展: cd /catkin_ws -> catkin_make : 結(jié)果是在devel/

33、lib/beginner_tutorials下生成了兩個可執(zhí)行文件1.1.16 cc E*amining the Simple Service and Client1. 翻開ros效勞:roscore2. 運行效勞器端:a) 還需要再進入$ cd /catkin_ws, 再執(zhí)行命令$ source ./devel/setup.bash b) 運行add_two_ints_server :輸入$ rosrun beginner_tutorials add_two_ints_server. 之后會看到如下類似消息: INFO 1394710514.388776396: Ready to add t

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

35、ding back response: 4進一步的效勞器客戶端例程: s:/github./fairlight1337/ros_service_e*amples/1.1.17 Recording and playing back data.20and%20playing%20back%20dataP3-AT/D*ROSARIA配置與運行主頁 How to use ROSARIA:A1.2創(chuàng)立ROS工作空間之前假設沒有參加啟動命令. /opt/ros/hydro/setup.bash的話, 則參加. 為了創(chuàng)立一個關于ROSARIA的工作空間, 將學習ROS根底階段的catkin_ws文件夾重命名

36、為catkin_ws_Base, 再新建一個工作空間catkin_ws:mkdir -p /catkin_ws/srccd /catkin_ws/srccatkin_init_workspace/cd /catkin_wscatkin_make/build/這后幾步是需要做的,因為在1。4中要運行devel/setup。dash1.3下載ROSARIA到該工作空間中. 首先進入src文件夾, 之后運行命令git clone s:/github./amor-ros-pkg/rosaria.git /這次使用github就沒有問題, 結(jié)果是在src文件夾下得到了rosaria包. 包中包含RosA

37、ria.cpp文件 在安裝ARIA后再下載該包應該也可以?1.4 安裝ARIA以及Build ROSARIA1. source /catkin_ws/devel/setup.basha) /在當前bash環(huán)境下執(zhí)行文件/catkin_ws/devel/setup.bash中的命令. b) 或者把這項添加到.bashrc文件中再執(zhí)行.bashrc文件:echo "source /catkin_ws/devel/setup.bash" >> /.bashrc -> source /.bashrc2. 得到包之后, 編譯它們:a) rosdep update/更

38、新b) rosdep install rosaria/運行完提示ARIA has been installed in /usr/local/Aria,installation successful, 再等會,就有All required rosdeps installed successfullyi. 這個應該與1.3中的rosaria包沒有關系, 應該是從ROS上安裝rosariaii. 看看是不是安裝在了/usr/local/Aria中?iii. 重裝系統(tǒng)后再次安裝時,出現(xiàn)問題:apt: mand sudo apt-get install checkinstall failed。運行sud

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

40、uot;rosaria":- rosaria- ROSARIAii. 當在catkin_ws文件夾下使用命令catkin_make時, 會用到文件src/rosaria/CMakeList.t*tiii. 是這一步在devel/lib下生成了rosaria可執(zhí)行文件?關于CMakeList.t*t文件(不用改:add_e*ecutable(RosAria RosAria.cpp)add_dependencies(RosAria rosaria_gencfg)add_dependencies(RosAria rosaria_gencpp)target_link_libraries(Ro

41、sAria $catkin_LIBRARIES $Boost_LIBRARIES Aria pthread dl rt)set_target_properties(RosAria PROPERTIES PILE_FLAGS "-fPIC")generate_messages( DEPENDENCIES geometry_msgs std_msgs)/要包括geometry_msgs1.5 運行roscore: 運行roscore1.6 運行RosAria節(jié)點1. source /RosAria/devel/setup.bash. 假設不在第一步運行該命令,則會報錯rospa

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

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 ro

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

45、3254729: 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. 一問題的解決:在運行后面連接Android時, 再回頭運行此命令, 則就去src/

46、rosaria找該可執(zhí)行文件了, 因此從路徑上就錯了, 不知是那一步影響了該命令的執(zhí)行. 不過用1.4中的catkin_make命令重新編譯一下就又能正常連接了. 2. 假設USB轉(zhuǎn)串口沒有配置好, 則會出現(xiàn)下方的錯誤提示, 配置方法請見下方的USB轉(zhuǎn)串口配置. INFO 1394760211.482514856: RosAria: using port: /dev/ttyUSB0/這說明使用的編號為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

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

49、eometry_msgs/Twist 'linear: *: 0.1, y: 0.0, z: 0.0, angular: *: 0.0, y: 0.0, z: 0.0'a) /RosAria/cmd_vel 指話題名字Topic,不能是/cmd_vel 或者cmd_velb) geometry_msgs/Twist 為數(shù)據(jù)類型Messagec) 'linear: *: 0.1, y: 0.0, z: 0.0, angular: *: 0.0, y: 0.0, z: 0.0' 合成一個消息d) 運行結(jié)果:機器人做相應運動并提升publishing and latc

50、hing message for 3.0 seconds。以及 INFO 1395025704.461141760: new speed: 100.00,-0.30(1395025704.461)3. 角速度控制量的設置0.1rad/s.:rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist 'linear: *: 0.1, y: 0.0, z: 0.0, angular: *: 0.0, y: 0.0, z: 0.1'4. 也可以把2,3合成起來. 5. 其他的.sonar, bumpers, acceleration pa

51、rameters.如何用.更多ROS API請見:ROSARIA鍵盤控制:1. mkdir -p /RosAriaKeyboard/src2. 創(chuàng)立包catkin_create_pkg RosAriaKeyboard std_msgs rospy roscpp編寫程序:3. 編寫rosaria_teleop_key.cpp文件在CMakeList.t*t文件夾下參加如下幾行命令(Bluks給我的程序是用rosbuild編譯方法。需要做相應借鑒并修改)find_package(PkgConfig REQUIRED)/假設無此ncurses相關編譯命令, 會報錯initscr未定義pkg_chec

52、k_modules ( ncurses+ REQUIRED ncurses+)/ncurses相關add_e*ecutable(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相關add_dependencies(rosaria_teleop_key wmrcontrol_generate_mess

53、ages_cpp)3. 運行命令catkin_make: 結(jié)果是在devel/lib/wmrcontrol下生成了一個rosaria_teleop_key的可執(zhí)行文件4. 執(zhí)行該節(jié)點a). 進入工作空間文件夾cd /catkin_ws_wmrb). 執(zhí)行命令$ source devel/setup.bashc). 運行節(jié)點:$rosrun RosAriaKeyboard rosaria_teleop_key。需要進入工作空間文件夾,因為在前一步要執(zhí)行$ source devel/setup.bashROSARIA程序控制方式:與鍵盤控制大致一樣, 執(zhí)行節(jié)點時注意運行下面的命令$ 為防止混亂,1

54、. 新建工程mkdir -p /RosAriaCode/src2. 創(chuàng)立包:catkin_create_pkg RosAriaCode std_msgs rospy roscpp3. 處理CMakeListadd_e*ecutable(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.

55、catkin_make一下。5. 執(zhí)行:source devel/setup.bashrosrun wmrcontrol rosaria_teleop_codeAndroid遙控Android Teleoperate Pioneer 3at Robot. 見:/iPhone%20Teleop%20with%20ROSARIA/Android%20teleop%20Pioneer%203atandroid_sensors_driver/ Tutorials/Connecting to a ROS Master進入之前下載的ROSARIA包的文件夾中cd /catkin_ws/src/rosari

56、a網(wǎng)頁上是不是寫錯了.沒有ROSARIA. 只能自己寫命令git clone s:/github./amor-ros-pkg/ROSARIA.git, 結(jié)果還可以, 結(jié)果是在src文件夾中得到了ROSARIA文件夾. rosaria與ROSARIA文件夾一樣大小, 是不是就是一樣的.3.2 Step2使用命令:Path_from_Home/ROSARIA$ rosmake但是在rosaria中使用rosmake 就可以, 結(jié)果為Built 52 packages with 0 failures., 但在ROSARIA下就報錯. 上是不是寫錯了.3.3 Step3進入文件夾, 上寫的命令$ roscd ROSARIA, 但進入不了, 只能手動進入rosaria了, 好似roscd也不能使用. 創(chuàng)立一個文件:命令:gedit android_teleop.cpp & 把上的代碼

溫馨提示

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

評論

0/150

提交評論