直接基于 sl_drivepoint
模型,订阅机器人的 /neor_foxy_mini/pose
坐标信息 xy
,将其作为反馈信息求出前轮偏转角 gamma
和速度 v
(两个公式),发布一个自己的topic节点 sim_akm_topic
( AckermannDrive
类型的信息),自己在wsl写一个订阅节点,订阅 sim_akm_topic
并将信息转化为 AckermannDriveStamp
类型发布给 /neor_foxy_mini/cmd_ackermann
话题
S1 在matlab界面用ros2genmsg()加入ackermann_msgs_master中的AckermannDrive.msg
使用教程:
[Generate custom messages from ROS 2 definitions - MATLAB ros2genmsg
- MathWorks 中国](https://ww2.mathworks.cn/help/ros/ref/ros2genmsg.html)
S2 在wsl中 (1)终端1中打开empty_world
cd neor_mini/sim_20_ws
source install/setup.bash
ros2 launch neor_mini_foxy neor_mini_gazebo.launch.py world:=empty
(2)终端2打开中介节点
cd akm/akm_ws
source install/setup.bash
ros2 run ackermann_interface akm_topic
S3 在simulink中,打开drpoint.slxc,配置好ros2之后运行
仿真结果:
小车到达了(5,5)的位置并停止