最近在学ros,想让小乌龟画一个矩形,看了许多文章发现小乌龟画的矩形还是不够方😬😅于是做出了一些尝试。
在网上查到的普遍都是这种方法。可以画方但是画出来的矩形不完美,时间长了还会变丑。
#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
#define PI 3.14159265358979323846
int main(int argc, char **argv){
ros::init(argc, argv, "draw_rectangle"); //"draw_rectangle"必须是nodename
std::string topic = "/turtle1/cmd_vel"; //topic name
ros::NodeHandle n;
ros::Publisher cmdVelPub = n.advertise<geometry_msgs::Twist>(topic, 1);
//第一个参数也可以写成"/turtle1/cmd_vel"这样的topic name
//第二个参数是发布的缓冲区大小,<geometry_msgs::Twist>是消息类型
ros::Rate loopRate(2);
//与Rate::sleep();配合指定自循环频率
ROS_INFO("draw_retangle start...");//输出显示信息
geometry_msgs::Twist speed; // 控制信号载体 Twist message
//声明一个geometry_msgs::Twist 类型的对象speed,并将速度的值赋值到这个对象里面
int count = 0;
while (ros::ok()){
speed.linear.x = 1; // 设置线速度为1m