# ros_simulink **Repository Path**: yangrun520/ros_simulink ## Basic Information - **Project Name**: ros_simulink - **Description**: ros和Simulink的联合仿真,横向控制采用的是stanley算法 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2021-05-27 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 更新日志 2021/03/10 增加后轮反馈控制算法rear wheel feedback control 2021/03/12 新增的后轮反馈算法调试效果较差,等待以后改进 2021/03/15 修改了ros_stanley节点的软件架构,去掉了Eigen/Dense包,代码可读性更好 2021/05/21 新增了mpc控制算法,请切换develop分支查看。在src/nodes/ros_mpc下。 ### 使用说明 #### 0分支说明 master分支:仅仅只包含stanley控制算法和相关的ros通信模块。 develop分支:包含目前正在开发的横向控制模块,包括后轮反馈控制,mpc控制。 PreScan分支:包含了prescan工程的压缩文件,解压后配合控制程序,可以直接进行prescan-ros仿真。 #### 1环境说明 pc1:装win10系统;运行prescan8.4和matlab2019b;ip = 172.16.6.248 pc2:Ubuntu18.04,ros melodic;ip = 172.16.6.70 #### 2使用说明 ##### 2.1修改pc2的.bashrc文件,向其中添加pc2的ip地址 ```c++ sudo gedit ~/.bashrc //打开bashrc //添加地址 export ROS_IP=172.16.6.70 export ROS_MASTER_URI=http://172.16.6.70:11311 ``` ##### 2.2运行ros master节点和ros_stanley节点 ```c++ roscore //运行ros master节点 //进入ros的工作空间 rosrun ros_stanley n_stanley_controller //运行ros_stanley节点 ``` ##### 2.3配置pc1的Simulink工程 在matlab命令行中输入 ```matlab setenv('ROS_MASTER_URI', 'http://172.16.6.70:11311') %pc2的ip setenv('ROS_IP','172.16.6.248') %PC1 win10的ip rosinit('172.16.6.70') %pc2的ip ``` #### 3控制算法测试效果 ##### 3.1Stanley算法 1. 仿真的参考轨迹和车辆的初始位置 ![](https://hyh-image-0416.oss-cn-beijing.aliyuncs.com/images/Typora参考轨迹和初始车辆位置.PNG) 2. 轨迹偏差图 ![](https://hyh-image-0416.oss-cn-beijing.aliyuncs.com/images/TyporaxyAndxyreal.bmp) 3. 横向偏差图 ![front_error](https://hyh-image-0416.oss-cn-beijing.aliyuncs.com/images/Typorafront_error.bmp) ##### 3.2MPC算法 ###### 3.2.1直线工况[N=25,dt=0.05,迭代60次] ![mpc_simulation](https://hyh-image-0416.oss-cn-beijing.aliyuncs.com/images/Typorampc_simulation.png)