Few issues with latest gazebo (svn, rev 8432)

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Few issues with latest gazebo (svn, rev 8432)

Kamil Muszyński
Hi all,

I've moved from gazebo 0.8 to svn version of gazebo 0.9. I've been trying to run wizbot.world (just a wizbot model - so I removed cam, cylinder and pioneer models). My aim was to apply speed to wizbot's wheels using only libgazebo and position interface (without player). This is the client code used:

#include <iostream>
#include <string>
#include <gazebo.h>
#include <stdio.h>

int main(int argc, char * argv[]){
        if (argc != 3) return 1;

        float x = atof(argv[1]);
        float y = atof(argv[2]);

        gazebo::Client * client = new gazebo::Client();
        gazebo::SimulationIface * simIface = new gazebo::SimulationIface();
        int serverId = 0;
        std::string id("default");

        try {
                /// Connect to the libgazebo server
                client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
                /// Open the Simulation Interface
                simIface->Open(client, id);
                simIface->Unpause();
        } catch (std::string e) {
                std::cout<<"Gazebo error: Unable to connect to the sim interface\n";
                exit(0);
        }

        gazebo::PositionIface * posIface = new gazebo::PositionIface();
        try {
                posIface->Open(client, "wizbot_model1::position_iface_0");
        } catch (std::string ex) {
                std::cout<<ex<<std::endl;
                exit(0);
        }

        std::cout<<"Applying speed\n";
        posIface->Lock(1);
        posIface->data->cmdEnableMotors = 1;
        posIface->data->cmdVelocity.pos.x = x;
        posIface->data->cmdVelocity.pos.y = y;
        posIface->Unlock();


        while(true){
                usleep(20000);
        }


        posIface->Destroy();
        delete posIface;
        simIface->Close();
        delete simIface;
        client->Disconnect();
        delete client;

        return 0;
}

-------------

It turns out that this code has no effect - when I checked void Holonome3Sw_Position2d::UpdateChild() code that is used for controlling wizbot, some speed values (different than 0) are applied to joints, but wizbot is not moving. After some investigation I think I found a bug in method (file gazebo/server/physics/ode/ODEHingeJoint.cc)

void ODEHingeJoint::SetVelocity(int /*index*/, double angle)
{
  this->SetParam(angle, dParamVel); // shouldn't be this->SetParam(dParamVel, angle) ?
}

but this fix didn't help and robot is still not moving (like if simulation was paused, which is not ;) ).

I am using ogre 1.6.4 and ode 0.11.1 and ubuntu 9.10, if that could be useful. Can anyone give me some hints? :)




Also I get segmentation fault after clicking on robot model (wizbot, pionieer and others - ctrl + rmb) or on model's name in the gazebo menu, here is some backtrace

Program received signal SIGSEGV, Segmentation fault.
0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
(gdb) bt
#0  0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
#1  0x00632735 in gazebo::Sidebar::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#2  0x006264ab in gazebo::Gui::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#3  0x005ded7e in gazebo::Simulator::MainLoop() () from /usr/local/lib/libgazebo_server.so.0.9.0
#4  0x0804a464 in main ()

Should I get newest fltk version?

Best regards,

Kamil

Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

tarredondo
Hello All,

I have the same problem on gazebo 0.10. When using the wizbot.world and in /tmp/gazebo-tomas-0 directory I
dont see an interface file created and I get this error:
error opening device file /tmp/gazebo-tomas-0/position.pioneer2dx_model1::position_iface_0 : No such file or directory
So I figured a problem with the holonome controler in that model...

If I try to use the ~/gazebo-0.10.0/worlds$ gazebo pioneer2dx.world
I see the interface file created and I can connect fine to the interface but there is no response from the robot when trying to set cmd velocity it just sits there:

tomas@tomas-desktop:/tmp/gazebo-tomas-0$ ls
factory.default
gazebo.pid
graphics3d.box1_model
graphics3d.default
graphics3d.pioneer2dx_model1
graphics3d.pioneer2dx_model1::laser
graphics3d.pioneer2dx_model2
graphics3d.pioneer2dx_model2::laser
graphics3d.plane1_model
graphics3d.point_white
graphics3d.ramp_model
graphics3d.ramp_model2
graphics3d.sphere1_model
position.pioneer2dx_model1::position_iface_0
position.pioneer2dx_model2::position_iface_0
simulation.default


Here is a code fragment:
  /// Open the Position interface
  try
  {
    posIface->Open(client, "pioneer2dx_model1::position_iface_0");
  }
  catch (std::string e)
  {
    std::cout << "Gazebo error: Unable to connect to the position interface\n" << e << "\n";
    return -1;
  }
...

  while(1)
{
   posIface->Lock(1);
   std::cout  << "Cmd Velocity (x,y,z)" << posIface->data->cmdVelocity.pos.x << " " << posIface->data->cmdVelocity.pos.y << " " <<  posIface->data->cmdVelocity.pos.z << std::endl;
   posIface->Unlock();
   posIface->Lock(1);
   std::cout  << "Velocity (x,y,z):" << posIface->data->velocity.pos.x << " " << posIface->data->velocity.pos.y << " " <<  posIface->data->velocity.pos.z << std::endl;
   posIface->Unlock();
   posIface->Lock(1);
   std::cout  << "Roll,pitch,yaw:" << posIface->data->pose.roll << " " << posIface->data->pose.pitch << " " <<  posIface->data->pose.yaw << std::endl;
   posIface->Unlock();

   std::cout  << "Press u,d or s" << std::endl;
  c=getchar();
  if (c=='u')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x += 0.5;
  posIface->Unlock();
  }
  else
  if (c=='d')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x -= 0.5;
  posIface->Unlock();
  }
  if (c=='s')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x = 0;
  posIface->Unlock();
  }

   usleep(100000);
   }

I looked around for other postings and found nothing that helped. Thanks for any info.
Tomas


Kamil Muszyński wrote
Hi all,

I've moved from gazebo 0.8 to svn version of gazebo 0.9. I've been trying to run wizbot.world (just a wizbot model - so I removed cam, cylinder and pioneer models). My aim was to apply speed to wizbot's wheels using only libgazebo and position interface (without player). This is the client code used:

#include <iostream>
#include <string>
#include <gazebo.h>
#include <stdio.h>

int main(int argc, char * argv[]){
        if (argc != 3) return 1;

        float x = atof(argv[1]);
        float y = atof(argv[2]);

        gazebo::Client * client = new gazebo::Client();
        gazebo::SimulationIface * simIface = new gazebo::SimulationIface();
        int serverId = 0;
        std::string id("default");

        try {
                /// Connect to the libgazebo server
                client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
                /// Open the Simulation Interface
                simIface->Open(client, id);
                simIface->Unpause();
        } catch (std::string e) {
                std::cout<<"Gazebo error: Unable to connect to the sim interface\n";
                exit(0);
        }

        gazebo::PositionIface * posIface = new gazebo::PositionIface();
        try {
                posIface->Open(client, "wizbot_model1::position_iface_0");
        } catch (std::string ex) {
                std::cout<<ex<<std::endl;
                exit(0);
        }

        std::cout<<"Applying speed\n";
        posIface->Lock(1);
        posIface->data->cmdEnableMotors = 1;
        posIface->data->cmdVelocity.pos.x = x;
        posIface->data->cmdVelocity.pos.y = y;
        posIface->Unlock();


        while(true){
                usleep(20000);
        }


        posIface->Destroy();
        delete posIface;
        simIface->Close();
        delete simIface;
        client->Disconnect();
        delete client;

        return 0;
}

-------------

It turns out that this code has no effect - when I checked void Holonome3Sw_Position2d::UpdateChild() code that is used for controlling wizbot, some speed values (different than 0) are applied to joints, but wizbot is not moving. After some investigation I think I found a bug in method (file gazebo/server/physics/ode/ODEHingeJoint.cc)

void ODEHingeJoint::SetVelocity(int /*index*/, double angle)
{
  this->SetParam(angle, dParamVel); // shouldn't be this->SetParam(dParamVel, angle) ?
}

but this fix didn't help and robot is still not moving (like if simulation was paused, which is not ;) ).

I am using ogre 1.6.4 and ode 0.11.1 and ubuntu 9.10, if that could be useful. Can anyone give me some hints? :)




Also I get segmentation fault after clicking on robot model (wizbot, pionieer and others - ctrl + rmb) or on model's name in the gazebo menu, here is some backtrace

Program received signal SIGSEGV, Segmentation fault.
0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
(gdb) bt
#0  0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
#1  0x00632735 in gazebo::Sidebar::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#2  0x006264ab in gazebo::Gui::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#3  0x005ded7e in gazebo::Simulator::MainLoop() () from /usr/local/lib/libgazebo_server.so.0.9.0
#4  0x0804a464 in main ()

Should I get newest fltk version?

Best regards,

Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

tarredondo
Hi All,

Some more info on my configuration:Ubuntu 9.10, ode 0.11.1, ogre v1-7-0, bullet-2.76, gazebo 0.10.0.

I tried a new world file it is the empty.world with the pioneer robot added (included below).

tomas@tomas-desktop:~/gazebo-0.10.0/worlds$ gazebo tomas-test3.world
Gazebo multi-robot simulator, version 0.10.0

Part of the Player/Stage Project [http://playerstage.sourceforge.net].
Copyright (C) 2003 Nate Koenig, Andrew Howard, and contributors.
Released under the GNU General Public License.

[/home/tomas/gazebo-0.10.0/server/GazeboConfig.cc:103]
  Gazebo Path[/usr/local/share/gazebo]
[/home/tomas/gazebo-0.10.0/server/GazeboConfig.cc:115]
  Ogre Path[/usr/local/lib/OGRE]
Gazebo successfully initialized
deleting /tmp/gazebo-tomas-0/graphics3d.default
Segmentation fault (when I do a File Quit)

The code can connect but when I send a new commands with velocity nothing happens:
 
Cmd Velocity (x,y,z)+0.00000 +0.00000 +0.00000
Velocity (x,y,z):+0.00000 +0.00000 +0.00000
Roll,pitch,yaw:+0.00000 +0.00000 +0.00000
Press u,d or s
u
Cmd Velocity (x,y,z)+0.500000 +0.00000 +0.00000
Velocity (x,y,z):+0.00000 +0.00000 +0.00000
Roll,pitch,yaw:+0.00000 +0.00000 +0.00000
Press u,d or s
(.....)
Cmd Velocity (x,y,z)+30.5000 +0.00000 +0.00000
Velocity (x,y,z):+0.00000 +0.00000 +0.00000
Roll,pitch,yaw:+0.00000 +0.00000 +0.00000
Press u,d or s

Here is the world file I used:

<?xml version="1.0"?>

<gazebo:world
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:gazebo="http://playerstage.sourceforge.net/gazebo/xmlschema/#gz"
  xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
  xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
  xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
  xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
  xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
  xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
  xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
  xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
  xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics" >

  <verbosity>5</verbosity>

  <physics:ode>
    <stepTime>0.001</stepTime>
    <gravity>0 0 -9.8</gravity>
    <cfm>10e-2</cfm>
    <erp>0.2</erp>

   
    <updateRate>0</updateRate>
  </physics:ode>

  <rendering:gui>
    <type>fltk</type>
    <size>800 600</size>
    <pos>0 0</pos>
  </rendering:gui>
  <rendering:ogre>
    <ambient>1 1 1 1</ambient>
    <shadowTechnique>stencilAdditive</shadowTechnique>
    <grid>false</grid>
  </rendering:ogre>

   
   <model:physical name="plane1_model">
    <xyz>0 0 0</xyz>
    <rpy>0 0 0</rpy>
    <static>true</static>

    <body:plane name="plane1_body">
      <geom:plane name="plane1_geom">
        <normal>0 0 1</normal>
        <size>100 100</size>
        <segments>10 10</segments>
        <uvTile>100 100</uvTile>
        <material>Gazebo/GrayGrid</material>
        <mu1>109999.0</mu1>
        <mu2>1000.0</mu2>
      </geom:plane>
    </body:plane>
  </model:physical>

  <model:physical name="pioneer2dx_model1">
    <xyz>1 1 0.5</xyz>
    <rpy>0 0 0</rpy>
    <include embedded="true">
      <xi:include href="models/pioneer2dx.model" />
    </include>
  </model:physical>

</gazebo:world>

Thanks,
Tomas

tarredondo wrote
Hello All,

I have the same problem on gazebo 0.10. When using the wizbot.world and in /tmp/gazebo-tomas-0 directory I
dont see an interface file created and I get this error:
error opening device file /tmp/gazebo-tomas-0/position.pioneer2dx_model1::position_iface_0 : No such file or directory
So I figured a problem with the holonome controler in that model...

If I try to use the ~/gazebo-0.10.0/worlds$ gazebo pioneer2dx.world
I see the interface file created and I can connect fine to the interface but there is no response from the robot when trying to set cmd velocity it just sits there:

tomas@tomas-desktop:/tmp/gazebo-tomas-0$ ls
factory.default
gazebo.pid
graphics3d.box1_model
graphics3d.default
graphics3d.pioneer2dx_model1
graphics3d.pioneer2dx_model1::laser
graphics3d.pioneer2dx_model2
graphics3d.pioneer2dx_model2::laser
graphics3d.plane1_model
graphics3d.point_white
graphics3d.ramp_model
graphics3d.ramp_model2
graphics3d.sphere1_model
position.pioneer2dx_model1::position_iface_0
position.pioneer2dx_model2::position_iface_0
simulation.default


Here is a code fragment:
  /// Open the Position interface
  try
  {
    posIface->Open(client, "pioneer2dx_model1::position_iface_0");
  }
  catch (std::string e)
  {
    std::cout << "Gazebo error: Unable to connect to the position interface\n" << e << "\n";
    return -1;
  }
...

  while(1)
{
   posIface->Lock(1);
   std::cout  << "Cmd Velocity (x,y,z)" << posIface->data->cmdVelocity.pos.x << " " << posIface->data->cmdVelocity.pos.y << " " <<  posIface->data->cmdVelocity.pos.z << std::endl;
   posIface->Unlock();
   posIface->Lock(1);
   std::cout  << "Velocity (x,y,z):" << posIface->data->velocity.pos.x << " " << posIface->data->velocity.pos.y << " " <<  posIface->data->velocity.pos.z << std::endl;
   posIface->Unlock();
   posIface->Lock(1);
   std::cout  << "Roll,pitch,yaw:" << posIface->data->pose.roll << " " << posIface->data->pose.pitch << " " <<  posIface->data->pose.yaw << std::endl;
   posIface->Unlock();

   std::cout  << "Press u,d or s" << std::endl;
  c=getchar();
  if (c=='u')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x += 0.5;
  posIface->Unlock();
  }
  else
  if (c=='d')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x -= 0.5;
  posIface->Unlock();
  }
  if (c=='s')
  {
  posIface->Lock(1);
  posIface->data->cmdEnableMotors = 1;
  posIface->data->cmdVelocity.pos.x = 0;
  posIface->Unlock();
  }

   usleep(100000);
   }

I looked around for other postings and found nothing that helped. Thanks for any info.
Tomas


Kamil Muszyński wrote
Hi all,

I've moved from gazebo 0.8 to svn version of gazebo 0.9. I've been trying to run wizbot.world (just a wizbot model - so I removed cam, cylinder and pioneer models). My aim was to apply speed to wizbot's wheels using only libgazebo and position interface (without player). This is the client code used:

#include <iostream>
#include <string>
#include <gazebo.h>
#include <stdio.h>

int main(int argc, char * argv[]){
        if (argc != 3) return 1;

        float x = atof(argv[1]);
        float y = atof(argv[2]);

        gazebo::Client * client = new gazebo::Client();
        gazebo::SimulationIface * simIface = new gazebo::SimulationIface();
        int serverId = 0;
        std::string id("default");

        try {
                /// Connect to the libgazebo server
                client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
                /// Open the Simulation Interface
                simIface->Open(client, id);
                simIface->Unpause();
        } catch (std::string e) {
                std::cout<<"Gazebo error: Unable to connect to the sim interface\n";
                exit(0);
        }

        gazebo::PositionIface * posIface = new gazebo::PositionIface();
        try {
                posIface->Open(client, "wizbot_model1::position_iface_0");
        } catch (std::string ex) {
                std::cout<<ex<<std::endl;
                exit(0);
        }

        std::cout<<"Applying speed\n";
        posIface->Lock(1);
        posIface->data->cmdEnableMotors = 1;
        posIface->data->cmdVelocity.pos.x = x;
        posIface->data->cmdVelocity.pos.y = y;
        posIface->Unlock();


        while(true){
                usleep(20000);
        }


        posIface->Destroy();
        delete posIface;
        simIface->Close();
        delete simIface;
        client->Disconnect();
        delete client;

        return 0;
}

-------------

It turns out that this code has no effect - when I checked void Holonome3Sw_Position2d::UpdateChild() code that is used for controlling wizbot, some speed values (different than 0) are applied to joints, but wizbot is not moving. After some investigation I think I found a bug in method (file gazebo/server/physics/ode/ODEHingeJoint.cc)

void ODEHingeJoint::SetVelocity(int /*index*/, double angle)
{
  this->SetParam(angle, dParamVel); // shouldn't be this->SetParam(dParamVel, angle) ?
}

but this fix didn't help and robot is still not moving (like if simulation was paused, which is not ;) ).

I am using ogre 1.6.4 and ode 0.11.1 and ubuntu 9.10, if that could be useful. Can anyone give me some hints? :)




Also I get segmentation fault after clicking on robot model (wizbot, pionieer and others - ctrl + rmb) or on model's name in the gazebo menu, here is some backtrace

Program received signal SIGSEGV, Segmentation fault.
0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
(gdb) bt
#0  0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
#1  0x00632735 in gazebo::Sidebar::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#2  0x006264ab in gazebo::Gui::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#3  0x005ded7e in gazebo::Simulator::MainLoop() () from /usr/local/lib/libgazebo_server.so.0.9.0
#4  0x0804a464 in main ()

Should I get newest fltk version?

Best regards,

Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

TIAN Daji
In reply to this post by Kamil Muszyński
Hello Kamil,

I am now using gazebo for my simulation. However, searching through the internet for two weeks, i got no info in how to run my own c++ program. i could get the interface in running the gazebo pioneer2dx.world, and could see the 2 pioneer2dxs running in two diffenent directions. But i can not find the control algothm in the file(i don't know how the 2 robots are told to run like that), so i could not implement my own algorithm for the robot. All i got is to run the gazebo pioneer2dx.world file first, then the player gazebo.cfg file, and finally my own program ./ executive file. i would like to know how you succeeded in running your program and if possible, send me your .world file, .cfg file and your C++ code(you also use cmake to compile the .cc file?)to tiandaji@gmail.com, just to test my installation of Gazebo, and for me to learn how to run my own .cc file.
Thanks a lot in advance.
Kamil Muszyński wrote
Hi all,

I've moved from gazebo 0.8 to svn version of gazebo 0.9. I've been trying to run wizbot.world (just a wizbot model - so I removed cam, cylinder and pioneer models). My aim was to apply speed to wizbot's wheels using only libgazebo and position interface (without player). This is the client code used:

#include <iostream>
#include <string>
#include <gazebo.h>
#include <stdio.h>

int main(int argc, char * argv[]){
        if (argc != 3) return 1;

        float x = atof(argv[1]);
        float y = atof(argv[2]);

        gazebo::Client * client = new gazebo::Client();
        gazebo::SimulationIface * simIface = new gazebo::SimulationIface();
        int serverId = 0;
        std::string id("default");

        try {
                /// Connect to the libgazebo server
                client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
                /// Open the Simulation Interface
                simIface->Open(client, id);
                simIface->Unpause();
        } catch (std::string e) {
                std::cout<<"Gazebo error: Unable to connect to the sim interface\n";
                exit(0);
        }

        gazebo::PositionIface * posIface = new gazebo::PositionIface();
        try {
                posIface->Open(client, "wizbot_model1::position_iface_0");
        } catch (std::string ex) {
                std::cout<<ex<<std::endl;
                exit(0);
        }

        std::cout<<"Applying speed\n";
        posIface->Lock(1);
        posIface->data->cmdEnableMotors = 1;
        posIface->data->cmdVelocity.pos.x = x;
        posIface->data->cmdVelocity.pos.y = y;
        posIface->Unlock();


        while(true){
                usleep(20000);
        }


        posIface->Destroy();
        delete posIface;
        simIface->Close();
        delete simIface;
        client->Disconnect();
        delete client;

        return 0;
}

-------------

It turns out that this code has no effect - when I checked void Holonome3Sw_Position2d::UpdateChild() code that is used for controlling wizbot, some speed values (different than 0) are applied to joints, but wizbot is not moving. After some investigation I think I found a bug in method (file gazebo/server/physics/ode/ODEHingeJoint.cc)

void ODEHingeJoint::SetVelocity(int /*index*/, double angle)
{
  this->SetParam(angle, dParamVel); // shouldn't be this->SetParam(dParamVel, angle) ?
}

but this fix didn't help and robot is still not moving (like if simulation was paused, which is not ;) ).

I am using ogre 1.6.4 and ode 0.11.1 and ubuntu 9.10, if that could be useful. Can anyone give me some hints? :)




Also I get segmentation fault after clicking on robot model (wizbot, pionieer and others - ctrl + rmb) or on model's name in the gazebo menu, here is some backtrace

Program received signal SIGSEGV, Segmentation fault.
0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
(gdb) bt
#0  0x04f7ce85 in Fl_Menu_::add(char const*, int, void (*)(Fl_Widget*, void*), void*, int) () from /usr/lib/libfltk.so.1.1
#1  0x00632735 in gazebo::Sidebar::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#2  0x006264ab in gazebo::Gui::Update() () from /usr/local/lib/libgazebo_gui.so.0.9.0
#3  0x005ded7e in gazebo::Simulator::MainLoop() () from /usr/local/lib/libgazebo_server.so.0.9.0
#4  0x0804a464 in main ()

Should I get newest fltk version?

Best regards,

Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

Kamil Muszyński
TIAN Daji wrote
Hello Kamil,

I am now using gazebo for my simulation. However, searching through the internet for two weeks, i got no info in how to run my own c++ program. i could get the interface in running the gazebo pioneer2dx.world, and could see the 2 pioneer2dxs running in two diffenent directions. But i can not find the control algothm in the file(i don't know how the 2 robots are told to run like that), so i could not implement my own algorithm for the robot. All i got is to run the gazebo pioneer2dx.world file first, then the player gazebo.cfg file, and finally my own program ./ executive file. i would like to know how you succeeded in running your program and if possible, send me your .world file, .cfg file and your C++ code(you also use cmake to compile the .cc file?)to tiandaji@gmail.com, just to test my installation of Gazebo, and for me to learn how to run my own .cc file.
Thanks a lot in advance.
Hi,
I'm afraid I cannot help you. I have no experience in using player software.
I guess what you trying to achieve is to control your model in gazebo (.world file loaded in gazebo) using player controllers and c++ control application. In this case player works as a proxy from your c++ app to gazebo. I do it differently - I directly communicate with gazebo using shared memory, so I have only gazebo and my c++ app. in my workflow. To communicate with gazebo I use Position Interface and posIface->data structure - as you can see in the message I posted. If you are more interested in that approach, try running gazebo examples from gazebo source folder/examples/libgazebo/position.

Regards,
Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

TIAN Daji
Thank you very much for your quick answer.
In fact all i want to do with gazebo is to run my own simulation, so as long as your method works fine with your simulation, i would like to know more precisely your method to run your own program.
I got to the path where we can find a cmakelists.txt file and a position.cc file as you said, and created a build directory, then enter it, and cmake ..
But i do not see an exexutable file created after this compilation.
I think i should run the gazebo pioneer2dx.world first in one terminal and then the executable file in another compiled by using cmakelists.txt to make the robot march. am i right?
PS: i would like to know when you are running your pioneer2dx.world file, if you can see the two robots moving in two different directions. i really do not see why they are moving as soon as i launched the world file, which means they could run without any control algorithm. The same issue with the pendulum.world file.
Great thanks for your help!


Kamil Muszyński wrote
TIAN Daji wrote
Hello Kamil,

I am now using gazebo for my simulation. However, searching through the internet for two weeks, i got no info in how to run my own c++ program. i could get the interface in running the gazebo pioneer2dx.world, and could see the 2 pioneer2dxs running in two diffenent directions. But i can not find the control algothm in the file(i don't know how the 2 robots are told to run like that), so i could not implement my own algorithm for the robot. All i got is to run the gazebo pioneer2dx.world file first, then the player gazebo.cfg file, and finally my own program ./ executive file. i would like to know how you succeeded in running your program and if possible, send me your .world file, .cfg file and your C++ code(you also use cmake to compile the .cc file?)to tiandaji@gmail.com, just to test my installation of Gazebo, and for me to learn how to run my own .cc file.
Thanks a lot in advance.
Hi,
I'm afraid I cannot help you. I have no experience in using player software.
I guess what you trying to achieve is to control your model in gazebo (.world file loaded in gazebo) using player controllers and c++ control application. In this case player works as a proxy from your c++ app to gazebo. I do it differently - I directly communicate with gazebo using shared memory, so I have only gazebo and my c++ app. in my workflow. To communicate with gazebo I use Position Interface and posIface->data structure - as you can see in the message I posted. If you are more interested in that approach, try running gazebo examples from gazebo source folder/examples/libgazebo/position.

Regards,
Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

TIAN Daji
In reply to this post by Kamil Muszyński
Thank you very much for your quick answer.
In fact all i want to do with gazebo is to run my own simulation, so as long as your method works fine with your simulation, i would like to know more precisely your method to run your own program.
I got to the path where we can find a cmakelists.txt file and a position.cc file as you said, and created a build directory, then enter it, and cmake ..
But i do not see an exexutable file created after this compilation.
I think i should run the gazebo pioneer2dx.world first in one terminal and then the executable file in another compiled by using cmakelists.txt to make the robot march. am i right?
PS: i would like to know when you are running your pioneer2dx.world file, if you can see the two robots moving in two different directions. i really do not see why they are moving as soon as i launched the world file, which means they could run without any control algorithm. The same issue with the pendulum.world file.
Great thanks for your help!
Kamil Muszyński wrote
TIAN Daji wrote
Hello Kamil,

I am now using gazebo for my simulation. However, searching through the internet for two weeks, i got no info in how to run my own c++ program. i could get the interface in running the gazebo pioneer2dx.world, and could see the 2 pioneer2dxs running in two diffenent directions. But i can not find the control algothm in the file(i don't know how the 2 robots are told to run like that), so i could not implement my own algorithm for the robot. All i got is to run the gazebo pioneer2dx.world file first, then the player gazebo.cfg file, and finally my own program ./ executive file. i would like to know how you succeeded in running your program and if possible, send me your .world file, .cfg file and your C++ code(you also use cmake to compile the .cc file?)to tiandaji@gmail.com, just to test my installation of Gazebo, and for me to learn how to run my own .cc file.
Thanks a lot in advance.
Hi,
I'm afraid I cannot help you. I have no experience in using player software.
I guess what you trying to achieve is to control your model in gazebo (.world file loaded in gazebo) using player controllers and c++ control application. In this case player works as a proxy from your c++ app to gazebo. I do it differently - I directly communicate with gazebo using shared memory, so I have only gazebo and my c++ app. in my workflow. To communicate with gazebo I use Position Interface and posIface->data structure - as you can see in the message I posted. If you are more interested in that approach, try running gazebo examples from gazebo source folder/examples/libgazebo/position.

Regards,
Kamil
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

TIAN Daji
In reply to this post by Kamil Muszyński
In fact all i want to do with gazebo is to run my own simulation, so as long as your method works fine with your simulation, i would like to know more precisely your method to run your own program.
I got to the path where we can find a cmakelists.txt file and a position.cc file as you said, and created a build directory, then enter it, and cmake ..
But i do not see an exexutable file created after this compilation.
I think i should run the gazebo pioneer2dx.world first in one terminal and then the executable file in another compiled by using cmakelists.txt to make the robot march. am i right?
PS: i would like to know when you are running your pioneer2dx.world file, if you can see the two robots moving in two different directions. i really do not see why they are moving as soon as i launched the world file, which means they could run without any control algorithm. The same issue with the pendulum.world file.
Great thanks for your help!
Reply | Threaded
Open this post in threaded view
|

Re: Few issues with latest gazebo (svn, rev 8432)

TIAN Daji
In reply to this post by Kamil Muszyński
It's Daji TIAN who works in gazebo. and thanks for your answer.
i would like to have your email address get some guide from you (a newbi asks for help) because i have the problem to post my message: it is always pending, but i am already an subscriber in the mailing list. That is why it is strange for me.
In fact all i want to do with gazebo is to run my own simulation, so as long as your method works fine with your simulation, i would like to know more precisely your method to run your own program.
I got to the path where we can find a cmakelists.txt file and a position.cc file as you said, and created a build directory, then enter it, and cmake ..
But i do not see an exexutable file created after this compilation.
I think i should run the gazebo pioneer2dx.world first in one terminal and then the executable file in another compiled by using cmakelists.txt to make the robot march. am i right?
PS: i would like to know when you are running your pioneer2dx.world file, if you can see the two robots moving in two different directions. i really do not see why they are moving as soon as i launched the world file, which means they could run without any control algorithm. The same issue with the pendulum.world file.
Great thanks for your help!