上位机(Ubuntu)与下位机(Arduino)通讯控制机器人前轮转角

这篇具有很好参考价值的文章主要介绍了上位机(Ubuntu)与下位机(Arduino)通讯控制机器人前轮转角。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 实现基础:1、上位机、下位机通讯;2、ROS读取前轮转角传感器速度

​​​​​​​​​​​​​​上位机系统Ubuntu 20.04与下位机arduino UNO通讯_可见一班的博客-CSDN博客

读取拉线位移传感器(RS485协议)的ROS驱动包_可见一班的博客-CSDN博客


方案一:判断了旋转方向就向下位机发布指令,可以实现转向,但是会出现咯噔咯噔的卡顿现象,因为下位机接收到了指令频率太高了。

方案二:在上个方案的基础上增加判断条件,也就是电机工作状态量,用大小为2的队列实现。核心代码如下,需结合前两篇博客使用:

queue<int> q;
int windowSize = 2; // 滤波窗口大小(可以根据自己需要改)

//回调函数包括: 
   if(q.size()<2){
		key_c.data = q.back();
		key_publisher.publish(key_c);
		ROS_INFO("First!");
	}
	else
	{
		int diff = q.back() - q.front();
		if (diff != 0){
			key_c.data = q.back();
			key_publisher.publish(key_c);
			ROS_INFO("state change!");
		}
	}

//主函数:
int main(int argc, char  **argv)
{
	
	ros::init(argc, argv, "steer_control");
	ros::NodeHandle nh;

	key_publisher = nh.advertise<std_msgs::UInt16>("key_command", 10);
	laxian_sub = nh.subscribe("/steering_angle", 10, steer_callback);
	

	ros::spin();
	return 0;
}

参考:

ROS里在回调函数里获取前后两帧(多帧)数据的差值_辉——书生意气的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-543512.html

到了这里,关于上位机(Ubuntu)与下位机(Arduino)通讯控制机器人前轮转角的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu18.04 Turtlebot2机器人移动控制 Rviz Gazebo仿真实现

    操作系统为ubuntu18.04 安装ROS Melodic Turtlebot2,很多大佬分享了详细的安装过程,在这里就不多赘述,安装遇到问题多百度,大部分都是可以解决的。 前期学习了赵虚左老师的ROS入门课程,结合Turtlebot2资料这里方便大家打开,放的创客制造的文档,也推荐大家去看官方文档 首先

    2023年04月25日
    浏览(57)
  • Ros驱动Ur5e过程 | 手把手教程 | Ros驱动真实机器人Ur5e | Ros与Ur5e建立通讯 | Ubuntu20.04驱动Ur5e机器人

    UR5e连接过程 安装ROS 安装moveit 电脑端UR机器人驱动安装 UR实体机器人-软件安装与通信建立 urcap软件安装 电脑端ip问题 需要指定临时ip的情况 不需指定临时ip UR机器人IP 机器人的启动 驱动UR机器人 电脑-ip : 192.168.56.1 ur5e-ip :192.168.56.101 Ubuntu20.04 + Ur5e + 一根网线 + 一个U盘 省略,

    2024年02月12日
    浏览(57)
  • ROS机器人制作(三)—— ROS上位机与stm32进行串口通信

    总代码在文末,需要完整的工程文件可以私聊(收一点点辛苦费) 首先创建一个功能包,用于发送和接收数据。 注意: 1.功能包依赖: roscpp std_msgs rosserial 2.当有两个c++文件进行编译时可以在功能包下的CMakeLists.txt文件中 第一部分是ROS上位机给stm32发送数据。第二部分是stm

    2024年02月15日
    浏览(38)
  • 【上位机与下位机通信】使用WIFI模块ESP8266连接单片机与上位机通信

    承接上文WIFI上位机部分:【上位机】通过WIFI上位机与网络调试助手通信绘制曲线,现阶段实现了STM32单片机与ESP8266WIFI模块作为下位机与WIFI上位机通信。 ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-无线)模块,此处使用的是正点原子团队自主开发的ATK-ESP-01模块。

    2024年02月05日
    浏览(102)
  • 使用Arduino Uno构建一个巡线机器人

    原文 MX 巡线机器人 (LFR: line follower robot)是一种简单的自主引导机器人,它遵循在地面上绘制的线来检测白色表面上的暗线或黑暗表面上的白线。在本教程中,使用 Arduino Uno 和一些易于访问的组件构建黑线跟随机器人。 巡线机器人的原理 如前所述,巡线机器人(LFR)跟随

    2024年02月10日
    浏览(31)
  • 【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    随着机器人技术的不断发展,我们可以在许多简单重复,危险的岗位上看到机器人的身影,移动机器人凭借其在复杂环境下工作,具有自行感知、自行规划、自我决策功能的能力,它可以在不同的环境中移动并执行任务,在人类社会中发挥着越来越重要的作用。但移动机器人

    2024年02月07日
    浏览(58)
  • 【全3D打印坦克——基于Arduino履带式机器人】

    在教程中,我将向您展示我如何构建超酷的无线电控制履带式车辆,机器人平台或坦克,应有尽有。我从头开始设计这个东西,完全可以3D打印,所以你可以轻松地打印所有东西并自己构建一个。 您可以观看以下视频或阅读下面的书面教程。 我这个项目的目标是制作一个多功

    2024年02月06日
    浏览(33)
  • [调参神器]使用VOFA+上位机进行PID调参(附下位机代码)

    ​ 简单地来说,VOFA+是一个超级串口助手,除了可以实现一般串口助手的串口数据收发,它还可以实现数据绘图(包括直方图、FFT图),控件编辑,图像显示等功能。使用VOFA+,可以给我们平常的PID调参等调试带来方便,还可以自己制作符合自己要求的上位机,为嵌入式开发

    2023年04月09日
    浏览(26)
  • 手把手一起完成Python上位机与下位机USB通信

    最近在使用Python设计上位机,下位机是ZYNQ7000,两者通过USB进行数据传输。该文章是USB通信过程的踩坑记录 首先,安装pyusb和libusb两个库,命令如下: 如图所示: 输入程序: 报错 usb.core.NoBackendError: No backend available,如图所示: 安装libusb1包,命令如下: 如图所示: 找到 l

    2024年02月07日
    浏览(31)
  • FANUC机器人PROFINET通讯方式组态

    1  机器人机架号101为机器人做主站,机器人网口3.4做主站 2 机器人机架号102为plc做主站,机器人网口1.2做从站, 机器人基本上都是配置FANUC自身的R834板卡。R834板卡的Profinet通讯设置硬件选项:双通道Profinet板卡,有的板1,2也能做主站​ 1、 Fanuc m ini-slot Profinet carrier board ;

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包