esp32(ROS2foxy)从字符串发布到速度发布turtlesim
【摘要】
直播课演示如下,从点亮一个小灯,发送字符串到发布速度指令控制turtlesim。
字符串参考:
eps32和ros2之稳稳点亮一个LED灯(IO4)_zhangrelay的专栏-CSDN博客
速度代码如下:
#include <ros2arduino.h> #include <WiFi.h>#incl...
直播课演示如下,从点亮一个小灯,发送字符串到发布速度指令控制turtlesim。
字符串参考:
eps32和ros2之稳稳点亮一个LED灯(IO4)_zhangrelay的专栏-CSDN博客
速度代码如下:
-
#include <ros2arduino.h>
-
-
#include <WiFi.h>
-
#include <WiFiUdp.h>
-
#define SSID "***"
-
#define SSID_PW "***"
-
#define AGENT_IP "***"
-
#define AGENT_PORT 2021 //AGENT port number
-
-
#define PUBLISH_FREQUENCY 2 //hz
-
-
void publishVel(geometry_msgs::Twist* vel, void* arg)
-
{
-
(void)(arg);
-
static int cnt = 0;
-
vel->linear.x = 0.1+0.01*cnt; //线速度
-
vel->angular.z = 0.1+0.01*cnt; //角速度
-
// vel->linear.x = ((double)rand()/(RAND_MAX)); //随机线速度
-
// vel->angular.z = ((double)rand()/(RAND_MAX)); //随机角速度
-
// vel->linear.x = 0.2; //固定线速度
-
// vel->angular.z = 1.0 - 0.001*cnt; //变化角速度
-
cnt++;
-
}
-
-
class VelPub : public ros2::Node
-
{
-
public:
-
VelPub()
-
: Node("esp32_cmdvel")
-
{
-
ros2::Publisher<geometry_msgs::Twist>* publisher_ = this->createPublisher<geometry_msgs::Twist>("turtle1/cmd_vel");
-
this->createWallFreq(PUBLISH_FREQUENCY, (ros2::CallbackFunc)publishVel, nullptr, publisher_);
-
}
-
};
-
-
WiFiUDP udp;
-
-
void setup()
-
{
-
WiFi.begin(SSID, SSID_PW);
-
while(WiFi.status() != WL_CONNECTED);
-
-
ros2::init(&udp, AGENT_IP, AGENT_PORT);
-
}
-
-
void loop()
-
{
-
static VelPub VelNode;
-
-
ros2::spin(&VelNode);
-
}
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/120504387
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)