2019-09-10 14:33:15 -0500 | received badge | ● Famous Question
(source)
|
2015-06-23 23:52:59 -0500 | received badge | ● Taxonomist
|
2013-09-19 18:56:29 -0500 | received badge | ● Famous Question
(source)
|
2013-06-12 11:43:52 -0500 | received badge | ● Student
(source)
|
2013-05-22 07:01:45 -0500 | received badge | ● Notable Question
(source)
|
2013-05-18 02:18:49 -0500 | received badge | ● Popular Question
(source)
|
2013-05-15 04:26:26 -0500 | asked a question | Automatic creation of Gazebo world Hi, Is there the possibility of create a Gazebo world from a map created with gmapping(.pgm image) automatically? |
2013-04-19 13:35:50 -0500 | received badge | ● Famous Question
(source)
|
2013-03-13 04:29:23 -0500 | received badge | ● Notable Question
(source)
|
2013-03-11 07:33:21 -0500 | received badge | ● Popular Question
(source)
|
2013-02-27 08:31:13 -0500 | asked a question | How to implement a IRsensor plugin gazebo ros Hi
I'm using ROS electric and I want to simulate an IRSensor in Gazebo. I've found a tutorial about creating new plugins but it works only for Fuerte. Anyone can help me to understand how to create a new controller gazebo_ros_IR similar to gazebo_ros_laser .
EDIT:
I looked at gazebo plugins and on the base of gazebo_ros laser I created a new package with two files: ir_controller_file.h ,
#ifndef GAZEBO_ROS_IR_HH
#define GAZEBO_ROS_IR_HH
#define USE_CBQ
#ifdef USE_CBQ
#include <ros/callback_queue.h>
#include <ros/advertise_options.h>
#endif
#include <gazebo/Controller.hh>
#include <gazebo/Param.hh>
#include <ros/ros.h>
#include <boost/thread/mutex.hpp>
#include <sensor_msgs/Range.h>
namespace gazebo
{
class IRSensor;
class GazeboRosIr : public Controller
{
/// \brief Constructor
/// \param parent The parent entity, must be a Model or a Sensor
public: GazeboRosIr(Entity *parent);
/// \brief Destructor
public: virtual ~GazeboRosIr();
/// \brief Load the controller
/// \param node XML config node
protected: virtual void LoadChild(XMLConfigNode *node);
/// \brief Init the controller
protected: virtual void InitChild();
/// \brief Update the controller
protected: virtual void UpdateChild();
/// \brief Finalize the controller
protected: virtual void FiniChild();
/// \brief Put laser data to the ROS topic
private: void PutIrData();
/// \brief Keep track of number of connctions
private: int IrConnectCount;
private: void IrConnect();
private: void IrDisconnect();
private: int deprecatedIrConnectCount;
private: void DeprecatedIrConnect();
private: void DeprecatedIrDisconnect();
/// \brief The parent sensor
private: IRSensor *myParent;
/// \brief pointer to ros node
private: ros::NodeHandle* rosnode_;
private: ros::Publisher pub_;
private: ros::Publisher deprecated_pub_;
/// \brief ros message
private: sensor_msgs::Range irMsg;
/// \brief topic name
private: ParamT<std::string> *topicNameP;
private: std::string topicName;
private: ParamT<std::string> *deprecatedTopicNameP;
private: std::string deprecatedTopicName;
/// \brief frame transform name, should match link name
private: ParamT<std::string> *frameNameP;
private: std::string frameName;
/// \brief Gaussian noise
private: ParamT<double> *gaussianNoiseP;
private: double gaussianNoise;
/// \brief Gaussian noise generator
private: double GaussianKernel(double mu,double sigma);
/// \brief A mutex to lock access to fields that are used in message callbacks
private: boost::mutex lock;
/// \brief hack to mimic hokuyo intensity cutoff of 100
private: ParamT<double> *hokuyoMinIntensityP;
private: double hokuyoMinIntensity;
/// \brief for setting ROS name space
private: ParamT<std::string> *robotNamespaceP;
private: std::string robotNamespace;
#ifdef USE_CBQ
private: ros::CallbackQueue ir_queue_;
private: void IrQueueThread();
private: boost::thread callback_queue_thread_;
#endif
};
/** \} */
/// @}
}
#endif
and ircontrollerfile.cpp #include <algorithm>
#include <assert.h>
#include <ir_controller_package/ir_controller_file.h>
#include <gazebo/Sensor.hh>
#include <gazebo/Global.hh>
#include <gazebo/XMLConfig.hh>
#include <gazebo/HingeJoint.hh>
#include <gazebo/World.hh>
#include <gazebo/Simulator.hh>
#include <gazebo/gazebo.h>
#include <gazebo/GazeboError.hh>
#include <gazebo/ControllerFactory.hh>
#include <gazebo/IRSensor.hh>
#include <pluginlib/class_list_macros.h>
namespace gazebo
{
GZ_REGISTER_DYNAMIC_CONTROLLER("ir_controller_package", GazeboRosIr);
////////////////////////////////////////////////////////////////////////////////
// Constructor
GazeboRosIr::GazeboRosIr(Entity *parent)
: Controller(parent)
{
this->myParent = dynamic_cast<IRSensor*>(this->parent);
if (!this->myParent)
gzthrow("GazeboRosIr controller requires a IR Sensor as its parent");
Param::Begin(&this->parameters);
this->robotNamespaceP = new ParamT<std::string>("robotNamespace", "/", 0);
//this->hokuyoMinIntensityP = new ParamT<double>("hokuyoMinIntensity", 101.0, 0);
this->gaussianNoiseP = new ParamT<double>("gaussianNoise", 0.0, 0);
this->topicNameP = new ParamT<std::string>("topicName", "", 1);
this->deprecatedTopicNameP = new ParamT<std::string ... (more) |
2013-02-18 02:46:34 -0500 | received badge | ● Famous Question
(source)
|
2013-02-18 02:46:34 -0500 | received badge | ● Popular Question
(source)
|
2013-02-18 02:46:34 -0500 | received badge | ● Notable Question
(source)
|
2013-02-18 01:18:34 -0500 | received badge | ● Famous Question
(source)
|
2013-02-07 01:07:53 -0500 | received badge | ● Popular Question
(source)
|
2013-02-07 01:07:53 -0500 | received badge | ● Notable Question
(source)
|
2013-02-05 11:53:19 -0500 | received badge | ● Popular Question
(source)
|
2013-02-05 11:53:19 -0500 | received badge | ● Notable Question
(source)
|
2013-02-01 04:45:53 -0500 | commented answer | corobot urdf I have seen that there is a model in MRDS but i don't now where to find it |
2013-01-31 05:44:03 -0500 | asked a question | corobot urdf Is there the possibility to simulate the corobot in gazebo?
Where can I find the corresponding urdf file? |
2013-01-22 05:03:24 -0500 | received badge | ● Editor
(source)
|
2013-01-22 05:02:55 -0500 | commented answer | how to see the robot path Thx, but I'm yet able to do it in rviz, i have the problem that what the robot does in rviz is different from what it does in gazebo so I want to do it in gazebo too for debbuging purposes. |
2013-01-18 07:34:55 -0500 | asked a question | how to see the robot path What should I do to see the path done by the robot during the simulation in gazebo non in rviz? |
2013-01-17 01:38:26 -0500 | commented answer | Problem using Gazebo with ROS Yes I know, but I can see the robot moving also in rviz and what I see there is different from what
I see in gazebo, further more if I look at the values published on the /odom topic they're coherent with the position of the robot in rviz but not with the one that the robot has in Gazebo. |
2013-01-16 04:05:31 -0500 | asked a question | Problem using Gazebo with ROS I'm developing a node which controls the navigation of a p3dx equipped with a laser rangefinder.
I'm simulating the navigation in Gazebo and also in rviz, to see the ranges detected by the laser.
But what the p3dx does in gazebo is different from what it does in rviz. The navigation displayed in rviz is correct, instead the one in gazebo isn't.
How is it possible?
I'm using pioneer3dx.gazebo.launch: <launch>
<include file="$(find gazebo_worlds)/launch/empty_world.launch"/>
<include file="$(find p2os_urdf_mod)/launch/upload_pioneer3dx.xml"/>
<!-- push robot_description to factory and spawn robot in gazebo -->
<node name="spawn_pioneer" pkg="gazebo" type="spawn_model"
args="-z 0.051
-urdf
-param robot_description
-model robot_description"
respawn="false" output="screen" />
<!-- Controller Manager -->
<include file="$(find pr2_controller_manager)/controller_manager.launch" />
<!-- load controllers -->
<node name="diffdrive" pkg="gazebo_plugins" type="gazebo_ros_diffdrive" respawn="true" output="screen"/>
</launch>
The node that I developed reads some parameters about the desired trajectory and publishes the correct linear and angular speed on the topic /cmd_vel.
I checked the odometry published by "gazebo_ros_diffdrive" controller on the topic /base_pose_ground_truth and it is coherent with what i see in rviz.
Any suggestion?
Is it possible that the reason for this is that in Gazebo are taken into account some effects as friction, or gravity which aren't considered in rviz? |