ROS1开发编程实践专栏
文章平均质量分 52
ros开发实践和精通ros编程实践
萌新SI
这个作者很懒,什么都没留下…
展开
-
【ROS笔记本】ROS代码编写知识
在ROS(Robot Operating System,机器人操作系统)中,`getnumpublishers` 是一个函数,它代表获取当前主题的发布者数量。这个函数用于了解有多少个节点正在发布给定主题的消息,有助于了解系统中某个主题的发布者数量,以便于进行调试和优化。1. getnumpublishers函数;原创 2023-06-27 14:39:47 · 134 阅读 · 0 评论 -
[ROS笔记本]QT5问题cmake编译
(一般QT相关文件下载的名字是 libqt5-xxxxxx-dev,multimedia库有点特殊)下载开发相关文件:apt-get install qtmultimedia5-dev。原创 2022-09-27 17:27:44 · 977 阅读 · 0 评论 -
【ROS笔记本】——rosbag相关命令
在这里插入图片描述rosbag 既可以指命令行中数据包相关命令,也可以指 c++/python 的 rosbag 库。这里的 rosbag 是指前者。rosbag 主要用于记录、回放、分析 rostopic 中的数据。它可以将指定 rostopic 中的数据记录到 .bag 后缀的数据包中,便于对其中的数据进行离线分析和处理。对于 subscribe 某个 topic 的节点来说,它无法区分这个 topic 中的数据到底是实时获取的数据还是从 rosbag 中回放的数据。...转载 2022-08-30 20:59:49 · 3910 阅读 · 0 评论 -
ROS工程实践2—usb_camera工程
新建一个包名为 usb_cam,其中附加的依赖有std_msgs(消息传递),roscpp(c++),cv_bridge(ros和opencv图像转换),sensor_msgs(传感器消息),image_transport(图像编码传输)在usb_cam/src文件夹中添加两个cpp,一个发布图像消息img_publisher.cpp,一个接收并查看图像消息img_viewer.cpp。三、修改CMakeLists.txt及package.xml。开两个终端分别启动节点。.........转载 2022-08-26 12:24:40 · 1066 阅读 · 0 评论 -
ROS工程实践1—创建工作空间和功能包
如果已经将设置环境变量包含在终端配置文件中,则只需要新开一个终端就可以默认执行source ~/catkin_ws/devel/setup.bash。创建一个名为learning_pkg_creating,依赖std_msgs、roscpp、rospy功能包的新功能包。执行setup.bash来设置工作空间的环境变量,便于调用新生成的文件。package.xml描述功能包属性的信息,包含功能包的依赖信息。WS为工作空间的路径,可用pwd命令来查看当前目录。3.设置工作空间的环境变量。......原创 2022-08-26 11:13:10 · 185 阅读 · 0 评论 -
【ROS笔记本】——Rosbag过滤命令
rosbag 时间和topic过滤1.过滤单个topicrosbag filter input.bag only-tf.bag "topic == '/tf'"2过滤多个topicrosbag filter input.bag output.bag "topic == '/velodyne_point_cloud' or topic =='/visensor/imu' or topic == '/visensor/left/image_raw'"3.根据时间过滤rosbag f原创 2022-03-17 10:12:45 · 448 阅读 · 0 评论 -
【ROS笔记本】——Rosbag录制,回放数据
1.rosbag命令2.rosbag简介rosbag 既可以指命令行中数据包相关命令,也可以指 c++/python 的 rosbag 库。这里的 rosbag 是指前者。rosbag 主要用于记录、回放、分析 rostopic 中的数据。它可以将指定 rostopic 中的数据记录到 .bag 后缀的数据包中,便于对其中的数据进行离线分析和处理。对于 subscribe 某个 topic 的节点来说,它无法区分这个 topic 中的数据到底是实时获取的数据还是从 rosbag 中回放的数据原创 2022-03-17 10:03:43 · 4895 阅读 · 0 评论 -
ROS工程实践3—tf_node节点参数设置
#include<ros/ros.h>#include<tf/transform_broadcaster.h>int main(int argc, char** argv) { ros::init(argc, argv, "tf_publisher"); ros::NodeHandle n; ros::Rate r(100); tf::TransformBroadcaster broadcaster; tf::Transform tran...原创 2022-03-15 14:56:21 · 1027 阅读 · 0 评论 -
catkin/cmakelist中文版
1. 概览CMakeLists.txt 是用 CMake 构建系统构建 ROS 程序包的输入文件。任何兼容 CMake 的包都包含一个或多个 CMakeLists.txt 文件,用以描述怎样构建和安装代码。catkin 项目采用标准的 vanilla CMakeLists.txt 文件,并带有一些额外的约束。2. 总体结构和顺序你的 CMakeLists.txt 文件必须遵从以下格式,否则你的程序包将无法正确编译。这些配置命令是有顺序的。Required CMake Version (cma原创 2022-02-28 11:23:18 · 445 阅读 · 0 评论 -
【ROS笔记本】ROS使用节点句柄nh(“~“)和nh的区别:发布的话题不同
使用节点句柄nh("~")和nh的区别:发布的话题的命名空间不同一.使用节点句柄nh("~")ros::NodeHandle nh("~");ros::Rate loop_rate(10); //correspding interp periodros::Publisher joint_pub = nh.advertise<sensor_msgs::JointState>("test_joint_states", 1);则发布的话题名字为节点名字+话题名字/repla原创 2022-02-25 16:50:43 · 829 阅读 · 0 评论 -
【ROS笔记本】CMakeLists.txt 与 package.xml
0. 前言在 ROS 中,节点的编写语言通常只有 C++ 和 Python,C++ 需要编译后才能运行,Python 则无需编译。我们知道 Linux 平台编译 C++ 文件,需要编译器和链接器,其中编译器是将源代码编译成目标代码,链接器是将目标代码链接到可执行文件。若是编译单个文件,用 g++ 即可;若是编译一个 C++ 工程,则需要批处理编译工具,如 make,通过设定规则文件 makefile 调用 g++ 等编译工具进行批量编译。但 makefile 的编写十分复杂,便诞生了 CMake,通原创 2022-02-25 16:47:04 · 1400 阅读 · 0 评论 -
【ROS笔记本】ros::Rate loop_rate( ) & loop_rate.sleep()
ros::Rate是一个类1 ros::Rate loop_rate( ) & loop_rate.sleep()这两个函数必须一起使用,控制的是循环的频率,与消息或者服务的发布频率无直接关系,当然控制了循环的频率自然就控制了循环内消息或者服务的发布频率ros::Rate loop_rate( ); 写在循环外部 //ros::Rate rate();loop_rate.sleep();写在循环内部 //rate.sleep();ros::Rate loop_rate(50) 这个很原创 2021-12-30 15:37:59 · 4411 阅读 · 0 评论 -
必备软件的安装: OpenCV and PCL
预备知识与编程环境 编程环境:ubuntu 12.04。建议读者和我们使用一样或类似的环境。如果你(出于酷或者其他什么原因)就是要用Arch/Fedora/Mac,请你自己配环境。 必备软件的安装:OpenCV 推荐从源代码安装的模式。编译过程需要一点时间。 Step 1. 下载OpenCV源代码: http://opencv.org/downloads.html。 目前(2015.6)较好的版本是2.4系列,因为3.0系列还不完善(主要是没文档)。请把它下载到电脑上随意一个目..原创 2021-10-10 17:23:36 · 910 阅读 · 0 评论 -
ROS实践7:自定义client实现
1.首先创建一个定义服务数据类型的SRV文件,learning_communication/srv/AddTwoInts.srv;2.在package.xml中添加依赖配置:<build_depend>message_generation</build_depend><rosrun_depend>message_runtime</rosrun_depend>在CMakelist.txt中添加以下配置:find_package(catki..原创 2021-07-13 19:33:39 · 119 阅读 · 0 评论 -
ROS实践6:自定义服务数据
1.首先创建一个定义服务数据类型的SRV文件,learning_communication/srv/AddTwoInts.srv;2.在package.xml中添加依赖配置:<build_depend>message_generation</build_depend><rosrun_depend>message_runtime</rosrun_depend>在CMakelist.txt中添加以下配置:find_package(catkin原创 2021-07-13 19:11:51 · 198 阅读 · 0 评论 -
ROS实践5:自定义消息
一:首先在功能包目录下(与src目录相同)创建msg文件夹,在文件夹里创建一个.msg文件。例如一个名为num.msg的文件内容为:Header header int32 demo_int float64 demo_double二添加依赖项在xml文件中添加<build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend>在.txt原创 2021-07-13 16:45:29 · 176 阅读 · 0 评论 -
ROS-解决 learning_communication_generate_messages_cpp does not exist.
使用ROS新建工作空间并按照例程建立talker和listener,在编译时报错:CMake Error at learning_communication/CMakeLists.txt:131 (add_dependencies):The dependency target “learning_communication_generate_messages_cpp” oftarget “listener” does not exist.CMake Error at learning_commun原创 2021-07-13 15:47:41 · 659 阅读 · 0 评论 -
ROS实践4:Subscriber 模板
#include "ros/ros.h"#include "std_msgs/String.h"//接收到订阅的消息后,会进入消息回调函数void chatterCallback(const std_msgs::String::ConstPtr& msg){//接收到的消息打印出来ROS_INFO("I heard: [%s]", msg->data.c_str());}int main(int argc,char **argv){//初始化ro原创 2021-07-09 19:40:14 · 215 阅读 · 0 评论 -
ROS实践3:publisher模板教程
#include <sstream>#include "ros/ros.h"#include "std_msgs/String.h"int main(int argc, char **argv){//ROS节点初始化ros::init(argc, argv,"talker");//创建节点句柄ros::NodeHandle n;//创建一个publisher,发布名为chatter的topic,消息类型为std_msgs::stringros:原创 2021-07-09 19:20:01 · 517 阅读 · 0 评论 -
ROS实践2:subscriber代码
使用回调函数,将数据发送到/numbers话题上,订阅/numbers话题。#include "ros/ros.h"#include "std_msgs/Int32.h"#include <iostream>void number_callback(const std_msgs::Int32::ConstPtr& msg) { ROS_INFO("Received [%d]",msg->data);}int main(int argc, char **ar...原创 2021-07-06 19:11:09 · 328 阅读 · 0 评论 -
ROS实践1:publisher详解
创建ros节点,发布一个/number的话题,数据类型为int型,发布消息频率为10HZ。具体代码如下,放在src文件夹下,catkin_make进行编译。#include "ros/ros.h"#include"std_msgs"#include <iostream>int main(int argc, char **argc){ros::init(argc, argv, "demo_topic_publisher");ros::NodeHandle node_原创 2021-07-06 14:41:43 · 4072 阅读 · 1 评论