$ mkdir -p ~/catkin_ws/src #在home目录下创建两个文件夹/catkin_ws/src
$ cd ~/catkin_ws/src #转移到/catkin_ws/src目录下
$ catkin_init_workspace #初始化工作空间
$ cd ~/catkin_ws/ #返回/catkin_ws目录下
$ catkin_make #编译工作空间
$ gedit ~/.bashrc #打开home目录下的.bashrc文件
在.bashrc最后一行添加“source ~/catkin_ws/devel/setup.bash”
$ cd ~/catkin_ws/src #转移到/catkin_ws/src目录下
$ catkin_create_pkg mbot_description urdf xacro gazebo_plugins gazebo_ros gazebo_ros_control roscpp rospy #创建“mbot_description”功能包,依赖“urdf xacro…...”
$ cd ~/catkin_ws #返回到/catkin_ws目录下
$ catkin_make #编译工作空间
“catkin_ws”中有“build”、“devel”、“src”:
“src”中有“mot_description”和“CMakeLists.txt”:
在“mbot_description”中创建以下文件夹:“urdf”、“meshes”、“launch”、“config”
在mbot_description/urdf下创建“mbot_base.urdf”文件,并写入以下内容
运行
$ roslaunch mbot_description display_mbot_base_urdf.launch
若RVIZ没有显示机器人模型
(1)在“Fixed Frame”下选择“base_link”
(3)若要观察坐标关系,还可以添加“TF”
在mbot_description/urdf的“mbot_base.urdf”文件添加车轮相关描述代码,并运行launch文件显示
2.2.3机器人添加前后支撑轮
在mbot_description/urdf的“mbot_base.urdf”文件添加支撑轮相关描述代码,并运行launch文件显示
2.2.4机器人添加kinect传感器
在mbot_description/urdf的“mbot_base.urdf”文件添加kinect传感器相关描述代码,并运行launch文件显示,需要将课程例程的“meshes”文件夹中的kinect描述文件添加到功能包的“meshes”下。
2.2.5检查URDF模型的整体结构
运行
$ urdf_to_graphiz mbot_base.urdf
在“mbot_description/urdf”下创建“mbot_base_gazebo.urdf”,并把“mbot_base.urdf”的内容复制到“mbot_base_gazebo.urdf”中。在“mbot_description/launch”下创建“gazebo_mbot_base_urdf.launch” 。
前后支撑轮front、back_caster_link
3.3.3插入kinect传感器插件
传感器插入后可运行
$ roslaunch mbot_description gazebo_mbot_base_urdf.launch
来查看传感器的效果,运行后,在RVIZ 的“add”中添加点云图像
然后在gazebo中放入任意物体
3.4.2添加差速运动控制器
3.4.3测试控制程序
首先,把附件的mbot_teleop功能包添加到工作空间源文件目录(~/catkin_ws/src)下,然后
$ cd ~/catkin_ws/ #返回/catkin_ws目录下
$ catkin_make #编译工作空间
$ roslaunch mbot_description gazebo_mbot_base_urdf.launch #运行仿真程序
打开一个新的终端:
$ roslaunch mbot_teleop mbot_teleop.launch
如图所示,通过键盘对应按键就能控制机器人运动
运行$rqt_graph
可以看到整个系统的计算图,/mbot_teleop发送控制命令/cmd_vel给仿真环境/gazebo的车,/gazebo经过计算之后把坐标变换输出,而/joint_state_publisher则控制机体内部关节的坐标变换。
古月居的博客