再探FSSIM(代码驱动小车)

再探FSSIM

实现代码控制

在上一篇博客,我们已经实现了控制小车的运动,并且得知
dc:位移(千米)
delta:转角(弧度)

接下来实现代码控制小车的运动,先不管算法。

然后,打开ROBOWARE
在这里插入图片描述
打开并创建一个工作区
在这里插入图片描述
这里省略ROBOWARE的操作。
从上一回我们私聊就可以让小车运动来看,我们只需要写一个发布者就可以实现代码对车子的控制。
写一个发布者:

代码这里就不展示了,是错的,后面有一张正确的图。

代码写好以后在代码的工作区进行编译:
catkin_make

在这里插入图片描述
编译错误,显示 fssim_common/Cmd.h 不存在
所以,可能这个仿真环境需要在fssim的工作空间进行操作
将写好的代码粘贴到fssim的工作空间去试试
在这里插入图片描述
。。。。。显然这个方法不对,那么只能自己写一个msg了
将之前实验的pkg删除掉,防止对fssim产生影响。

然后就是漫长的debug,踩了以下几个坑,老铁们值得避坑:
1.msg文件要自己编写,首先要在包的下面创建一个msg文件夹
在这里插入图片描述
2.msg可以在终端使用

rosmsg show ...(...为目标msg)

查看,然后直接复制粘贴就好
3.msg编译后自动生成一个msg.h,这个头文件要调用,要用如下方法:(那我的举例)

#include "publi/mymsg.h"

4.下面在使用msg定义消息的时候用

publi::mymsg message;

注意:每个人的包名和msg的名字不一样,根据自己的来。最终代码如下:
在这里插入图片描述
在这里插入图片描述
再次编译,成功!
在这里插入图片描述
但是新的问题出现,我们编译的这个能不能驱动小车呢?
试一下:没调用代码之前:
在这里插入图片描述
1.先

source devel/setup.bash
rosrun publi publish

在这里插入图片描述
看看效果:
在这里插入图片描述
感觉走的有点远,不知道是不是错觉。
在终端私聊一下对比对比:
终端运行:

rostopic pub /fssim/cmd fssim_common/Cmd 1 0

在这里插入图片描述
细想一下也很正常,毕竟代码里的topic是不停循环的,改一下代码试试:
在这里插入图片描述
编译运行,fssim就不重启了,直接和上一次的图片对比也能看出来有没有运动。
在这里插入图片描述
果然有效果,那么为什么第一次运行代码的时候只跑了那么一点距离?因为rviz建立的模型是有边界的,前进到那个距离应该已经是到了仿真环境的边缘了。

总结

到现在就已经实现了使用代码驱动小车,这给后面算法的模拟提供基础。

下一篇

下一篇探索fssim中的雷达和摄像头的接口,为真正进行仿真做准备。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于STM32F103的双轮电机驱动代码可以使用STM32的HAL库来实现。代码的主要部分是通过PWM控制电机的转速来实现小车的前进、后退和转向。 首先,需要将STM32F103与直流电机和电机驱动模块(如TB6612)连接起来。然后,使用HAL库的函数来配置L298N电机驱动模块,以便进行小车的调速控制。 在代码中,通过串口发送指令来控制小车的运动。通过使用HAL库的UART接收函数来接收从串口收到的数字指令。然后根据接收到的指令,使用switch语句来执行相应的动作。 例如,当接收到数字'1'时,执行forward()函数来使小车前进;当接收到数字'2'时,执行backward()函数来使小车后退;当接收到数字'3'时,执行shift_left()函数来使小车向左平移;当接收到数字'4'时,执行shift_right()函数来使小车向右平移;当接收到数字'5'时,执行turn_left()函数来使小车左转;当接收到数字'6'时,执行turn_right()函数来使小车右转。如果接收到其他指令,则执行Reset()函数重置小车。 通过循环,不断接收串口数据并执行相应的动作,实现对小车的控制。 请注意,这只是一个简单的示例代码,具体的实现可能会根据具体的硬件连接和功能需求而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于STM32的智能车双轮电机驱动系统](https://download.csdn.net/download/m0_64915173/84994838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [基于STM32F103C8T6 HAL库 配置的L298N电机驱动模块进行小车调速控制(可通过串口发送指令控制).zip](https://download.csdn.net/download/qq_47183165/33295344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于STM32F103C8T6 HAL库 配置的L298N电机驱动模块进行小车调速控制(可通过串口发送指令控制)](https://blog.csdn.net/qq_47183165/article/details/120838639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值