这是我在古月居上找的(http://www.guyuehome.com/243),但直接运行的话,没办法跑起来,我也是查了好多博客和日志,才实现最后的功能的,所以,记录下来,以备后用吧,也欢迎其他和我一样学习ROS的同学和我一块儿讨论交流。我采用的是易科机器人实验室的ubuntu12.04-amd64-ros-exbot-h2-14052版本。我在网上找过好多教程,发现好多大牛日志都是纯自己安装的版本,不是发行版,所以,有用发行版的同志,可以参考我的。
下载地址是:
http://blog.exbot.net/archives/702
里面都装好了。言归正传,继续:
step1创建硬件描述包
$ cd ~/catkin_ws/src
$catkin_create_pkg smartcar_description std_msgs rospy roscpp urdf
step2 建立urdf,launch命令文件
step2.1建立urdf命令文件
在 smartcar_description 文件夹下建立 urdf 文件夹,创建智能车的描述文件smartcar.urdf
$cd smartcar_description
$mkdir urdf
$cd urdf
$touch smartcar.urdf
接下来打开新建的 smartcar_description文件夹下,再打开 urdf 文件夹里创建的描述文件smartcar.urdf然后把下面的代码粘到里面。(这条不是在终端中进行的,而且像windows系统中打开“我的电脑”那样,一步步打开文件夹)
<?xml version="1.0"?> <robot name="smartcar"> <link name="base_link"> <visual> <geometry> <box size="0.25 .16 .05"/> </geometry> <origin rpy="0 0 1.57075" xyz="0 0 0"/> <material name="blue"> <color rgba="0 0 .8 1"/> </material> </visual> </link> <link name="right_front_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="right_front_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="right_front_wheel"/> <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="right_back_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="right_back_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="right_back_wheel"/> <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="left_front_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="left_front_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="left_front_wheel"/> <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="left_back_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="left_back_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="left_back_wheel"/> <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="head"> <visual> <geometry> <box size=".02 .03 .03"/> </geometry> <material name="white"> <color rgba="1 1 1 1"/> </material> </visual> </link> <joint name="tobox" type="fixed"> <parent link="base_link"/> <child link="head"/> <origin xyz="0 0.08 0.025"/> </joint> </robot>
step2.2建立launch文件
在 smartcar_description 文件夹下建立 launch 文件夹,创建智能车的描述文件base.urdf.rviz.launch(和打开smartcar.urdf做法一样)
base.urdf.rviz.launch,
先进行创建:
$cd ../smartcar_description $mkdir launch $cd launch $touch base.urdf.rviz.launch
描述代码如下,把这段代码粘到新建的base.urdf.rviz.launch里面(和打开smartcar.urdf做法一样):
<launch> <arg name="model"/> <arg name="gui" default="False"/> <param name="robot_description" textfile="$(find smartcar_description)/urdf/smartcar.urdf"/> <param name="use_gui" value="$(arg gui)"/> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"> </node> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz"/> </launch>
step 3检验效果
在终端中输入显示命令:
$roslaunch smartcar_description base.urdf.rviz.launch