机器人操作系统ROS典型功能代码详解

上传人:桔**** 文档编号:485318158 上传时间:2023-07-02 格式:DOC 页数:99 大小:737.51KB
返回 下载 相关 举报
机器人操作系统ROS典型功能代码详解_第1页
第1页 / 共99页
机器人操作系统ROS典型功能代码详解_第2页
第2页 / 共99页
机器人操作系统ROS典型功能代码详解_第3页
第3页 / 共99页
机器人操作系统ROS典型功能代码详解_第4页
第4页 / 共99页
机器人操作系统ROS典型功能代码详解_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《机器人操作系统ROS典型功能代码详解》由会员分享,可在线阅读,更多相关《机器人操作系统ROS典型功能代码详解(99页珍藏版)》请在金锄头文库上搜索。

1、机器人操作系统ROS: 典型功能代码详解李宝全 目录目录1ROS API 介绍3Demo3/talker.cpp3/listener.cpp4/add_two_ints_server.cpp4/add_two_int_client.cpp5#CmakeList.txt5ROSARIA81/RosAria.cpp8#CmakeList.txt192/rosaria_teleop_key.cpp193/rosaria_teleop_code.cpp21#CmakeList.txt22Images25/image_converter.cpp /包 cv_bridge仅有的一个程序25/hud_gui

2、_simplified.cpp26/usb_cam.h27/usb_cam.cpp28/usb_cam_node.cpp44#usb_cam/CmakeList.txt47NiTE, Tf的发布48/tf2_ros/transform_broadcaster.h 系统48/tf2_ros/transform_broadcaster.cpp系统48/tf/transform_broadcaster.h49/tf/transform_broadcaster.cpp50/tf2_ros/transform_listener.h50/tf/transform_listener.h51/openni_t

3、racker.cpp节点54#CmakeList.txt57Tf的接收, 并以控制P3AT做示范58/TfListnerAria.cpp58#CmakeList.txt59语音发布60/sound_play.h60/SoundDemo.cpp62#CmakeList.txt63#test/CmakeList.txt64语言接收, 显示/再发声64/VoiceBridgeNode.cpp64#CMakeList.txt64/RespondVoice.cpp65#test/CMakeList.txt66ROS_OpenTLD-GUI66/tld_gui_node.cpp66/base_frame.

4、hpp66/base_frame.cpp68/ui_baseFrame.h72/base_frame_graphics_view.hpp75/base_frame_graphics_view.cpp76ROS_OpenTLD-tracker79/tld_node.cpp79/main.hpp80/main.cpp82ROS_OpenTLD-launch87/ros_tld_gui.launch87/ros_tld_tracker.launch87ROS_OpenTLD-msg88/BoundingBox.h88/Target.h91ROS_OpenTLD-git-opentld/main94R

5、OS数据类型95/std_msgs/Float3295/std_msgs/Char95/std_msgs/String95/std_msgs/Header95/sensor_msgs/Image95/sensor_msgs/Image_encodings?96/sound_play/SoundRequest96/geometry_msgs/Twist96/geometry_msgs/TransformStamped96ROS系统程序文件96/fill_image.h96/cv_bridge.h系统97/cv_bridge.cpp101Linux系统程序文件101/usr/include/lin

6、ux/videodev2.h101ROS API 介绍关于publisher1.ros:Publisher chatter_pub = n.advertise(chatter, 1000);/创建了一个发布者2. image_pub_ = it_.advertise(/image_converter/output_video, 1);3. image_transport:CameraPublisher image_pub_ ; image_pub_ = it.advertiseCamera(image_raw, 1);image_pub_.publish(sensor_msgs:Image)i

7、mg_, (sensor_msgs:CameraInfoPtr)*ci);关于advertise的缓冲区数量, 对于摄像头而言, 缓冲1幅图像即可, 试想若缓冲1000的话, 当接收图像时接收的是历史图像. (需要验证?) 但是对于第一行的缓冲区为1000的BaseDemo,listener还是从最新发布的信息开始读取啊?关于subscribe, 订阅者要有一个回调函数, 例如:image_sub_ = it_.subscribe(/camera/image_raw, 1, &ImageConverter:imageCb, this); /关联了回调函数/ ImageConverter: 是指

8、该类中的一个函数ros:Subscriber sub = n.subscribe(chatter, 1000, chatterCallback);/创建一个订阅者/ chatterCallback只是外面的与main平级的一个函数代码相关说明: 程序中含有中文注释时, 也能编译成功。 也能运行!安装的hydro,只有。h文件,cpp文件没有Demo/talker.cpp#include ros/ros.h/ROS的头文件#include std_msgs/String.h/ROS自定义的数据类型String所在的头文件#include /字符串的输入输出流int main(int argc,

9、char *argv) ros:init(argc, argv, talker);/在名字空间”ros”中的函数init();/初始化ROS, 是确切说明节点名字的地方, 节点的名字必须唯一, /它允许ROS通过命令行重新命名,ros:NodeHandle n;/创建了该节点的一个句柄ros:Publisher chatter_pub = n.advertise(chatter, 1000);/创建了一个发布者/尖括号里为发布的数据类型, 即消息Message/圆括号中”chatter”为发布的话题的名称, 即Topic/这就使得主机告诉了所有订阅了”chatter”话题的节点, 我们将在这个

10、话题上发布数据/用到了std_msgs, 对应于在创建包时加入 “std_msgs” 一项/第二个参数是发布队列的大小, 它的作用是缓冲. 当我们发布消息很快的时候, 它将能缓冲1000条信息./NodeHandle:advertise()将会返回ros:Publisher对象/也可以写成ros:Publisher chatter_pub; chatter_pub= n.advertise.ros:Rate loop_rate(10);/一个ros:Rate对象允许user制定循环的频率/它将会记录从上次调用Rate:sleep()到现在为止的时间, 并且休眠正确的时间int count =

11、0;while (ros:ok()/默认情况下,roscpp将会安装一个SIGINT监听,它使当Ctrl-C按下时,ros:ok()将会返回0.std_msgs:String msg;std:stringstream ss;ss hello world data.c_str();/将msg中的信息输出到屏幕上/输出结果为: I heard: hello world 1; I heard: hello world 2; I heard: hello world 3;int main(int argc, char *argv)ros:init(argc, argv, listener);ros:N

12、odeHandle n;ros:Subscriber sub = n.subscribe(chatter, 1000, chatterCallback);/创建一个订阅者/第一个参数为Topic的名称 “chatter”/第三个参数为回调函数的名称 /每当在话题上接受到数据, 即调用该回调函数一次ros:spin();/等到该节点被关闭时,spin()才返回/类似于cvWaitKey()return 0;/add_two_ints_server.cpp#include ros/ros.h#include beginner_tutorials/AddTwoInts.hbool add(beginner_tutorials:AddTwoInts:Request &req,beginner_tutorials:AddT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号