這是我在古月居上找的(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