《自动驾驶入门:从建模到跟随》学习笔记小车建模及话题控制
Posted Sakurazzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《自动驾驶入门:从建模到跟随》学习笔记小车建模及话题控制相关的知识,希望对你有一定的参考价值。
《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制
在学习《自动驾驶入门:从建模到跟随》课程时,记录了学习过程中的编程练习,课后作业以及发现的问题,后续会对尚未解决的问题继续分析并更新,纯小白,仅供参考。
本次学习笔记关于课程中的第1-7讲 。主要对小车的xacro建模以及topic通信进行学习实践。
1.小车Xacro建模
代码均来自课程代码包,不再贴出。
通过以下代码在Gazebo环境下加载模型:
$ roslaunch gazebo_ros empty_world.launch
$ roslaunch joint_rostopic spawn_car.launch
2.Topic通信
首先在小车的xacro模型中完善传动装置,加入以下gazebo插件,以添加相应的话题。
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNamespace>/$(arg roboname)</robotNamespace>
<robotParam>robot_description</robotParam>
<robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
</plugin>
</gazebo>
<gazebo>
<plugin name="joint_state_publisher" filename="libgazebo_ros_joint_state_publisher.so">
<jointName>rear_left_wheel_joint, rear_right_wheel_joint, front_left_steering_joint, front_right_steering_joint, front_right_wheel_joint, front_left_wheel_joint</jointName>
<updateRate>50.0</updateRate>
<robotNamespace>/$(arg roboname)</robotNamespace>
<alwaysOn>true</alwaysOn>
</plugin>
</gazebo>
然后在命令行中输入:
$ rostopic list
发现话题列表中并没有我们所添加的自定义话题,在提示信息中有如下的警告:
[WARN] Controller Spawner couldn't find the expected controller_manager ROS interface
说明我们的gazebo没有安装control包,通过以下命令进行安装(注意可能需要下载3个包,melodic对应自己的ros版本)
$ sudo apt-get install ros-melodic-ros-controllers
$ sudo apt-get install ros-melodic-gazebo-ros-control
$ sudo apt-get install ros-melodic-ros-control
安装完毕后再次查看话题列表,显示的话题已经完整,如下所示:
使用命令行发布话题消息来控制前轮转向:
$ rostopic pub /smart/front_right_steering_positiocontroller/command std_msgs/Float64 "data: 1.0"
仿真结果如下图所示:
最后使用echo命令可以监听话题信息:
$ rostopic echo /smart/front_left_steering_position_controller/state
显示结果如下:
以上是关于《自动驾驶入门:从建模到跟随》学习笔记小车建模及话题控制的主要内容,如果未能解决你的问题,请参考以下文章
自动驾驶仿真开发工具PreScan快速入门系列-第一期-Prescan架构及基础场景建模