轮趣科技教育版ros小车键盘控制运动

   我之前买的ros小车是单独买的底板,以为随便一个树莓派就可以,因为我以前有一个树莓派3B,后来买了单独的小车之后,发现只能使用树莓派4B,然后又单独买了一个树莓派4B,给装上镜像,安装ros-melodic-desktop-full。经过各种摸索,终于能让小车开动了。

    最开始的时候,是直接把官方提供的launch文件拷贝到catkin_ws相关目录,然后运行,发现运行roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch的时候总是报错,cannot launch node of type [turn_on_wheeltec_robot/wheeltec_robot_node]。当时一直很纳闷,以为是串口问题,就一直在那运行wheeltec_udev.sh,发现最后wheeltec_controller只能对应/dev/ttyACM0,wheeltec_lidar总是对应/dev/ttyUSB0。但是根据指导资料上好像需要修改0001端口为0002:

    其实呢,这个串口号根本不用修改。

    第二天,就想着把官方给的所有launch包给编译一下,然后又遇到了很多很多问题,大部分问题参照:https://blog.csdn.net/zsq122021821/article/details/128316043,都可以解决,其他问题,根据关键字搜索也能解决,比如缺少pcap.h,找到libpcap的源码,然后放到树莓派上,进入相关目录执行./configure,然后把对应的头文件考到/usr/include目录即可。

    全部编译完成,我们在运行之前,还是需要运行串口修改脚本src\turn_on_wheeltec_robot\scripts\wheeltec_udev.sh,官方给的脚本不用修改任何东西,包括串口号也不需要使用工具CP21xxCustomizationUtility修改。

    运行脚本修改相关串口映射之后,再重新插拔串口线。

    我本机的串口映射:

 

    最后运行:

roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch

    没有报错,打印如下:

 

    接着运行键盘控制底板的启动文件:

roslaunch wheeltec_robot_rc keyboard_teleop.launch

    打印信息如下所示:

 

    启动不报错,串口开启,就可以通过键盘控制小车移动了,下面是一个键盘控制小车运动的视频: 

ros

     这里通过键盘控制小车移动,只是用到了树莓派,没有开启虚拟机。小车控制板打开,通过电池供电,然后给树莓派供电,树莓派发送指令控制底板运动。

     树莓派使用无线网络,和本机在一个局域网,本机通过putty连接树莓派,最后运行启动相关指令。树莓派使用无线自动连接,设置如下:

    制作镜像之后,在boot目录加入wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN

network={
        ssid="JCYJYF"
        psk="******"
        key_mgmt=WPA-PSK
}

    其中ssid为wifi名称,psk为wifi密码,根据实际情况设置。 

    后面树莓派启动之后,就会自动连接wifi,偶尔情况树莓派会抽风,并不是每次都能自动连接,断电重启几次就好了。

ROS(Robot Operating System,机器人操作系统)是一个开源的、跨平台的机器人开发框架,它为复杂机器人的软件设计提供了结构化的体系和丰富的工具集。对于四轮小车这类移动机器人ROS可以帮助开发者控制运动,包括前进、后退、旋转等。 在ROS中,四轮小车运动控制通常涉及以下几个关键步骤: 1. **动力学建模**:首先,需要对车辆的动力学模型进行抽象,如差分驱动模型,这对于理解和编写控制算法至关重要。 2. **传感器集成**:通常使用编码器或轮速传感器获取实时速度信息,以及可能的里程计数据用于位置反馈。 3. **姿态估计**:通过IMU(惯性测量单元)或者其他导航传感器,计算车辆的实际姿态和位姿(包括线速度和角度)。 4. **控制系统设计**:基于所选的控制理论(例如PID控制器),编写控制节点来发送速度指令给每个车轮,确保整体车辆按照预设轨迹行驶。 5. **通信机制**:ROS中的`topic`和`service`机制使得不同节点之间能够高效地交换消息,如位置更新、控制指令等。 6. **路径规划**:如果需要,可以结合路径规划算法,比如A*或Dijkstra算法,生成车辆需要遵循的路径。 7. **仿真与实验**:在ROS的模拟环境中如Gazebo测试控制策略,或者直接在硬件上运行。 8. **错误处理与日志记录**:通过ROS的日志系统,监控系统的状态并及时处理可能出现的问题。 如果你想要更深入地了解如何用ROS控制四轮小车,可能会涉及到编写特定的控制算法、编写ROS包以及学习相关的ROS教程和示例代码。这里只是给出了一个概览,具体实施会依赖于你的技术背景和所需功能的复杂程度。有关此话题的具体问题可以有: 1. 如何设置车辆的动力学模型参数? 2. 在ROS中如何订阅和发布车轮的速度数据? 3. 有没有推荐的ROS教程或资源初学者可以参考?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值