Robotics StackExchange | Archived questions

Relative path for obj files

Hi, I would like to load OBJ files for the models inside my world but Gazebo can't find it even when I define the env GAZEBOMODELPATH on gazebo 9.

Here is my gazebo launch file

<?xml version="1.0"?>

<group ns="$(arg namespace)">

    <!-- Gazebo  -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" default="$(arg world_name)"/>    
    </include>

    <!-- Load the robot description -->
    <param name="robot_description" command="$(find xacro)/xacro $(arg model)"/>

    <!-- Load ros_controllers configuration parameters -->
    <rosparam file="$(find f190_control)/config/ctrl_ackermann_steering_controller.yaml" command="load" ns="$(arg namespace)" />
    <rosparam file="$(find f190_control)/config/control_ackermann_drive.yaml" command="load" ns="$(arg namespace)" />
    <rosparam file="$(find f190_control)/config/ctrl_gains.yaml" command="load" ns="$(arg namespace)" />
    <rosparam file="$(find f190_control)/config/ctrl_joint_state_publisher.yaml" command="load" ns="$(arg namespace)" />
    <rosparam file="$(find f190_control)/config/ctrl_steer_bot_hardware_gazebo.yaml" command="load" ns="$(arg namespace)" />

    <!-- Spawn the controllers -->
    <node pkg="controller_manager" type="spawner" name="controller_spawner" ns="$(arg namespace)"
        args="joint_state_publisher ackermann_steering_controller"
        output="screen" respawn="false" />

    <!-- Launch  the robot state publisher -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher">
        <param name="publish_frequency" value="50.0"/>
    </node>

    <!-- Launch a rqt steering GUI for publishing to /steer_bot/steer_drive_controller/cmd_vel -->
    <node pkg="rqt_robot_steering" type="rqt_robot_steering" name="rqt_robot_steering" >
        <param name="default_topic" value="$(arg namespace)/ackermann_steering_controller/cmd_vel"/>
    </node>

<!-- Launch rviz -->
<node type="rviz" name="rviz" pkg="rviz" args="-d $(find f190_viz)/rviz/f190.rviz" />

    <!-- Spawn robot in Gazebo -->
    <node name="spawn_vehicle" pkg="gazebo_ros" type="spawn_model"
        args="-urdf -param robot_description -model f190
            -gazebo_namespace /$(arg namespace)/gazebo
            -x $(arg x) -y $(arg y) -z $(arg z)
            -R $(arg roll) -P $(arg pitch) -Y $(arg yaw)"
        respawn="false" output="screen" />

</group>

My file hierarchy is as follow :

f190_gazebo

One of my world file :

model://ground_plane model://sun

<model name="road1">
  <pose>61.794 -0.693 0.10  1.57 0 0</pose>
  <static>true</static>
  <link name="body">
    <visual name="visual">
      <geometry>
        <mesh><uri>Asphalt_Subdiv_2_89.obj</uri><scale>0.01 0.01 0.01</scale></mesh>
      </geometry>
    </visual>
  </link>
</model>

<model name="road2">
  <pose>30 -0.34 0.10  1.57 0 0</pose>
  <static>true</static>
  <link name="body">
    <visual name="visual">
      <geometry>
        <mesh><uri>/home/user/Documents/f190_ws/src/f190/f190_gazebo/models/Asphalt_Subdiv_2_89.obj</uri><scale>0.01 0.01 0.01</scale></mesh>
      </geometry>
    </visual>
  </link>
</model>

<model name="road3">
  <pose>0 0 0.10  1.57 0 0</pose>
  <static>true</static>
  <link name="body">
    <visual name="visual">
      <geometry>
        <mesh><uri>/home/user/Documents/f190_ws/src/f190/f190_gazebo/models/Asphalt_Subdiv_2_89.obj</uri><scale>0.01 0.01 0.01</scale></mesh>
      </geometry>
    </visual>
  </link>
</model>

<model name="road4">
  <pose>-30.02 0.32 0.10  1.57 0 0</pose>
  <static>true</static>
  <link name="body">
    <visual name="visual">
      <geometry>
        <mesh><uri>/home/user/Documents/f190_ws/src/f190/f190_gazebo/models/Asphalt_Subdiv_2_89.obj</uri><scale>0.01 0.01 0.01</scale></mesh>
      </geometry>
    </visual>
  </link>
</model>

No issue when I try absolute paths.

Asked by Tomlogan501 on 2021-07-05 07:19:45 UTC

Comments

Answers