发布者publisher的编程实现
2021/9/8 17:06:13
本文主要是介绍发布者publisher的编程实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先肯定是创建功能包:
1.先把上一讲所做的test.pkg删除。
2.创建learning_topic(在src的目录下创建)
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
3.在learning_topic下的src里面敲代码:
/*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************/ /** * 该例程将发布turtle1/cmd_vel话题,消息类型geometry_msgs::Twist */ #include <ros/ros.h> #include <geometry_msgs/Twist.h> int main(int argc, char **argv) { // ROS节点初始化 ros::init(argc, argv, "velocity_publisher"); // 创建节点句柄 ros::NodeHandle n; // 创建一个Publisher,发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度10 ros::Publisher turtle_vel_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 10); // 设置循环的频率 ros::Rate loop_rate(10); int count = 0; while (ros::ok()) { // 初始化geometry_msgs::Twist类型的消息 geometry_msgs::Twist vel_msg; vel_msg.linear.x = 0.5; vel_msg.angular.z = 0.2; // 发布消息 turtle_vel_pub.publish(vel_msg); ROS_INFO("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z); // 按照循环频率延时 loop_rate.sleep(); } return 0; }
步骤是:
4.然后就需要开始编译.txt文件:
打开txt文件。
把下面的代码放到install的上面
add_executable(velocity_publisher src/velocity_publisher.cpp) target_link_libraries(velocity_publisher ${catkin_LIBRARIES})
5.可以开始做编译工作了
在catkin目录下:
catkin_make(开始编译)
source devel/setup.bash(设置环境变量) 为了避免每次都输入此代码串,可以提前设置,在主文件夹下Ctrl+h显示隐藏文件.bahsrc,打开后在最后一排输入
source /home/jzh/catkin_ws/devel/setup.bash
打开终端
roscode
在打开海龟仿真器
rosrun turtlesim turtlesim_node
运行功能包:
rosrun learning_topic velocity.....tab键补齐
这篇关于发布者publisher的编程实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?