miguelriemoliveira / psr_21-22

Programming of Robotics Systems course at the University of Aveiro, Portugal, 2021-2022.
20 stars 12 forks source link

Problem with fnr.world #48

Open Analtino2021 opened 2 years ago

Analtino2021 commented 2 years ago

Good night @miguelriemoliveira, I was trying to make exercise 9. but the world is incomplete. it seems like the problem i was having with the charuco. But i did not change the files on FNR . maybe i have to put something in my .bashrc file.

I made the: roslaunch p_amartinho_bringup gazebo.launch Captura de ecrã de 2022-01-14 17-35-49

and when I make the: roslaunch p_amartinho_bringup bringup.launch

to charge the robot in to the word does not show me de odom as i this is supost to: Captura de ecrã de 2022-01-14 13-24-49

what i think is making that when I launch the myteleop.launch I can not move the robot

roslaunch p_amartinho_bringup myteleop.launch I even try to change the world to the house of turtlebot and it works fine

Analtino2021 commented 2 years ago

Here is the terminal output of the bringup.gazebo for the world with fnr

        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
      </visual>
      <collision name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <joint name='postAndPictogram' type='revolute'>
      <parent>support_structure</parent>
      <child>pictogram</child>
      <axis>
        <xyz expressed_in='__model__'>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='pictogram'>
      <pose>0 -0.0225 0.75 0 -0 0</pose>
      <visual name='pictogram'>
        <geometry>
          <mesh>
            <uri>model://DepressionSignal/signal.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <uri>model://DepressionSignal/materials/scripts</uri>
            <uri>model://DepressionSignal/materials/textures</uri>
            <name>Signal/Depression</name>
          </script>
        </material>
      </visual>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <pose>-7.05326 0.544255 0.025 1e-06 -5e-06 0.008243</pose>
  </model>
  <model name='Depression_signal_clone_0'>
    <link name='support_structure'>
      <pose>0 0 0 0 -0 0</pose>
      <visual name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
      </visual>
      <collision name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
      </visual>
      <collision name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <joint name='postAndPictogram' type='revolute'>
      <parent>support_structure</parent>
      <child>pictogram</child>
      <axis>
        <xyz expressed_in='__model__'>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='pictogram'>
      <pose>0 -0.0225 0.75 0 -0 0</pose>
      <visual name='pictogram'>
        <geometry>
          <mesh>
            <uri>model://DepressionSignal/signal.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <uri>model://DepressionSignal/materials/scripts</uri>
            <uri>model://DepressionSignal/materials/textures</uri>
            <name>Signal/Depression</name>
          </script>
        </material>
      </visual>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <pose>-8.09854 0.533799 0.025 1e-06 -5e-06 0.008243</pose>
  </model>
  <model name='Depression_signal_clone_1'>
    <link name='support_structure'>
      <pose>0 0 0 0 -0 0</pose>
      <visual name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
      </visual>
      <collision name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
      </visual>
      <collision name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <joint name='postAndPictogram' type='revolute'>
      <parent>support_structure</parent>
      <child>pictogram</child>
      <axis>
        <xyz expressed_in='__model__'>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='pictogram'>
      <pose>0 -0.0225 0.75 0 -0 0</pose>
      <visual name='pictogram'>
        <geometry>
          <mesh>
            <uri>model://DepressionSignal/signal.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <uri>model://DepressionSignal/materials/scripts</uri>
            <uri>model://DepressionSignal/materials/textures</uri>
            <name>Signal/Depression</name>
          </script>
        </material>
      </visual>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <pose>-8.08892 0.941449 0.025 1e-06 -5e-06 0.008243</pose>
  </model>
  <model name='Depression_signal_clone_1_clone'>
    <link name='support_structure'>
      <pose>0 0 0 0 -0 0</pose>
      <visual name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
      </visual>
      <collision name='base'>
        <geometry>
          <box>
            <size>0.305 0.2 0.05</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
      </visual>
      <collision name='vertical_post'>
        <pose>0 0 0.385 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.0305 0.0305 0.82</size>
          </box>
        </geometry>
        <max_contacts>10</max_contacts>
        <surface>
          <contact>
            <ode/>
          </contact>
          <bounce/>
          <friction>
            <torsional>
              <ode/>
            </torsional>
            <ode/>
          </friction>
        </surface>
      </collision>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <joint name='postAndPictogram' type='revolute'>
      <parent>support_structure</parent>
      <child>pictogram</child>
      <axis>
        <xyz expressed_in='__model__'>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='pictogram'>
      <pose>0 -0.0225 0.75 0 -0 0</pose>
      <visual name='pictogram'>
        <geometry>
          <mesh>
            <uri>model://DepressionSignal/signal.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <uri>model://DepressionSignal/materials/scripts</uri>
            <uri>model://DepressionSignal/materials/textures</uri>
            <name>Signal/Depression</name>
          </script>
        </material>
      </visual>
      <self_collide>0</self_collide>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <inertia>
          <ixx>1</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1</iyy>
          <iyz>0</iyz>
          <izz>1</izz>
        </inertia>
        <mass>1</mass>
      </inertial>
      <enable_wind>0</enable_wind>
      <kinematic>0</kinematic>
    </link>
    <pose>-7.03239 0.896364 0.025 2e-06 2e-06 3.07429</pose>
  </model>
</world>

Warning [World.cc:264] Non-unique name[tft_1] detected 2 times in XML children of world with name[default].
Warning [World.cc:264] Non-unique name[tft_2] detected 2 times in XML children of world with name[default].
[ INFO] [1642181375.955343495]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1642181375.983300497, 803.700000000]: Physics dynamic reconfigure ready.
[ INFO] [1642182346.063070173, 1763.101000000]: Camera Plugin: Using the 'robotNamespace' param: '/p_amartinho/'
[ INFO] [1642182346.066290014, 1763.101000000]: Camera Plugin (ns = /p_amartinho/)  <tf_prefix_>, set to "p_amartinho"
[ INFO] [1642182433.894326686, 1819.769000000]: Laser Plugin: Using the 'robotNamespace' param: '/p_amartinho/'
[ INFO] [1642182433.894407915, 1819.769000000]: Starting Laser Plugin (ns = /p_amartinho/)
[ INFO] [1642182433.895583287, 1819.770000000]: Laser Plugin (ns = /p_amartinho/)  <tf_prefix_>, set to "p_amartinho"
miguelriemoliveira commented 2 years ago

Hi @Analtino2021 ,

these are two separate problems, I think. About the worlds being incomplete, are you using a virtual machine? Do you have GPU acceleration? Can you switch if off to see if gazebo works?

The second problem about not moving the robot. Can you see the robot in gazebo? The teleop seems to be connected fine with the gazebo through the p_amartinho/cmd_vel message topic ... can you listen to it to see if messages pass using a

rostopic echo p_amartinho/cmd_vel

Analtino2021 commented 2 years ago

Hi @miguelriemoliveira , Not using virtual machine I have instald the Ubuntu. I will try.

Yes I can see the robot in gazebo. I send the wrong image here is the right one: myteleop is not conecting with gazebo

Captura de ecrã de 2022-01-14 18-45-04

miguelriemoliveira commented 2 years ago

Hi @Analtino2021 ,

in the rqt graph you should not have the checkbox hide dead sinks clicked. That way we can see what gazebo is waiting for.

Your gazebo is not waiting for the cmd_vel topic, this I think is because you did not spawn the robot yet. Do you have the robot in gazebo?

Analtino2021 commented 2 years ago

Yes teacher @miguelriemoliveira I have the robot in gazebo the checkboxs, hide and dead sinks are not clicked

I did the spawn in the bringup.launch

Captura de ecrã de 2022-01-14 19-59-51

Captura de ecrã de 2022-01-14 20-01-50

miguelriemoliveira commented 2 years ago

Hum, that's strange because gazebo should be listening to a cmd_vel topic.

Can you post the output of

rosnode info /gazebo

Also, which xacro files are you using?

Analtino2021 commented 2 years ago

Yes teatcher, the output of rosnode info /gazebo

--------------------------------------------------------------------------------
Node [/gazebo]
Publications: 
 * /clock [rosgraph_msgs/Clock]
 * /gazebo/link_states [gazebo_msgs/LinkStates]
 * /gazebo/model_states [gazebo_msgs/ModelStates]
 * /gazebo/parameter_descriptions [dynamic_reconfigure/ConfigDescription]
 * /gazebo/parameter_updates [dynamic_reconfigure/Config]
 * /gazebo/performance_metrics [gazebo_msgs/PerformanceMetrics]
 * /p_amartinho/camera/parameter_descriptions [dynamic_reconfigure/ConfigDescription]
 * /p_amartinho/camera/parameter_updates [dynamic_reconfigure/Config]
 * /p_amartinho/camera/rgb/camera_info [sensor_msgs/CameraInfo]
 * /p_amartinho/camera/rgb/image_raw [sensor_msgs/Image]
 * /p_amartinho/camera/rgb/image_raw/compressed [sensor_msgs/CompressedImage]
 * /p_amartinho/camera/rgb/image_raw/compressed/parameter_descriptions [dynamic_reconfigure/ConfigDescription]
 * /p_amartinho/camera/rgb/image_raw/compressed/parameter_updates [dynamic_reconfigure/Config]
 * /p_amartinho/camera/rgb/image_raw/compressedDepth [sensor_msgs/CompressedImage]
 * /p_amartinho/camera/rgb/image_raw/compressedDepth/parameter_descriptions [dynamic_reconfigure/ConfigDescription]
 * /p_amartinho/camera/rgb/image_raw/compressedDepth/parameter_updates [dynamic_reconfigure/Config]
 * /p_amartinho/camera/rgb/image_raw/theora [theora_image_transport/Packet]
 * /p_amartinho/camera/rgb/image_raw/theora/parameter_descriptions [dynamic_reconfigure/ConfigDescription]
 * /p_amartinho/camera/rgb/image_raw/theora/parameter_updates [dynamic_reconfigure/Config]
 * /p_amartinho/scan [sensor_msgs/LaserScan]
 * /rosout [rosgraph_msgs/Log]

Subscriptions: 
 * /clock [rosgraph_msgs/Clock]
 * /gazebo/set_link_state [unknown type]
 * /gazebo/set_model_state [unknown type]

Services: 
 * /gazebo/apply_body_wrench
 * /gazebo/apply_joint_effort
 * /gazebo/clear_body_wrenches
 * /gazebo/clear_joint_forces
 * /gazebo/delete_light
 * /gazebo/delete_model
 * /gazebo/get_joint_properties
 * /gazebo/get_light_properties
 * /gazebo/get_link_properties
 * /gazebo/get_link_state
 * /gazebo/get_loggers
 * /gazebo/get_model_properties
 * /gazebo/get_model_state
 * /gazebo/get_physics_properties
 * /gazebo/get_world_properties
 * /gazebo/pause_physics
 * /gazebo/reset_simulation
 * /gazebo/reset_world
 * /gazebo/set_joint_properties
 * /gazebo/set_light_properties
 * /gazebo/set_link_properties
 * /gazebo/set_link_state
 * /gazebo/set_logger_level
 * /gazebo/set_model_configuration
 * /gazebo/set_model_state
 * /gazebo/set_parameters
 * /gazebo/set_physics_properties
 * /gazebo/spawn_sdf_model
 * /gazebo/spawn_urdf_model
 * /gazebo/unpause_physics
 * /p_amartinho/camera/rgb/image_raw/compressed/set_parameters
 * /p_amartinho/camera/rgb/image_raw/compressedDepth/set_parameters
 * /p_amartinho/camera/rgb/image_raw/theora/set_parameters
 * /p_amartinho/camera/set_camera_info
 * /p_amartinho/camera/set_parameters

contacting node http://analtino:37443/ ...
Pid: 4273
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound (57373 - 127.0.0.1:41726) [39]
    * transport: TCPROS
 * topic: /clock
    * to: /gazebo
    * direction: outbound
    * transport: INTRAPROCESS
 * topic: /clock
    * to: /rosout
    * direction: outbound (57373 - 127.0.0.1:41780) [77]
    * transport: TCPROS
 * topic: /clock
    * to: /gazebo_gui
    * direction: outbound (57373 - 127.0.0.1:41782) [74]
    * transport: TCPROS
 * topic: /clock
    * to: /p_amartinho/robot_state_publisher
    * direction: outbound (57373 - 127.0.0.1:41930) [94]
    * transport: TCPROS
 * topic: /clock
    * to: /rviz
    * direction: outbound (57373 - 127.0.0.1:41942) [95]
    * transport: TCPROS
 * topic: /clock
    * to: /p_amartinho/myteleop
    * direction: outbound (57373 - 127.0.0.1:42076) [102]
    * transport: TCPROS
 * topic: /clock
    * to: /rqt_gui_py_node_4731
    * direction: outbound (57373 - 127.0.0.1:42194) [99]
    * transport: TCPROS
 * topic: /p_amartinho/camera/rgb/image_raw
    * to: /rviz
    * direction: outbound (57373 - 127.0.0.1:41976) [100]
    * transport: TCPROS
 * topic: /p_amartinho/scan
    * to: /rviz
    * direction: outbound (57373 - 127.0.0.1:43322) [92]
    * transport: TCPROS
 * topic: /clock
    * to: /gazebo (http://analtino:37443/)
    * direction: inbound
    * transport: INTRAPROCESS

the Xacros I'm using are the same I was using in the house of turtlrbot just change the world

miguelriemoliveira commented 2 years ago

Well I think you should have something wrong in the xacros because there is no topic cmd_vel in gazebo ...

This works for you?

https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/

Does gazebo in this case listens to a cmd vel topic?

Analtino2021 commented 2 years ago

I dont have the file player.gazebo.macro.xacro pode ser isso

miguelriemoliveira commented 2 years ago

I think that's it. Can you add it? It should be called from file player.urdf.xacro

Or you can just copy these two turtlebot3_waffle_pi.gazebo.xacro turtlebot3_waffle_pi.urdf.xacro

from

https://github.com/ROBOTIS-GIT/turtlebot3/tree/master/turtlebot3_description/urdf

Analtino2021 commented 2 years ago

Well I think you should have something wrong in the xacros because there is no topic cmd_vel in gazebo ...

This works for you?

https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/

Does gazebo in this case listens to a cmd vel topic?

Yes it does

Captura de ecrã de 2022-01-14 20-32-31 Captura de ecrã de 2022-01-14 20-32-21 Captura de ecrã de 2022-01-14 20-31-58

Analtino2021 commented 2 years ago

I think that's it. Can you add it? It should be called from file player.urdf.xacro

Or you can just copy these two turtlebot3_waffle_pi.gazebo.xacro turtlebot3_waffle_pi.urdf.xacro

from

https://github.com/ROBOTIS-GIT/turtlebot3/tree/master/turtlebot3_description/urdf

Will try it