概述
目录
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 机器人小车的简单介绍的全部内容,希望文章能够帮你解决ros机器小车运动控制1 机器人小车的简单介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复