ros机器小车运动控制
目录
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机器小车运动控制相关推荐
- 【DIY】树莓派ROS智能小车
最近手里有一辆 clb 的树莓派ROS履带小车,不过放了好久,功能有点问题,最近打算把小车重新拆装.清洗,软件也重新刷写,然后顺便记录以下功能调试的过程. 文章目录 一.简介 二.机械部分 三.电气部 ...
- ROS:小车线速度、角速度、转弯半径之间的关系
ROS:小车线速度.角速度.转弯半径之间的关系 v:线速度,单位:m/s ω:角速度,单位:rad/s r:转弯半径 ΔS:弧长 T:周期,单位:s f:频率,单位:h.Hz v = ωr v = Δ ...
- 【5. ROS机器人的运动控制】
[ROS机器人的运动控制] 1. 前言 2. 机器人的运动 3. 机器人的运动速度单位 4. geometry_msgs模型 5. 用C++实现机器人运动控制 5.1 新建vel_pkg包 5.2 编 ...
- Ros智能小车麦克纳姆轮、橡胶轮的加紧固办法、轮子紧固不脱离
玩过智能小车的大概有这样的经验,用买到的轮子,安装在车上,车子左右移动,轮子很容易脱落,轮子松和脱落都是很头痛的事情.那有没有办法加固呢,怎么加固呢. 买回来的轮子安装方式如下: 就是在固件上靠螺丝来 ...
- ROS机器人小车底盘DIY有何难?不枉学一番工业设计,巧手搭躯壳
ROS机器人小车底盘DIY有何难?不枉学一番工业设计,巧手搭躯壳 目标: 四轮驱动,可扩展多层的车架结构. 孔位设计: 固定轮子(底座) 固定雷达 固定扩展多层支柱 固定主板,其他传感器,穿线孔等 c ...
- ROS导航小车经验总结
经验教训 QS1:rviz地图与gazebo不同步 详细描述: 工作空间:仿真项目 文件位置 course03 启动urdf_gazebo/launch/union.launch (模型启动文件 和 ...
- ROS开源小车TurtleBot3详情介绍
您为什么要选择ROS开源智能小车 ROS(Robot Operating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象, ...
- ros轮式小车学习链接
https://www.ncnynl.com/archives/201703/1418.html搭建ROS小车底盘B-通过ROS利用键盘控制小车移动 http://www.bubuko.com/inf ...
- 基于工业树莓派的AGV机器小车控制系统
前言 2020年爆发的疫情放大了人在自然风险下的脆弱性,也进一步地促进了AGV等自动化设备在各行领域的应用.自动导向小车(AGV)是一种移动机器人,主要用来储运各类物料,为系统柔性化.集成化.高效运行 ...
最新文章
- 文件批量重命名的技术,你值得拥有
- weblogic 部署后出现Error 404–Not Found
- Python continue
- bat 批处理 常用命令和乱码问题
- Opencv--学习Opencv比较好的网址
- 【CAS】Implementing generic double-word compare and swap for x86/x86-64
- 谷歌跟风推微信小程序;中兴解禁后首获订单;Yahoo Messenger正式关闭 | 极客头条...
- the third assignment of software testing
- ISO9001-2008标准(中英文对照)
- 卡耐基——如何避免为你的婚姻挖掘坟墓
- 系统安全检测(使用John进行密码破解)
- PhotoShop修改图片文字
- 【官方】2023年“中国软件杯”大学生软件设计大赛飞桨小汪赛道基线系统
- LINUX磁盘分区和添加磁盘的一些命令
- 5年Java开发月薪43k 谁能想到实习期的我月薪只有2K呢?
- 人工智能算法 猴子摘香蕉
- RecyclerView居中问题
- 字典类型常用操作和方法
- Ae 表达式语言引用​:Path Property
- 关于Windows系列密码抓取