《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制

《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制

  • 1.小车Xacro建模
  • 2.Topic通信

在学习《自动驾驶入门:从建模到跟随》课程时,记录了学习过程中的编程练习,课后作业以及发现的问题,后续会对尚未解决的问题继续分析并更新,纯小白,仅供参考。
本次学习笔记关于课程中的第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_descriptionrobotParam>
      <robotSimType>gazebo_ros_control/DefaultRobotHWSimrobotSimType>
    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_jointjointName>
      <updateRate>50.0updateRate>
      <robotNamespace>/$(arg roboname)robotNamespace>
      <alwaysOn>truealwaysOn>
    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

安装完毕后再次查看话题列表,显示的话题已经完整,如下所示:
《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制_第1张图片
使用命令行发布话题消息来控制前轮转向:

$ rostopic pub /smart/front_right_steering_positiocontroller/command std_msgs/Float64 "data: 1.0"

仿真结果如下图所示:
《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制_第2张图片最后使用echo命令可以监听话题信息:

 $ rostopic echo /smart/front_left_steering_position_controller/state

显示结果如下:
《自动驾驶入门:从建模到跟随》学习笔记(一)小车建模及话题控制_第3张图片

你可能感兴趣的:(ROS,linux)