0


ros机器小车运动控制

目录

机器人小车运动控制设计

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为小车的速度瞬心。

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


本文转载自: https://blog.csdn.net/qq_50242449/article/details/129209645
版权归原作者 qq_50242449 所有, 如有侵权,请联系我们删除。

“ros机器小车运动控制”的评论:

还没有评论