racecar仿真竞赛经验总结(二)- racecar仿真模型介绍
racecar仿真竞赛经验总结(二)- racecar仿真模型介绍
上篇博客链接:racecar仿真竞赛经验总结(一) - 前言
模型搭建
在上篇博客的依赖安装完全的基础上:
直接使用github上搭建好的模型
- 访问racecar_github仓库并下载相应功能包
- 新建一个workspace,并将/src移动到该工作空间下
- 在当前工作空间中右键打开终端,输入以下命令编译:
catkin_make
- 建议直接将工作路径添加到系统总bashrc文件中,用以下命令可以进行编辑
gedit ~/.bashrc
在最后添加 source + 工作空间路径 即可,这样每次roslaunch就可以自动source,如果不添加需要在每次打开工作空间时在终端输入 source devel/setup.bash 进行手动source(一定要在总目录下)
由于该模型用到了robot_pose_ekf,odom_tf_converter,rf2o_laser_odometry三个额外功能包,可能需要安装一些其他依赖,根据cmake提示进行安装即可(melodic版本可能会遇到一些问题无法正常使用,建议还是使用kinetic)
鉴于博主开源代码中的模型已搭建完成,进行到这一步就可以直接使用launch文件启动了,这里简要介绍一些常用功能的启动,具体的使用方法在github中已详细说明
- 启动rviz和gazebo查看小车结构以及初始地图
roslaunch racecar_gazbeo racecar_rviz.launch
- 启动键盘控制节点
由于博主将这个node编写到racecar.launch文件中了,这里找到racecar.launch文件中的节点控制取消注释后重新使用上面的roslaunch,在打开的gazebo环境中就可以使用键盘控制小车运动
重新搭建模型
为了方便入门,这里建议直接使用北邮老哥提供的racecar_demo
- 创建新的工作空间
mkdir -p smartcar_ws/src
- 初始化工作空间
cd ~/smartcar_ws/src
catkin_init_workspace
然后导入仿真文件,将百度云下载的压缩文件解压,将其中的racecar_description.7z文件复制到smartcar_ws/src下并提取(如下图):
将压缩文件中的smartcar_plane.7z文件提取到.gazebo下的models下,具体操作如下:
- 在home目录下ctrl + h显示隐藏文件
- 找到.gazebo文件
- 进入文件中的models文件夹(如果没有就自己创建一个)
- 将smartcar_plane.7z解压到models下
- 在racecar_description文件夹下创建worlds文件夹,然后把百度网盘的world文件放到下面:
- 修改一下launch文件夹中的racecar.launch文件:
- 编译工程:
cd ~/smartcar_ws
catkin_make
- 使能环境变量:
echo "source ~/smartcar_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 启动仿真环境:
roslaunch racecar_description racecar.launch
- 启动rviz和gazebo:
roslaunch racecar_description racecar_rviz.launch
关于运动控制的配置
官方提供的车模已经配置好了关节,要做的就是写关节的控制器,关节控制器代码在racecar_control/config/racecar_control.yaml文件中,内容如下:
其中Velocity Controllers部分控制转速的pid以及关节定义,Position Controllers部分配置转向关节的pid以及关节定义,对照官方的车模(文件路径在~/urdf/racecar.urdf.xacro下)修改对应的关节名字就行,也可以根据launch文件修改相应关节名:
在<!–load the controllers–>中指明了各个关节名,对应进行修改就行,有问题也可以参考github中/src文件下已修改的文件就行