目录

1 机器人小车的简单介绍

1.1  小车结构

2 开始测试和运动前的准备工作

2.1  创建并编译功能包practice:

2.1.1  创建功能包practice:

2.1.2  编译功能包practice:

2.2查看话题消息

3 代码分析

3.1  编写小车运动的py文件,并进行编译调试

3.2  launch一键启动文件

4 在仿真器中模拟小车路径

5 图案分析解释

6 实验原理:

7 算法流程及小车实际运行路线结果分析:

8 实验思路与分析体会

机器人小车运动控制设计

1 机器人小车的简单介绍

1.1  小车结构

本次实验采用的是EPRobot智能小车,EPRobot 智能小车是为本科、高职等不同人群计算机编程、机器人开发以及嵌入式 系统开发等方向定制开发的学习平台。EPRobot 基于最新的树莓派 4B 卡片式电脑开发,搭载深度定制的底盘控制器,让小车的功能与性能达到极致。

与市面产品不同的是思岚 A1 达是停止的,运行 ROS 的启动程序之后才会转动,这样能够更有效地利用电池,并大大省去了手工开关雷达的麻烦。

2 开始测试和运动前的准备工作

在虚拟机或者小车系统上新建一个工作空间,用来存放要测试运行的代码,其次要新建功能包以及编译工作空间。而此次做实验我们采用的是小车上的树莓派,很多相关设置均已配置完善,所以我采用的是小车上已经编译并设置好环境变量的工作空间robot_ws,在其中进行功能包的创建和编译:

2.1  创建并编译功能包practice:

2.1.1  创建功能包practice:

$cd ~/robot_ws/src

$catkin_create_pkg practice std_msgs roscpp rospy

2.1.2  编译功能包practice

$cd ~/robot_ws

$catkin_make

#catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"

$source ~/robot_ws/devel/setup.bash

2.2查看话题消息

rosmsg show nav_msgs/Odometry

std_msgs/Header header

uint32 seq

time stamp

string frame_id

string child_frame_id

geometry_msgs/PoseWithCovariance pose

geometry_msgs/Pose pose

geometry_msgs/Point position

float64 x

float64 y

float64 z

geometry_msgs/Quaternion orientation

float64 x

float64 y

float64 z

float64 w

float64[36] covariance

geometry_msgs/TwistWithCovariance twist

geometry_msgs/Twist twist

geometry_msgs/Vector3 linear

float64 x

float64 y

float64 z

geometry_msgs/Vector3 angular

float64 x

float64 y

float64 z

float64[36] covariance

3 代码分析

3.1  编写小车运动的py文件,并进行编译调试

3.2   launch一键启动文件

  通过对小车的使用可以知道,在 ROS 中运行程序大多是通过系统启动完成后,使用 ssh 软件或者虚拟机的 ssh 命令连接小车,再通过远程终端输入指令,运行相应的launch 文件才能执行相关程序。但是在很多情况下,我们需要小车树莓派的 ROS 程序像单片机程序一样,开机就能够自动执行,比如将我们开发完成的程序应用于某个产品。所以,我们就需要将指定的 ROS 程序设置为开机自启动。

本实验将设置test.launch 文件为开机自启动,主要是通过单片机和TCP的连接互通。

<launch>

<include file="$(find robot_ws)/launch/EPRobot_start.launch"/>

<node  pkg="practice"  name="practice" type="test.py" output="screen"/>

</launch>

4 在仿真器中模拟小车路径

在仿真中模拟我们此次采用的是arbotix模拟器+rviz的显示,主要命令如下:启动小车底层驱动程序:roslaunch eprobot_start EPRobot_start.launch

启动仿真器:roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch(如图3)

启动键盘控制:roslaunch mbot_teleop mbot_teleop.launch

启动py文件:rosrun practice test1.py

6 实验原理:

我们此次使用的小车使用的是树莓派ros程序,其中EPRobot 使用的路径规划和导航算法为 TEB 算法,该算法针对于阿克曼底盘结构的小车。如果机器人为圆形差分转向小车,需要使用 DWA 算法。

定义X1方向为小车的正方向,则为机器人的方向角,因此用一个三维向量就完全可以表示机器人的运动路径,机器人在平面上的位姿表述。

做直线运动时,及要求在运动过程中小车的方向角为常数,故=0

做圆弧运动的情况如图7所示,则要考虑小车的回转半径,回转中心0为小车的速度瞬心。

由刚体运动学知识容易得出小车的瞬时运动状态,由此得知左轮转速小于右轮或者右轮运动时右轮转速小于左轮,机器人质心实现圆弧运动。

ros机器小车运动控制相关推荐

  1. 【DIY】树莓派ROS智能小车

    最近手里有一辆 clb 的树莓派ROS履带小车,不过放了好久,功能有点问题,最近打算把小车重新拆装.清洗,软件也重新刷写,然后顺便记录以下功能调试的过程. 文章目录 一.简介 二.机械部分 三.电气部 ...

  2. ROS:小车线速度、角速度、转弯半径之间的关系

    ROS:小车线速度.角速度.转弯半径之间的关系 v:线速度,单位:m/s ω:角速度,单位:rad/s r:转弯半径 ΔS:弧长 T:周期,单位:s f:频率,单位:h.Hz v = ωr v = Δ ...

  3. 【5. ROS机器人的运动控制】

    [ROS机器人的运动控制] 1. 前言 2. 机器人的运动 3. 机器人的运动速度单位 4. geometry_msgs模型 5. 用C++实现机器人运动控制 5.1 新建vel_pkg包 5.2 编 ...

  4. Ros智能小车麦克纳姆轮、橡胶轮的加紧固办法、轮子紧固不脱离

    玩过智能小车的大概有这样的经验,用买到的轮子,安装在车上,车子左右移动,轮子很容易脱落,轮子松和脱落都是很头痛的事情.那有没有办法加固呢,怎么加固呢. 买回来的轮子安装方式如下: 就是在固件上靠螺丝来 ...

  5. ROS机器人小车底盘DIY有何难?不枉学一番工业设计,巧手搭躯壳

    ROS机器人小车底盘DIY有何难?不枉学一番工业设计,巧手搭躯壳 目标: 四轮驱动,可扩展多层的车架结构. 孔位设计: 固定轮子(底座) 固定雷达 固定扩展多层支柱 固定主板,其他传感器,穿线孔等 c ...

  6. ROS导航小车经验总结

    经验教训 QS1:rviz地图与gazebo不同步 详细描述: 工作空间:仿真项目 文件位置 course03 启动urdf_gazebo/launch/union.launch (模型启动文件 和 ...

  7. ROS开源小车TurtleBot3详情介绍

    您为什么要选择ROS开源智能小车 ROS(Robot Operating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象, ...

  8. ros轮式小车学习链接

    https://www.ncnynl.com/archives/201703/1418.html搭建ROS小车底盘B-通过ROS利用键盘控制小车移动 http://www.bubuko.com/inf ...

  9. 基于工业树莓派的AGV机器小车控制系统

    前言 2020年爆发的疫情放大了人在自然风险下的脆弱性,也进一步地促进了AGV等自动化设备在各行领域的应用.自动导向小车(AGV)是一种移动机器人,主要用来储运各类物料,为系统柔性化.集成化.高效运行 ...

最新文章

  1. 文件批量重命名的技术,你值得拥有
  2. weblogic 部署后出现Error 404–Not Found
  3. Python continue
  4. bat 批处理 常用命令和乱码问题
  5. Opencv--学习Opencv比较好的网址
  6. 【CAS】Implementing generic double-word compare and swap for x86/x86-64
  7. 谷歌跟风推微信小程序;中兴解禁后首获订单;Yahoo Messenger正式关闭 | 极客头条...
  8. the third assignment of software testing
  9. ISO9001-2008标准(中英文对照)
  10. 卡耐基——如何避免为你的婚姻挖掘坟墓
  11. 系统安全检测(使用John进行密码破解)
  12. PhotoShop修改图片文字
  13. 【官方】2023年“中国软件杯”大学生软件设计大赛飞桨小汪赛道基线系统
  14. LINUX磁盘分区和添加磁盘的一些命令
  15. 5年Java开发月薪43k 谁能想到实习期的我月薪只有2K呢?
  16. 人工智能算法 猴子摘香蕉
  17. RecyclerView居中问题
  18. 字典类型常用操作和方法
  19. Ae 表达式语言引用​:Path Property
  20. 关于Windows系列密码抓取

热门文章

  1. Sp6 PLL and PLL_DRP使用技巧小结
  2. 车间设备联网与MES系统解决方案
  3. 腾讯云BIM协同平台功能介绍之工作空间(二)——创建文件和会议管理
  4. DFS算法(python)
  5. 配AR HUD 上汽大众ID4X光荷4X售价25万内
  6. onedrive android 最新版,microsoft onedrive下载-Microsoft OneDrive 安卓版v5.29.1-PC6安卓网
  7. 北京秋日风景-最大的银杏林海景色
  8. window10下手动安装php7
  9. 2023 软件测试行业内卷动荡,红利期过去后,何去何从?
  10. 软件测试如何批量造数据