黄工无刷电机学习
登录
直播中
梅利号
8年用户
1467经验值
擅长:可编程逻辑
私信
关注
[问答]
ROS如何在代码层面去接收stm32发送过来的数据?
开启该帖子的消息推送
ROS
如何实现ROS与
STM32
之间的
通信
?
ROS对stm32发送过来的数据做了哪些处理?
ROS主控主要实现的功能有哪些?
ROS如何在代码层面去接收stm32发送过来的数据?
回帖
(1)
郭舒静
2021-10-12 10:30:10
简介
1、 如何实现ROS与stm32之间的通信,ROS对stm32发送过来的数据做了哪些处理
2、在ROS小车里面有两个核心控制器,一个是ROS主控,一个是stm32控制器
3、ROS主控是树莓派等,只要能在ROS上面将ROS系统跑起来都可以作为ROS主控
4、ROS主控主要实现的功能有以下三点:
采集雷达信息
摄像头信息采集
路线规划
① 比如建图导航需要用到激光雷达,色觉巡线、色块跟踪的时候就需要用到摄像头
② 最终实现都是ROS系统可以根据外界环境和目标地点自动规划路径
5、STM32控制器主要实现的功能有以下三点:
采集里程信息(转速)
采集陀螺仪信息(三轴加速度计和角速度的信息)
电机控制(控制底盘运动)
两者之间的关系
1、ROS主控负责接收stm32发送过来的传感器数据
2、STM32接收ROS主控返回的底盘目标速度
3、ROS主控和STM32控制器之间需要做双向的数据传输
4、所以会涉及到两个控制器之间的通信问题
两者之间的通信
一、硬件连接
1、用USB线连接
2、两者之间需要一个逻辑转化器CP2102(相当于两个不同国家的人之间的交流的一个翻译官)
二、软件设置
1、更改cp2102芯片的serial:
①一般用到两个这样的芯片
一个用于ROS与STM32之间的通信
(0002)
另个是用于激光雷达和ROS主控通信
(0001)
2、更改cp2102芯片的serial的步骤
①打开更改serial的软件cb21xx
② 将u***线连接cp2102芯片的一个u***接口,另一边就连接上我们的电脑
③ 刷新一下,再更改
3、创建设备别名
为什么需要设备别名
:在运行一个ros程序的时候,需要提供一个端口号(一般是 ttyUSBx),设备每次插拔对应的端口名都会不一样,所以需要一个设备别名来将这个端口号给它固定住
有固定操作步骤
ROS如何在代码层面去接收stm32发送过来的数据
1、整体框架
1、构造函数:在每次创建新对象时执行
2、主函数:主要运行的函数
Get_Sensor_Data():获取stm32数据
Quaternion_Solution():计算四元素
Publish_Odom():发布odom话题
Publish——ImuSensor():发布imu话题
Publish_Voltage():发布电压话题
3、析构函数:在每次删除所创建对象时执行
4、功能函数:减少代码的重复性
5、回调函数:订阅机器人的目标速度话题,将机器人的目标速度通过串口发给stm32
2、机器人底盘类
相当于结构体,但成员是函数
3、构造函数
1、相当于初始化函数,在程序整体运行时,先初始化
变量
、
参数服务器
、
发布者
、
化订阅者
、
串口
等。
2、是由主函数
自动调用
析构函数初始化
4、主函数
1、ros::init():作用是向rosmaster注册一个节点
2、ROS_INFO():打印信息
3、tuen_on_robot Robot_Control:用这个类来注册对象robot_control
4、control():像一些发布话题、订阅话题都是在这个函数中循环执行
5、循环功能函数
6、析构函数
在按Ctrl+c 或者 一些意外退出这个节点的时候,它会运行的一个函数
简介
1、 如何实现ROS与stm32之间的通信,ROS对stm32发送过来的数据做了哪些处理
2、在ROS小车里面有两个核心控制器,一个是ROS主控,一个是stm32控制器
3、ROS主控是树莓派等,只要能在ROS上面将ROS系统跑起来都可以作为ROS主控
4、ROS主控主要实现的功能有以下三点:
采集雷达信息
摄像头信息采集
路线规划
① 比如建图导航需要用到激光雷达,色觉巡线、色块跟踪的时候就需要用到摄像头
② 最终实现都是ROS系统可以根据外界环境和目标地点自动规划路径
5、STM32控制器主要实现的功能有以下三点:
采集里程信息(转速)
采集陀螺仪信息(三轴加速度计和角速度的信息)
电机控制(控制底盘运动)
两者之间的关系
1、ROS主控负责接收stm32发送过来的传感器数据
2、STM32接收ROS主控返回的底盘目标速度
3、ROS主控和STM32控制器之间需要做双向的数据传输
4、所以会涉及到两个控制器之间的通信问题
两者之间的通信
一、硬件连接
1、用USB线连接
2、两者之间需要一个逻辑转化器CP2102(相当于两个不同国家的人之间的交流的一个翻译官)
二、软件设置
1、更改cp2102芯片的serial:
①一般用到两个这样的芯片
一个用于ROS与STM32之间的通信
(0002)
另个是用于激光雷达和ROS主控通信
(0001)
2、更改cp2102芯片的serial的步骤
①打开更改serial的软件cb21xx
② 将u***线连接cp2102芯片的一个u***接口,另一边就连接上我们的电脑
③ 刷新一下,再更改
3、创建设备别名
为什么需要设备别名
:在运行一个ros程序的时候,需要提供一个端口号(一般是 ttyUSBx),设备每次插拔对应的端口名都会不一样,所以需要一个设备别名来将这个端口号给它固定住
有固定操作步骤
ROS如何在代码层面去接收stm32发送过来的数据
1、整体框架
1、构造函数:在每次创建新对象时执行
2、主函数:主要运行的函数
Get_Sensor_Data():获取stm32数据
Quaternion_Solution():计算四元素
Publish_Odom():发布odom话题
Publish——ImuSensor():发布imu话题
Publish_Voltage():发布电压话题
3、析构函数:在每次删除所创建对象时执行
4、功能函数:减少代码的重复性
5、回调函数:订阅机器人的目标速度话题,将机器人的目标速度通过串口发给stm32
2、机器人底盘类
相当于结构体,但成员是函数
3、构造函数
1、相当于初始化函数,在程序整体运行时,先初始化
变量
、
参数服务器
、
发布者
、
化订阅者
、
串口
等。
2、是由主函数
自动调用
析构函数初始化
4、主函数
1、ros::init():作用是向rosmaster注册一个节点
2、ROS_INFO():打印信息
3、tuen_on_robot Robot_Control:用这个类来注册对象robot_control
4、control():像一些发布话题、订阅话题都是在这个函数中循环执行
5、循环功能函数
6、析构函数
在按Ctrl+c 或者 一些意外退出这个节点的时候,它会运行的一个函数
举报
更多回帖
rotate(-90deg);
回复
相关问答
ROS
请问如
何在
电脑上读取HC05
发送过来
的
数据
?
2019-04-30
4931
如何用
STM32
做从机
接收
主机
发送过来
的
数据
包?
2021-12-15
1214
如
何在
电脑上读取HC05
发送过来
的
数据
?
2019-05-28
4315
请问uPP
接收
fpga
送过来
的16位
数据
DSP部分怎么编程序?
2019-07-05
1931
串口助手
接收
单片机
发送过来
的字符串,
发送
值与
接收
值不一样
2020-07-07
2995
点阵怎么接受串口
发送过来
的
数据
,小白,求大神搭救
2014-12-03
2614
STM32
F0的USART机制是不是一收一
发
机制,只能
发送
一个
数据
才会触发
接收
数据
寄存器
2021-05-19
2787
请问怎么用
stm32
通过蓝牙模块
接收
从手机
发送过来
的MP3文件然后存到SD卡中
2019-04-22
3136
CH573 BLE_UART案例怎样写才能用数组读取到这个用蓝牙
发送过来
的
数据
?
2022-09-21
343
请问怎么处理没用
数据
采集卡的仪器
发送过来
的
数据
?
2015-09-15
3886
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分