上一节已经将urdf导出来了,这一节需要配置一下xacro文件。先看一下导出的功能包在gazebo以及rviz中显示的效果。
将功能包放进工作空间进行编译,source一下环境,先看gazebo:
roslaunch tianracer_description gazebo.launch
可以看到模型已经加载到gazebo中的empty_world中了,此时模型还是白板,稍后可对颜色进行配置。
再看rviz,先修改tianracer_description/launch中的 arg name="gui" default="False"改为arg name="gui" default="True"
roslaunch tianracer_description display.launch
此时左侧会出现joint_state_publisher的可视化窗口,拖动上边的动态条即可控制小车的每个关节。
新建tianracer_description.xacro文件,将urdf文件中的代码复制过来,并对其进行修改。
上边主要修改的内容是第一句修改为xacro声明:
以及一些惯性参数的修改。
本次项目做的是基于twist消息的阿克曼转向移动机器人,为实现该机器人的运动学,我们给两个后轮以及连接两个前轮的steer添加传动装置。为使用ROS控制驱动机器人,需要在模型中加入transmission元素,将传动装置与joint绑定。
transmission_interface/SimpleTransmission
hardware_interface/EffortJointInterface
hardware_interface/EffortJointInterface
1
100
transmission_interface/SimpleTransmission
hardware_interface/EffortJointInterface
hardware_interface/EffortJointInterface
1
100
transmission_interface/SimpleTransmission
hardware_interface/VelocityJointInterface
hardware_interface/VelocityJointInterface
1
transmission_interface/SimpleTransmission
hardware_interface/VelocityJointInterface
hardware_interface/VelocityJointInterface
1
在与tianracer_description.xacro路径相同路径下新建tianracer.gazebo文件
添加gazebo插件
由于车轮实际上会接触地面,因此会与地面发生物理相互作用,将各个link添加部件材料的附加信息,并且定义各个link的颜色信息。参考
[gazebo官网] http://gazebosim.org/tutorials/?tut=ros_urdf
Gazebo/Red
Gazebo/Grey
Gazebo/Black
Gazebo/Grey
Gazebo/Black
Gazebo/Black
Gazebo/Black
添加ros_control插件
由于gazebo并没阿克曼车型的插件,要链接gazebo与ros,我们先添加ros_control插件,它读取所有transmission标记,以及joint_state_publisher插件
/tianracer
robot_description
gazebo_ros_control/DefaultRobotHWSim
true
left_rear_wheel_joint, right_rear_wheel_joint, left_steering_hinge_joint, right_steering_hinge_joint, right_front_wheel_joint,left_ front_wheel_joint
50.0
/tianracer
true
添加二维激光雷达插件
Gazebo/Grey
0 0 0.0124 0 0 0
false
40
1081
1
-2.3561944902
2.3561944902
0.1
10.0
0.01
0.0
0.01
/scan
lidar
注意雷达的名字需要与link名对应上。
添加单目摄像头以及深度摄像头插件
Gazebo/Grey
30.0
1.3962634
800
800
R8G8B8
0.02
300
gaussian
0.0
0.007
true
0.0
rrbot/camera1
image_raw
camera_info
camera
0.07
0.0
0.0
0.0
0.0
0.0
true
20.0
${60.0*3.14/180.0}
R8G8B8
640
480
0.05
8.0
real_sense
true
10
rgb/image_raw
depth/image_raw
depth/points
rgb/camera_info
depth/camera_info
real_sense
0.1
0.0
0.0
0.0
0.0
0.0
0.4
这里深度摄像头的插件用kinect的插件代替。
最后将tianracer.gazebo添加到tianracer_description.xacro文件里边:
至此,我们已经配置好小车的各个link的颜色以及传感器的插件,但我们仍无法让小车运动起来,因为我们还未配置小车的controllers。下一节通过配置controllers让小车动起来。
1.古月老师的<
2.从零开始自动驾驶:https://www.bilibili.com/video/BV1ZJ41187tS?spm_id_from=333.999.0.0