I want you to read this contents as a reference. This might be good answer. I wrote following sentences in minimal.launch
< arg name="base" default="$(optenv TURTLEBOT_BASE kobuki)"/ >
< arg name="battery" default="$(optenv TURTLEBOT_BATTERY /sys/class/power_supply/BAT0)"/ >
< arg name="stacks" default="$(optenv TURTLEBOT_STACKS hexagons)"/ >
< arg name="3d_sensor" default="$(optenv TURTLEBOT_3D_SENSOR kinect)"/ >
< arg name="sensor" default="$(optenv TURTLEBOT_SENSOR hokuyo)"/ >
< arg name="simulation" default="$(optenv TURTLEBOT_SIMULATION false)"/ >
< arg name="tf_prefix" default="" / >
< param name="/use_sim_time" value="$(arg simulation)"/ >
< include file="$(find turtlebot_bringup)/launch/includes/robot.launch.xml >
< arg name="base" value="$(arg base)" / >
< arg name="stacks" value="$(arg stacks)" / >
< arg name="3d_sensor" value="$(arg 3d_sensor)" / >
< arg name="sensor" value="$(arg sensor)" / >
< /include >
In turtlebot_bringup/launch/includes/robot.launch.xml
,
I added two sentences to robot.launch.xml
< launch >
< arg name="sensor"/ >
< include file="$(find turtlebot_bringup)/launch/includes/description_kobuki.launch.xml" >
< arg name="sensor" value="$(arg sensor)" / >
< /include >
In kobuki_description.launch,
< launch >
< arg name="base"/>
< arg name="stacks"/>
< arg name="3d_sensor"/>
< arg name="sensor"/>
< arg name="urdf_file" default="$(find xacro)/xacro.py '$(find turtlebot_description)/robots/$(arg base)_$(arg stacks)_$(arg 3d_sensor)_$(arg sensor).urdf.xacro'" />
< param name="robot_description" command="$(arg urdf_file)" / >
< /launch>
In kobuki_hexagons_kinect_hokuyo.urdf.xacro,
< robot name="turtlebot" xmlns:xacro="http://ros.org/wiki/xacro">
< xacro:include filename="$(find turtlebot_description)/urdf/turtlebot2_library.urdf.xacro" />
< kobuki/>
< stack_hexagons parent="base_link"/>
< sensor_kinect parent="plate_top_link"/>
< sensor_hokuyo parent="plate_middle_link">
</robot >
After that, I just write *.urdf.xacro.
I have added hokuyo sensor to turtlebot2 model and have changed position of kinect to on the top plate. In my case, I edited
minimal.launch
,hexagon.urdf.xacro
in/turtlebot_description/urdf/stacks
and so on.Thanks so much. I know the way to editing .urdf.xacro of certain components, such as your hexagon, but in researching minimal.launch I still don't know where should I edit? Note that the second "include file" points to _robot.launch, should I edit _robot.launch? _robot.launch still confused me.