版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-機(jī)器人操作系統(tǒng)ROS: 典型功能實(shí)現(xiàn)方法詳解寶全. z-ROS體系2ROS安裝3TurtleBot 配置與運(yùn)行3ROS根底的學(xué)習(xí)4P3-AT/D*8ROSARIA配置與運(yùn)行8ROSARIA鍵盤控制:10ROSARIA程序控制方式:11Android遙控11TurtleBot的鍵盤控制:12配置USB轉(zhuǎn)串口12CmakeList.t*t的制作13圖像的發(fā)布與接收13圖像的接收,處理與顯示13Kinect端獲取圖像14置USB 攝像頭圖像獲取15外接USB攝像頭圖像獲取17KinectSkeleton17TF Listener(綜合實(shí)現(xiàn)人體跟蹤)19Voice22語(yǔ)言識(shí)別pocketsphin*
2、22識(shí)別結(jié)果的接收與顯示23語(yǔ)言發(fā)布23綜合: 捕獲String并發(fā)聲25兩主機(jī)通訊ROS_Network25ROS_OpenTLD27ROS學(xué)習(xí)材料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安裝時(shí),需要先建一個(gè)工作空間,然后把gitgub上相應(yīng)的包下載到src文件夾下,再執(zhí)行該語(yǔ)句。具體見(jiàn) “ROSARIA配置與運(yùn)行一節(jié)。環(huán)境變量設(shè)置: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會(huì)出現(xiàn)一個(gè)界面,利用Tab選擇Yes即可成功則提示:ldconfig deferred processing now taking place找到可以使用的包:apt-cache search ros-hydro1.5初始化rosdepsudo rosdep initrosd
6、ep 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è)面安裝&運(yùn)行:TurtleBot包(Package)的安裝過(guò)程安裝turtlebot/Tutorials/hydro/Installation :按照Debs Installation按照方法來(lái)安裝: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. 說(shuō)明:a) 在終端中輸入這一行后很快就完畢. b) 效果是在.bashrcHome中的隱藏文件的最后一行參加了"source /opt/ros/hydro/setup.bash", c) 效果等效
8、于命令> echo "source /opt/ros/hydro/setup.bash" >> /.bashrc. 這樣的話就不用每次啟動(dòng)都輸入命令“source /opt/ros/hydro/setup.bash了. d) 這個(gè)好似在安裝ROS時(shí)已經(jīng)執(zhí)行過(guò)了,不需要再執(zhí)行一次吧.3. 之后參加kobuki的udev規(guī)則:> rosrun kobuki_ftdi create_udev_rules安裝完之后還需要參加網(wǎng)絡(luò)時(shí)間控制turtlebot/Tutorials/hydro/Post-Installation Setup , 否則與kokuki無(wú)
9、法通訊. 1.首先安裝chrony:sudo apt-get install chrony2.再進(jìn)展synTP:sudo ntpdate ntp.ubuntu.問(wèn)題: 我重裝系統(tǒng)后再安裝turtlebot后,連接不上kokuki,但能正常連接Kinect。在命令行中,提示到bad callback, 因此說(shuō)明有很多件沒(méi)有安裝成功。需要將其卸載重裝,可以網(wǎng)上搜索Uninstall turtlebot來(lái)卸載并重裝。運(yùn)行:1. 首先翻開機(jī)器人核心效勞程序:翻開一個(gè)終端:鍵入:roscore /2. 系統(tǒng)的檢測(cè):New Terminal:輸入命令roslaunch turtlebot_dashboar
10、d 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)用視覺(jué)傳感器kine
11、ct并啟動(dòng)rviz界面:3D Visualisationa. 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:與之前的兩項(xiàng)無(wú)關(guān).
12、 需要重新開場(chǎng), 否則就報(bào)錯(cuò)了. a. New Terminal:開啟ROS效勞:roscoreb. New Terminal:?jiǎn)?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. 保存建圖的結(jié)果:
13、rosrun map_server map_saver -f /tmp/my_mapf. 說(shuō)明: 該例程只用到kobuki, 沒(méi)有用到Kinect. 6. 退出:ctrl+cROS根底的學(xué)習(xí)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. /會(huì)產(chǎn)生build,devel文件夾6. $ source devel/setup.bash /在當(dāng)前bash環(huán)境下讀取并執(zhí)行devel/setup.bash 中的命令工作空間的構(gòu)造包含包的:workspace_fold
15、er/ - WORKSPACE src/ - SOURCE SPACE CMakeLists.t*t /怎么沒(méi)有這個(gè)呢 - '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. 則會(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 Package1. $ cd /catkin_ws/src: 首先進(jìn)入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為依賴項(xiàng)(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為列出當(dāng)前文件夾下的東西3. $ catki
18、n_make. /builda) 需要在工作空間目錄下運(yùn)行該命令b) 假設(shè)在src文件夾下運(yùn)行該命令,會(huì)有錯(cuò)誤提示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)生一個(gè)消息:1. 創(chuàng)立一個(gè)消息a) cd /catkin_ws/src/beginn
19、er_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.*ml添加下面兩行: a) <build_depend>message_generation</build_depend>b) <run_depend>message_runtime</run_depend>
20、3. 對(duì)(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、應(yīng)該輸出int64 num但但提示找不到該消息.使用查找命令$ rosmsg show Num, 應(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_tut
22、orials包復(fù)制文件到srv文件夾下2. 對(duì)beginner_tutorials中的CMakeList.t*t做如下修改: a) 在原有的find_package*中參加“message_generation在創(chuàng)立msg過(guò)程中已添加b) 取消add_serivce_files( )的注釋, 并修改為add_serivce_files(FILESAddtwoInts.srv)3.2使用rossrv:使用命令:$ rossrv show beginner_tutorials/AddTwoInts. 應(yīng)該輸出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é)果是生成了針對(duì)不同語(yǔ)言的頭文件: msg的C+頭文件在/catkin_ws/devel/include/beginner_tutorials/. Pyth
24、on腳本在/catkin_ws/devel/lib/python2.7/dist-packages/beginner_tutorials/msg. 列表處理語(yǔ)言文件在/catkin_ws/devel/share/mon-lisp/ros/beginner_tutorials/msg/. 對(duì)于.srv, 生成的結(jié)果也類似. 生成成功!1.1.11 cc Writing a Simple Publisher and Subscriber (C+)上接1.1.4,不需要經(jīng)過(guò)生成msg與srv的過(guò)程1.0 進(jìn)入包c(diǎn)d /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中生成并處理了, 假設(shè)沒(méi)經(jīng)過(guò)上面的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)/包的名錯(cuò)了也沒(méi)關(guān)系/假設(shè)是在catkin_ws_wmr的工作空間下,該行命令可以改為add_dependencies(talker wmrcontrol_generate_messages_cpp)add_e*ecutable(listener src/listener.cpp)/對(duì)于listener文件target_link_libraries(listener $catkin_LIBRARIES)add_depende
27、ncies(listener beginner_tutorials_generate_messages_cpp)/假設(shè)是在catkin_ws_wmr的工作空間下,該行命令可以改為add_dependencies(listener wmrcontrol_generate_messages_cpp)b) 在工作空間目錄下, 輸入命令$ catkin_make. 該過(guò)程使用了CMakeList.t*t. 生成的結(jié)果為在:devel/lib/beginner_tutorials下有talker與listener節(jié)點(diǎn)可執(zhí)行文件. 并有提示:100% Built target talker;100% Bu
28、ilt target listener1.1.13 cc E*amining the Simple Publisher and Subscriber1. 翻開ros效勞: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. (不需要在工作空間目
29、錄下) 之后會(huì)看到如下類似消息:INFO WallTime: 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_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的根底上來(lái)編寫, 因?yàn)樾枰獏⒓宇^文件*include "beginner_tutorials/AddTwoInts.h"1. 寫一個(gè)效勞器節(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/beginn
31、er_tutorials編寫src/add_two_ints_client.cpp 3. Build節(jié)點(diǎn)a) 在/catkin_ws/src/beginner_tutorials/CMakeLists.t*t中參加如下幾行: /把之前生成talker與listener的相關(guān)局部注釋掉add_e*ecutable(add_two_ints_server src/add_two_ints_server.cpp)/編譯成可執(zhí)行文件target_link_libraries(add_two_ints_server $catkin_LIBRARIES)/添加動(dòng)態(tài)庫(kù)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) 再進(jìn)展: cd /catkin_ws -> catkin_make : 結(jié)果是在devel/
33、lib/beginner_tutorials下生成了兩個(gè)可執(zhí)行文件1.1.16 cc E*amining the Simple Service and Client1. 翻開ros效勞:roscore2. 運(yùn)行效勞器端: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 t
34、wo ints 3. 運(yùn)行客戶端a) 還需要再進(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: *=1, y=3; INFO 1394710671.682339580: sen
35、ding back response: 4進(jìn)一步的效勞器客戶端例程: s:/github./fairlight1337/ros_service_e*amples/1.1.17 Recording and playing back data.20and%20playing%20back%20dataP3-AT/D*ROSARIA配置與運(yùn)行主頁(yè) How to use ROSARIA:A1.2創(chuàng)立ROS工作空間之前假設(shè)沒(méi)有參加啟動(dòng)命令. /opt/ros/hydro/setup.bash的話, 則參加. 為了創(chuàng)立一個(gè)關(guān)于ROSARIA的工作空間, 將學(xué)習(xí)ROS根底階段的catkin_ws文件夾重命名
36、為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 s:/github./amor-ros-pkg/rosaria.git /這次使用github就沒(méi)有問(wèn)題, 結(jié)果是在src文件夾下得到了rosaria包. 包中包含RosA
37、ria.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 update/更
38、新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包沒(méi)有關(guān)系, 應(yīng)該是從ROS上安裝rosariaii. 看看是不是安裝在了/usr/local/Aria中?iii. 重裝系統(tǒng)后再次安裝時(shí),出現(xiàn)問(wèn)題:apt: mand sudo apt-get install checkinstall failed。運(yùn)行sud
39、o apt-get update時(shí)出現(xiàn)問(wèn)題Some inde* 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ì)于包來(lái)講, 名稱不區(qū)分大小寫, 比方當(dāng)有兩個(gè)包rosaria與ROSARIA時(shí), 會(huì)有如下提示:Multiple packages found with the same name &q
40、uot;rosaria":- rosaria- ROSARIAii. 當(dāng)在catkin_ws文件夾下使用命令catkin_make時(shí), 會(huì)用到文件src/rosaria/CMakeList.t*tiii. 是這一步在devel/lib下生成了rosaria可執(zhí)行文件?關(guān)于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 運(yùn)行roscore: 運(yùn)行roscore1.6 運(yùn)行RosAria節(jié)點(diǎn)1. source /RosAria/devel/setup.bash. 假設(shè)不在第一步運(yùn)行該命令,則會(huì)報(bào)錯(cuò)rospa
42、ck 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ò)地址e*port 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 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.說(shuō)明:1. 一問(wèn)題的解決:在運(yùn)行后面連接Android時(shí), 再回頭運(yùn)行此命令, 則就去src/
46、rosaria找該可執(zhí)行文件了, 因此從路徑上就錯(cuò)了, 不知是那一步影響了該命令的執(zhí)行. 不過(guò)用1.4中的catkin_make命令重新編譯一下就又能正常連接了. 2. 假設(shè)USB轉(zhuǎn)串口沒(méi)有配置好, 則會(huì)出現(xiàn)下方的錯(cuò)誤提示, 配置方法請(qǐng)見(jiàn)下方的USB轉(zhuǎn)串口配置. INFO 1394760211.482514856: RosAria: using port: /dev/ttyUSB0/這說(shuō)明使用的編號(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
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 應(yīng)該是請(qǐng)求輸出的命令c) 運(yùn)行結(jié)果:2. 線速度控制量的設(shè)置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' 合成一個(gè)消息d) 運(yùn)行結(jié)果:機(jī)器人做相應(yīng)運(yùn)動(dòng)并提升publishing and latc
50、hing message for 3.0 seconds。以及 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: *: 0.1, y: 0.0, z: 0.0, angular: *: 0.0, y: 0.0, z: 0.1'4. 也可以把2,3合成起來(lái). 5. 其他的.sonar, bumpers, acceleration pa
51、rameters.如何用.更多ROS API請(qǐng)見(jiàn):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.t*t文件夾下參加如下幾行命令(Bluks給我的程序是用rosbuild編譯方法。需要做相應(yīng)借鑒并修改)find_package(PkgConfig REQUIRED)/假設(shè)無(wú)此ncurses相關(guān)編譯命令, 會(huì)報(bào)錯(cuò)initscr未定義pkg_chec
52、k_modules ( ncurses+ REQUIRED ncurses+)/ncurses相關(guān)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相關(guān)add_dependencies(rosaria_teleop_key wmrcontrol_generate_mess
53、ages_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)行下面的命令$ 為防止混亂,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. 見(jiàn):/iPhone%20Teleop%20with%20ROSARIA/Android%20teleop%20Pioneer%203atandroid_sensors_driver/ Tutorials/Connecting to a ROS Master進(jìn)入之前下載的ROSARIA包的文件夾中cd /catkin_ws/src/rosari
56、a網(wǎng)頁(yè)上是不是寫錯(cuò)了.沒(méi)有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下就報(bào)錯(cuò). 上是不是寫錯(cuò)了.3.3 Step3進(jìn)入文件夾, 上寫的命令$ roscd ROSARIA, 但進(jìn)入不了, 只能手動(dòng)進(jìn)入rosaria了, 好似roscd也不能使用. 創(chuàng)立一個(gè)文件:命令:gedit android_teleop.cpp & 把上的代碼
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《食品機(jī)械與設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《教育影視賞析》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《家畜育種學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《飯店管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《商業(yè)品牌整體策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《建筑設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2018年四川內(nèi)江中考滿分作文《我心中的英雄》8
- 沈陽(yáng)理工大學(xué)《化工安全與環(huán)保》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《電力變壓器設(shè)計(jì)》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《產(chǎn)品仿生學(xué)應(yīng)用設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 軍隊(duì)文職聘用合同管理規(guī)定
- 2024年貴州省安順市西秀區(qū)小升初語(yǔ)文試卷
- 2024-2029年中國(guó)兒童牙冠行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 新時(shí)代鐵路發(fā)展面對(duì)面全文內(nèi)容
- 人工智能與語(yǔ)文閱讀理解教學(xué)
- 科學(xué)素養(yǎng)培育及提升-知到答案、智慧樹答案
- 快遞主管崗位職責(zé)
- 醫(yī)療差錯(cuò)、糾紛、事故登記表
- 七年級(jí)第一次期中家長(zhǎng)會(huì)課件
- 2024下半年四川省廣元市直屬事業(yè)單位招聘104人歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 市政道路施工工程重難點(diǎn)分析及對(duì)策
評(píng)論
0/150
提交評(píng)論