Gazebo | Ignition | Community
Ask Your Question

Adwait's profile - activity

2021-05-16 14:28:09 -0500 received badge  Popular Question (source)
2021-05-09 15:10:12 -0500 received badge  Notable Question (source)
2021-05-05 02:35:54 -0500 commented question Want to simulate the following hydraulic-actuated arm in Ignition Gazebo

You can draw some inspiration from this project. In the project, panda arm is simulated.

2021-05-05 02:31:51 -0500 asked a question Is there any alternative fot SetLinearVel() in ignition gazebo?

Is there any alternative fot SetLinearVel() in ignition gazebo? I am writing the HydraDemoPlugin for which I need to ass

2021-04-26 12:09:39 -0500 received badge  Famous Question (source)
2021-04-26 12:08:49 -0500 received badge  Popular Question (source)
2021-04-25 07:20:18 -0500 asked a question visualizing point clouds in the ignition gazebo

visualizing point clouds in the ignition gazebo Hello, I want to implement a plugin to visualize the terrains that I ge

2021-04-22 10:48:54 -0500 commented question Draw an arrow from a VisualPlugin

Do you mean the markers? Maybe this package can be of some help.

2021-04-22 10:21:13 -0500 commented question Draw an arrow from a VisualPlugin

Do you mean the markers? Maybe this package can be of some help.

2021-04-22 10:15:47 -0500 received badge  Commentator
2021-04-22 10:15:47 -0500 commented question Move camera around as simulation goes on

@alexantosh it's a gazebo plugin.

2021-04-21 12:59:14 -0500 commented question Move camera around as simulation goes on

I don't know for sure but I think the follower plugin should work for this. Try getting the pos of the object by subscri

2021-04-21 12:47:18 -0500 marked best answer Not able to simulate my sdf file in ignition gazebo

Continuing the question from https://community.gazebosim.org/t/not...

I was trying to simulate an animal(file attached below) in ignition gazebo by adding it to the empty_world.sdf file as explained in the tutorial https://ignitionrobotics.org/docs/cit....

The error I am getting is given below

[Err] [Server.cc:181] Error Code 13 Msg: Directory doesn’t exist[goat.dae]
[GUI] [Err] [PathManager.cc:57] Service call timed out for [/gazebo/resource_paths/get]

The code I used

<?xml version="1.0" ?>
<sdf version="1.7">
    <world name="world_demo">
      <physics name="1ms" type="ignored">
           <max_step_size>0.001</max_step_size>
           <real_time_factor>1.0</real_time_factor>
      </physics>
      <plugin
          filename="libignition-gazebo-physics-system.so"
          name="ignition::gazebo::systems::Physics">
       </plugin>
       <plugin
          filename="libignition-gazebo-user-commands-system.so"
          name="ignition::gazebo::systems::UserCommands">
        </plugin>
        <plugin
          filename="libignition-gazebo-scene-broadcaster-system.so"
          name="ignition::gazebo::systems::SceneBroadcaster">
        </plugin>

         <gui fullscreen="0">

           <!-- 3D scene -->
         <plugin filename="GzScene3D" name="3D View">
          <ignition-gui>
              <title>3D View</title>
              <property type="bool" key="showTitleBar">false</property>
              <property type="string" key="state">docked</property>
          </ignition-gui>

          <engine>ogre2</engine>
          <scene>scene</scene>
          <ambient_light>1.0 1.0 1.0</ambient_light>
          <background_color>0.8 0.8 0.8</background_color>
          <camera_pose>-6 0 6 0 0.5 0</camera_pose>
        </plugin>

        <!-- World control -->
        <plugin filename="WorldControl" name="World control">
          <ignition-gui>
            <title>World control</title>
            <property type="bool" key="showTitleBar">false</property>
            <property type="bool" key="resizable">false</property>
            <property type="double" key="height">72</property>
            <property type="double" key="width">121</property>
            <property type="double" key="z">1</property>

            <property type="string" key="state">floating</property>
            <anchors target="3D View">
              <line own="left" target="left"/>
              <line own="bottom" target="bottom"/>
            </anchors>
          </ignition-gui>

          <play_pause>true</play_pause>
          <step>true</step>
          <start_paused>true</start_paused>
          <service>/world/world_demo/control</service>
          <stats_topic>/world_demo/world_demo/stats</stats_topic>

        </plugin>

        <!-- World statistics -->
        <plugin filename="WorldStats" name="World stats">
            <ignition-gui>
                <title>World stats</title>
                <property type="bool" key="showTitleBar">false</property>
                <property type="bool" key="resizable">false</property>
                <property type="double" key="height">110</property>
                <property type="double" key="width">290</property>
                <property type="double" key="z">1</property>

                <property type="string" key="state">floating</property>
                <anchors target="3D View">
                <line own="right" target="right"/>
                <line own="bottom" target="bottom"/>
                </anchors>
            </ignition-gui>

            <sim_time>true</sim_time>
            <real_time>true</real_time>
            <real_time_factor>true</real_time_factor>
            <iterations>true</iterations>
            <topic>/world/world_demo/stats</topic>

        </plugin>

        <!-- Entity tree -->
        <plugin filename="EntityTree" name="Entity tree">
        </plugin>
      </gui>

      <!--light-->
      <light type="directional" name="sun">
        <cast_shadows>true</cast_shadows>
        <pose>0 0 10 0 0 0</pose>
        <diffuse>0.8 0.8 0.8 1</diffuse>
        <specular>0.2 0.2 0.2 1</specular>
        <attenuation>
          <range>1000</range>
          <constant>0.9</constant>
          <linear>0.01</linear>
          <quadratic>0.001</quadratic>
        </attenuation>
        <direction>-0.5 0.1 -0.9</direction>
      </light>

      <include>
         <uri>
             model://goat.dae
         </uri>
      </include>
    </world>
</sdf>

ignition gazebo version I am using

Ignition Gazebo, version 4.2.0
Copyright (C) 2018 Open Source Robotics Foundation.
Released under the Apache 2.0 License.

Note: I tried adding the file to my workspace ~/ign-gazebo/examples/worlds but it still didn ... (more)

2021-04-21 12:42:36 -0500 asked a question how to convert double to std::vector<double> ?

how to convert double to std::vector<double> ? I am trying to use _ecm.setComponentData() in my gimbal plugin. The

2021-04-18 08:11:05 -0500 commented answer How to get the camera matrix of a camera sensor in Ignition Gazebo

Thanks @AndrejOrdula, I was facing the same issue with my rover world. I was trying to retrieve the image taken by the s

2021-04-18 08:09:10 -0500 received badge  Supporter (source)
2021-04-17 12:05:35 -0500 commented question Ignition install fails on ubuntu

Assuming you are working on Ubuntu, I can say that this error is common. remove all previously installed ignition librar

2021-04-16 06:24:22 -0500 marked best answer error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’

I am trying to get the joint's position for my Cessna plugin using this method

float rudder =  _ecm.Component<components::JointPosition>(this->joint[5.0]);

which gives me this error in the line shown above

 error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double>, ignition::gazebo::v3::components::JointPositionTag, ignition::gazebo::v3::serializers::VectorDoubleSerializer>*’ to ‘float’ in initialization

     float rightFlap =  _ecm.Component<components::JointPosition>(this->joint[3.0]);

code snippet

    void CessnaPlugin::PublishState(EntityComponentManager &_ecm)

    {
        IGN_PROFILE("CessnaPlugin::PublishState");

        // Read current state

        double propellerRpms = _ecm.ComponentData<components::JointVelocity>(this->joint[6.0])/(2.0*M_PI)*60.0;

        float propellerSpeed = propellerRpms / this->propellerMaxRpm;

        float leftAileron = _ecm.Component<components::JointPosition>(this->joint[2500]);

        float leftFlap =  _ecm.Component<components::JointPosition>(this->joint[1.0]);

        float rightAileron =  _ecm.Component<components::JointPosition>(this->joint[2.0]);

       float rightFlap =  _ecm.Component<components::JointPosition>(this->joint[3.0]);

        float elevators =  _ecm.Component<components::JointPosition>(this->joint[4.0]);

        float rudder =  _ecm.Component<components::JointPosition>(this->joint[5.0]); ----> error occurs here

}

joint entity as declared

std::array<ignition::gazebo::Entity, 7> joint;

parameters

   private: static const unsigned int kLeftAileron  = 0;

    private: static const unsigned int kLeftFlap     = 1;

    private: static const unsigned int kRightAileron = 2;

   private: static const unsigned int kRightFlap    = 3;

    private: static const unsigned int kElevators    = 4;

    private: static const unsigned int kRudder       = 5;

    private: static const unsigned int kPropeller    = 6;

Any solution for this?

Thanks

2021-04-16 06:24:20 -0500 edited answer error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’

refer this issue. Thanks to Diego Ferigo for this answer. A joint in its most generic form can have more than one degr

2021-04-16 06:19:39 -0500 answered a question error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’

refer this issue A joint in its most generic form can have more than one degree of freedom. This is the reason why the J

2021-04-16 06:16:49 -0500 marked best answer plugin for actor to follow particular trajectory

By referring to this file ActorPlugin.hh in Gazebo, I am trying to migrate this into ignition gazebo using ROS for my application.

OS/Environment: Ubuntu 18.04 LTS (Installed on MacOSX using Virtual Machine)

Source/binary: Ignition-4 (binary files)

Unfortunately, my header file (code is given below) throws some syntax error.

Error:

<source-file, line>: error: ‘std::chrono::steady_clock’ has not been declared

Code:

#include <string>
#include <fstream>
#include <queue>
#include <vector>
#include <chrono>


#include <ignition/math/Pose3.hh>
#include <ignition/math/Quaternion.hh>
#include <ignition/math/Vector3.hh>

#include <ros/ros.h>
#include <ros/package.h>
#include <ros/callback_queue.h>

#include <std_msgs/String.h>

#include <ignition/gazebo/Model.hh>
#include <ignition/gazebo/EntityComponentManager.hh>
#include <ignition/gazebo/Util.hh>
#include <ignition/gazebo/System.hh>
#include <ignition/gazebo/components/Physics.hh>
#include <ignition/plugin/Register.hh>
#include <ignition/transport/Node.hh>

#include "igniton/common/Plugin.hh"

#include "dart/simulation/World.hpp"


namespace igniton 

{

namespace gazebo

{

namespace systems

{

    class IGNITION_GAZEBO_VISIBLE ignGazeboPathFollowerRosActor:

            public ignition::gazebo::System,
            public ignition::gazebo::ISystemConfigure,
            public ignition::gazebo::ISystemPostUpdate,
            public ignition::gazebo::ISystemPreUpdate 
      {

        /// \brief Constructor
        public: ignGazeboPathFollowRosActor();

        ///  \brief Destructor 
        public: ~ignGazeboPathFollowRosActor();

        // Implement Configure callback, provided by ISystemConfigure
        // and called once at startup.
        public: void Configure(const Entity & _entity,
          const std::shared_ptr <
            const sdf::Element > & _sdf,
              EntityComponentManager & _ecm,
              EventManager & /*_eventMgr*/ );

        // Documentation inherite
        public: void PreUpdate(const ignition::gazebo::UpdateInfo &_info,
                  ignition::gazebo::EntityComponentManager &_ecm);

        public: void PostUpdate(const ignition::gazebo::UpdateInfo &_info,
                   const ignition::gazebo::EntityComponentManager &_ecm);


        /// \function to reset
        public: virtual void Reset();

        /// \brief callback for updating the activation of the actor
        private: void OnActive(const std_msgs::String::ConstPtr& msg);


        private: void QueueThread();

        private: void ReadTrajectoryFile();


        private: ros::NodeHandle * ros_node_;

        private: ros::Subscriber state_sub_;

        /// \brief Custom Callback Queue
        private: ros::CallbackQueue queue_;

        /// \brief Custom Callback Queue thread
        private: boost::thread callbackQueueThread_;

        /// \brief Pointer to the parent actor
        private: ignition::gazebo::Entity actor_entity;


        /// \brief Pointer to the world
        private: std::vector<dart::simulation::WorldPtr> world;


        /// \brief pointer to the sdf element
        private: std::shared_ptr< const sdf::Element> &_sdf;


        /// \brief Reference velocity of the actor
        private: ignition::math::Vector3d ref_velocity_;

        /// \brief Time scaling factor. Used to coordinate translational motion
        /// with the actor's walking animation.
        private: double animation_factor_;


        /// \Connecting the entity
        private: ignition::gazebo::Entity entity{ignition::gazebo::kNullEntity};
        private: ignition::gazebo::Entity modelLink{ignition::gazebo::kNullEntity};

        /// \brief Time of the last update.
        private: std::chrono::steady_clock::duration last_update

        /// \brief Time of start.
        private: std::chrono::time_point start_time_;

        /// \brief Custom trajectory info.
        private: physics::TrajectoryInfoPtr trajectoryInfo;

        /// \brief Variable for control the non-constant velocity.
        private: bool oscillation_enable_;

        /// \brief To make the actor to have non-constant velocity.
        private: double oscillation_factor_;

        private: std::string active_topic_;

        private: std::string actor_state_;

        private: std::string traj_file_name_;

        /// \brief Data structure for saving the trajectory read from file
        private: std::queue<ignition::math::Pose3d>trajectory_;

      };

    }
  }
}
#endif

Additional Context

I need some help with finding equivalent class/member functions for the following in the ignition gazebo

   private: common::Time last_update;

  private: common::Time start_time_;

  private: physics::TrajectoryInfoPtr trajectoryInfo;

  private: physics::WorldPtr world;

  private: std::queue<ignition::math::Pose3d> trajectory_;
2021-04-15 02:31:54 -0500 asked a question ignition equivalent for the following snippets

ignition equivalent for the following snippets Hello, I am implementing a controller interface plugin to simulate a dro

2021-04-14 18:29:00 -0500 edited question error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’

error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’ I am trying

2021-04-14 18:25:29 -0500 asked a question error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’

error: cannot convert ‘ignition::gazebo::v3::components::Component<std::vector<double> to ‘float’ I am trying

2021-04-11 13:33:39 -0500 asked a question error: invalid new-expression of abstract class type ‘ignition::gazebo::v3::systems::Gripper’

error: invalid new-expression of abstract class type ‘ignition::gazebo::v3::systems::Gripper’ While building my plugin,

2021-04-11 13:25:32 -0500 received badge  Popular Question (source)
2021-04-08 02:49:23 -0500 received badge  Notable Question (source)
2021-04-07 11:20:52 -0500 marked best answer error: ‘this’ argument discards qualifiers [-fpermissive]

This is my code for the Adaptive Monte Carlo localization(AMCL) algorithm, a plugin using for ign gazebo(citadel) and ROS(melodic).

void amcl::Configure(const Entity &_entity, const std::shared_ptr<const sdf::element=""> &_sdf, EntityComponentManager &_ecm, EventManager &_eventMgr)

{ this->dataPtr->model = Model(_entity); if (!this->dataPtr->model.Valid(_ecm)) {

ignerr << "amcl plugin should be attached to a model entity. "
       << "Failed to initialize." << std::endl;
return;
}

// Obtain parameters from xacro file

if(_sdf->HasElement("topicRate"))
{
    rate_ = _sdf->GetElement("topicRate")->Get<double>(); #############ERROR IN THIS LINE 

}
else
{
  rate_ = 10.0;
}


if(_sdf->HasElement("fixedFrame"))

{
    fixed_frame_ = _sdf->GetElement("fixedFrame")->Get<std::string>(); ########ERROR IN THIS LINE 

}
else
{
    fixed_frame_ = "map";
}

if(_sdf->HasElement("robotFrame"))

{
    robot_frame_ = _sdf->GetElement("robotFrame")->Get<std::string>(); #####ERROR IN THIS LINE

}
else
{
    robot_frame_ = "base_link";
}

Error (as shown in the terminal)

error: passing ‘std::__shared_ptr_access<const sdf::v9::element,="" (__gnu_cxx::lock_policy)2,="" false,="" false="">::element_type’ {aka ‘const sdf::v9::Element’} as ‘this’ argument discards qualifiers [-fpermissive] rate = _sdf->GetElement("topicRate")->Get();

I have marked the lines in the code which throw this error.

Complete code can be found here with the header file (Amcl.hh)

Can anybody suggest a solution?

2021-04-07 11:20:45 -0500 answered a question error: ‘this’ argument discards qualifiers [-fpermissive]

I am answering my own question To understand the proposed changes, one should have some familiarity with concepts relate

2021-04-07 09:49:13 -0500 marked best answer Unknown CMake command "ign_find_package".

I am trying to compile a plugin for ign-gazebo.

Procedure I followed: 1. I copied my plugin folder "mimic_joint_plugin" to ign-gazebo/examples/plugin. 2. made a build dir 3. compiled the directory using cmake .. command and got this error on the console.

Version: Ignition citadel

adwaitnaik@ubuntu:~/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin$ mkdir build
adwaitnaik@ubuntu:~/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin$ cd build
adwaitnaik@ubuntu:~/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin/build$ cmake ..
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/adwaitnaik/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin/build/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/adwaitnaik/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
CMake Error at CMakeLists.txt:208 (ign_find_package):
  Unknown CMake command "ign_find_package".


-- Configuring incomplete, errors occurred!
See also "/home/adwaitnaik/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin/build/CMakeFiles/CMakeOutput.log".
See also "/home/adwaitnaik/ign_ws/src/ign-gazebo/examples/plugin/mimic_joint_plugin/build/CMakeFiles/CMakeError.log".

Note: ign_ws is the workspace in which I have installed all the ignition libraries from the source and compiled them.

Please can anybody suggest a solution on how to comile plugins for ign-gazebo?

2021-04-07 09:49:13 -0500 received badge  Scholar (source)
2021-04-07 09:46:56 -0500 asked a question error: ‘this’ argument discards qualifiers [-fpermissive]

error: ‘this’ argument discards qualifiers [-fpermissive] This is my code for the Adaptive Monte Carlo localization(AMCL

2021-04-06 01:38:22 -0500 commented answer Unknown CMake command "ign_find_package".

@AndrejOrsula thanks, that worked for me.

2021-04-05 16:25:29 -0500 commented question ign gazebo collada meshes issue

Trying on different machines won't necessarily solve the issue when there's a problem with the .dae file. What I am tryi

2021-04-04 22:05:06 -0500 commented answer Unknown CMake command "ign_find_package".

I had sourced the workspace once during the installation process (in the end). Yes, I have used colon to build the libra

2021-04-04 16:34:40 -0500 received badge  Notable Question (source)
2021-04-04 14:43:53 -0500 received badge  Popular Question (source)
2021-04-04 09:43:21 -0500 asked a question Unknown CMake command "ign_find_package".

Unknown CMake command "ign_find_package". I am trying to compile a plugin for ign-gazebo. Procedure I followed: 1. I c

2021-04-02 13:13:28 -0500 received badge  Popular Question (source)
2021-04-01 05:08:49 -0500 commented question ign gazebo collada meshes issue

tweaking some parameters in the Colladaloader file may help, not sure though.

2021-04-01 02:02:39 -0500 commented answer Virtual Machine not launching Gazebo

This worked for me. Thanks

2021-03-31 00:17:38 -0500 edited question plugin for actor to follow particular trajectory

plugin for actor to follow particular trajectory By referring to this file ActorPlugin.hh in Gazebo, I am trying to migr

2021-03-31 00:07:43 -0500 commented question plugin for actor to follow particular trajectory

I have updated the question.

2021-03-31 00:07:16 -0500 edited question plugin for actor to follow particular trajectory

plugin for actor to follow particular trajectory By referring to this file ActorPlugin.hh in Gazebo, I am trying to migr

2021-03-30 12:46:45 -0500 asked a question plugin for actor to follow particular trajectory

plugin for actor to follow particular trajectory By referring to this file ActorPlugin.hh in Gazebo, I am trying to migr

2021-03-26 10:09:50 -0500 edited question irregularities in simulation in ignition gazebo 4

irregularities in simulation in ignition gazebo 4 This question is the continuation of this issue. OS Version: Ubuntu 1