ROS寻迹小车

一目的

1.自行导入某车型的mesh文件到URDF/Xacro模型(碰撞检测边框长度小数点位数保留三位:最后两位是学号最后两位),四轮驱动;

2.搭建一个具有城市或者越野行驶路面,不少于3处障碍的行驶环境;

3.给无人车装配摄像头、Kinect、激光雷达等传感器。

4.通过键盘控制无人车,采用rqt绘制出无人车的行驶轨迹和纵横向速度、横摆角速度等信息。

5.无人车能够自主巡线返回起点(允许用自定义的图片设计gazebo地板)。

二过程

(一)创建功能包

首先,建立功能包mycar,在mycar里面,建立文件夹config,launch,meshes,urdf,worlds,scripts等。其中config文件夹中保存运动控制器以及rviz的配置的内容。launch文件夹中保存启动文件。meshes文件夹中保存着机器人部件的信息。urdf文件夹里保存着机器人组成以及传感器信息。worlds里保存着gazebo的环境。scripts里保存着python脚本文件。

(二)solidworks转换成urdf

1在网上浏览四轮汽车,在选到一款大小合适的车后,下载相应的solidworks文件。

2接着,下载solidworks_urdf_exporter-1.6.1插件,在solidwork中使用。将汽车分为五部分,设置相对应的旋转轴以及坐标系,以及转动惯量等参数,进行转换。

3设置camera等部件,为之后的gazebo的配置传感器做准备。

4对转换后的urdf文件进行修改。

(三)搭建行驶路面

1根据题目要求需要搭建城市或者越野行驶路面,考虑到下学期的ROS课程的内容,以及搭建教室环境与搭建城市与越野路面并不存在太多差异,于是我就搭建了一个教室的环境,这样便于下学期的课程,进行仿真。

2在主目录的.gazebo文件夹中进行修改,添加所要的图片以及配置相关的参数,其中图片包含相应的运动路线。在主目录的building_editor_models里有墙壁的文件。(my_ground_plane以及各种文件已经放到了worlds文件夹中)(假如打不开,worlds文件夹里有备用的world,以及路径可能需要自己设置。)

(四)配置传感器

1编写各种xacro文件,其中配置了传感器的各种信息以及控制器的信息。

2编写总的xacro文件,其中包含了其他xacro文件。

3在rviz中,添加各种配置,进行传感器信息的显示。

 

(五)控制运动

1 启动launch文件

 

 2 rosrun teleop_twist_keyboard teleop_twist_keyboard.py。控制小车的运动,观察rviz以及gazebo中小车的运动。

 2在urdf中添加插件,可以发送小车运动的位置,速度信息。

3打开rqt_graph,添加各种topic,观察曲线的变换。

/base_pose_ground_truth/twist/twist/linear/x和/y、/z表示小车的线速度。

/base_pose_ground_truth/twist/twist/angular/x和y,z表示小车的角速度。

/base_pose_ground_truth/pose/pose/position/x和y、/z表示小车的位置。

/base_pose_ground_truth/pose/pose/orientation/w和x、y、z表示小车位姿。

(六)运行python脚本文件

1执行python文件,建立follower节点,接受gazebo发布的图像信息,检测黄色线条,经过计算后,发布/cmd_vel的topic,进而控制小车的巡线行驶。

三 遇到错误以及解决办法

1在solidworks转换为urdf过程中,出现了坐标系紊乱,旋转轴错误的一系列问题。改正方法是手动设置坐标系,以及旋转轴,注意,旋转轴的朝向应该统一。

2在添加地板图片时发现,添加地板后,传感器检测到的图像会一闪一闪,经过排查发现,需要删除原有地板,添加新的图片。

3添加camera的传感器后,发现系统会报错,将camera传感器发布的topic修改为cameras后,问题得到解决。

4在打开gazebo时,有时会出现gazebo-2] process has died红色报错,此时需要输入killall gzserver,杀死进程,重新打开。

5在执行python时,发现,小车并不会行驶,经过检测发现。follower节点并没有发布/cmd_vel的topic控制小车运动。重新改正python中publisher的位置,修改相应的代码后,发现有了topic上的交流,小车实现了运动。

四 总结

基本上完成的项目的主要任务,可以控制小车运动,并且还可以巡线行驶,在面对很急的弯路以及连续的弯路,也表现良好,十分稳定。

存在的问题是,小车在启动时可能会出现晃动,以及建模并不是很精良。

百度网盘链接

链接:https://pan.baidu.com/s/1_ny3jhrbuGDKeUhALxcmdQ 
提取码:0ksb

  • 5
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值