栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ROS学习-3 (C++编程实现创建消息+发布数据控制海龟运动)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ROS学习-3 (C++编程实现创建消息+发布数据控制海龟运动)

古月居21讲第10个视频

#include 
#include 

int main(int argc,char **argv)
{
	// ros节点初始化      haigui_vel_publisher是节点的名字
	ros::init(argc,argv,"haigui_vel_publisher");

	//创建节点句柄
	ros::NodeHandle n;

	//创建一个publisher(发布者 名字是turtle_vel_pub) 发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度10
	//<>里是消息的数据类型    发一个geometry_msgs::Twist 类型的消息
	// 往/turtle1/cmd_vel话题里发
	// 如果订阅者来不及接收,那发布者就先把消息放在队列里,要是队列满了,就覆盖最老的消息
	ros::Publisher turtle_vel_pub = n.advertise("/turtle1/cmd_vel",10);//向master注册节点信息

	//设置循环的频率
	ros::Rate loop_rate(10);

	int count = 0;
 	

	//封装数据并且发布出去,延时满足频率
	while(ros::ok() ) 
	{
		//初始化geometry_msgs::Twist类型的消息  geometry_msgs::Twist是类,我们创建一个对象叫 vel_msg
		geometry_msgs::Twist vel_msg;
		vel_msg.linear.x = 0.5;
		vel_msg.angular.z = 0.2;
		

		//发布消息
		// turtle_vel_pub是发布者, publish()是方法
		turtle_vel_pub.publish(vel_msg);
		// 下面相当于printf
		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;
}

在leaning_topic 里面的cmakelist 里的

###########
## Build ##
###########

后面,

###########
## install##
###########

前面。

输入

add_executable(velocity_publisher src/velocity_publisher.cpp)
# 把src/velocity_publisher.cpp 编译成 velocity_publisher 这个可执行文件
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})
#把velocity_publisher这个可执行文件和ROS的库进行链接(主要是c++的接口和ROS的库进行连接)

然后在工作空间根目录下 编译

catkin_make

然后在工作空间的devel/lib/leaning_topic里面有了 velocity_publisher 这个可执行文件。

然后

xrh@xrh-Dell-G15-5511:~/test_ws$ rosrun leaning_topic velocity_publisher 

rosrun 也是运行的 velocity_publisher 这个可执行文件

但是:

写在最后:

节点的名字是 haigui_vel_pulisher

注意区别 节点名字和 可执行文件的名字

rosrun leaning_topic velocity_pubulisher

运行      功能包名     可执行文件名(我以为是节点名,但其实不是,看下一张图,节点名字是haigui_vel_publisher)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511909.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号