Revision: 7593
http://playerstage.svn.sourceforge.net/playerstage/?rev=7593&view=rev
Author: natepak
Date: 2009-04-10 14:58:25 +0000 (Fri, 10 Apr 2009)
Log Message:
-----------
Added range resolution to ray sensor
Modified Paths:
--------------
code/gazebo/trunk/player/LaserInterface.cc
code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
code/gazebo/trunk/server/physics/ContactParams.cc
code/gazebo/trunk/server/sensors/ray/RaySensor.cc
code/gazebo/trunk/server/sensors/ray/RaySensor.hh
code/gazebo/trunk/worlds/models/sicklms200.model
Modified: code/gazebo/trunk/player/LaserInterface.cc
===================================================================
--- code/gazebo/trunk/player/LaserInterface.cc 2009-04-10 14:55:29 UTC (rev
7592)
+++ code/gazebo/trunk/player/LaserInterface.cc 2009-04-10 14:58:25 UTC (rev
7593)
@@ -182,19 +182,9 @@
ts.tv_sec = (int) (this->iface->data->head.time);
ts.tv_usec = (int) (fmod(this->iface->data->head.time, 1) * 1e6);
-
- // Pick the rage resolution to use (1, 10, 100)
- if (this->iface->data->max_range <= 8.192)
- rangeRes = 1.0;
- else if (this->iface->data->max_range <= 81.92)
- rangeRes = 10.0;
- else
- rangeRes = 100.0;
-
+ rangeRes = this->iface->data->res_range;
angleRes = this->iface->data->res_angle;
- //printf("range res = %f %f\n", rangeRes, this->iface->data->max_range);
-
double oldCount = this->data.ranges_count;
this->data.min_angle = this->iface->data->min_angle;
Modified:
code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
===================================================================
--- code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
2009-04-10 14:55:29 UTC (rev 7592)
+++ code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
2009-04-10 14:58:25 UTC (rev 7593)
@@ -184,7 +184,9 @@
double minRange = this->myParent->GetMinRange();
int rayCount = this->myParent->GetRayCount();
int rangeCount = this->myParent->GetRangeCount();
+ float resRange = this->myParent->GetResRange();
+
if (this->laserIface->Lock(1))
{
// Data timestamp
@@ -194,7 +196,7 @@
this->laserIface->data->min_angle = minAngle.GetAsRadian();
this->laserIface->data->max_angle = maxAngle.GetAsRadian();
this->laserIface->data->res_angle = (maxAngle.GetAsRadian() -
minAngle.GetAsRadian()) / (rangeCount - 1);
- this->laserIface->data->res_range = 0.1;
+ this->laserIface->data->res_range = resRange;
this->laserIface->data->max_range = maxRange;
this->laserIface->data->range_count = rangeCount;
Modified: code/gazebo/trunk/server/physics/ContactParams.cc
===================================================================
--- code/gazebo/trunk/server/physics/ContactParams.cc 2009-04-10 14:55:29 UTC
(rev 7592)
+++ code/gazebo/trunk/server/physics/ContactParams.cc 2009-04-10 14:58:25 UTC
(rev 7593)
@@ -43,8 +43,8 @@
this->mu1 = dInfinity;
this->mu2 = dInfinity;
- this->slip1 = 0.1;
- this->slip2 = 0.1;
+ this->slip1 = 0.01;
+ this->slip2 = 0.01;
}
//////////////////////////////////////////////////////////////////////////////
Modified: code/gazebo/trunk/server/sensors/ray/RaySensor.cc
===================================================================
--- code/gazebo/trunk/server/sensors/ray/RaySensor.cc 2009-04-10 14:55:29 UTC
(rev 7592)
+++ code/gazebo/trunk/server/sensors/ray/RaySensor.cc 2009-04-10 14:58:25 UTC
(rev 7593)
@@ -72,6 +72,7 @@
this->maxAngleP = new ParamT<Angle>("maxAngle",DTOR(-90),1);
this->minRangeP = new ParamT<double>("minRange",0,1);
this->maxRangeP = new ParamT<double>("maxRange",0,1);
+ this->resRangeP = new ParamT<double>("resRange",0.1,1);
this->originP = new ParamT<Vector3>("origin", Vector3(0,0,0), 0);
this->displayRaysP = new ParamT<std::string>("displayRays", "off", 0);
Param::End();
@@ -94,6 +95,7 @@
delete this->maxAngleP;
delete this->minRangeP;
delete this->maxRangeP;
+ delete this->resRangeP;
delete this->originP;
delete this->displayRaysP;
}
@@ -113,6 +115,7 @@
this->maxAngleP->Load(node);
this->minRangeP->Load(node);
this->maxRangeP->Load(node);
+ this->resRangeP->Load(node);
this->originP->Load(node);
this->displayRaysP->Load(node);
@@ -138,6 +141,7 @@
stream << prefix << " " << *(this->maxAngleP) << "\n";
stream << prefix << " " << *(this->minRangeP) << "\n";
stream << prefix << " " << *(this->maxRangeP) << "\n";
+ stream << prefix << " " << *(this->resRangeP) << "\n";
stream << prefix << " " << *(this->originP) << "\n";
stream << prefix << " " << *(this->rayCountP) << "\n";
stream << prefix << " " << *(this->rangeCountP) << "\n";
@@ -242,6 +246,13 @@
}
//////////////////////////////////////////////////////////////////////////////
+/// Get the range resolution
+double RaySensor::GetResRange() const
+{
+ return this->resRangeP->GetValue();
+}
+
+//////////////////////////////////////////////////////////////////////////////
/// Get the ray count
int RaySensor::GetRayCount() const
{
Modified: code/gazebo/trunk/server/sensors/ray/RaySensor.hh
===================================================================
--- code/gazebo/trunk/server/sensors/ray/RaySensor.hh 2009-04-10 14:55:29 UTC
(rev 7592)
+++ code/gazebo/trunk/server/sensors/ray/RaySensor.hh 2009-04-10 14:58:25 UTC
(rev 7593)
@@ -94,6 +94,9 @@
/// \return The maximum range
public: double GetMaxRange() const;
+ /// \brief Get the range resolution
+ public: double GetResRange() const;
+
/// \brief Get the ray count
/// \return The number of rays
public: int GetRayCount() const;
@@ -134,7 +137,7 @@
private: std::vector<RayGeom*> rays;
private: ParamT<Angle> *minAngleP, *maxAngleP;
- private: ParamT<double> *minRangeP, *maxRangeP;
+ private: ParamT<double> *minRangeP, *maxRangeP, *resRangeP;
private: ParamT<Vector3> *originP;
private: Pose3d prevPose;
Modified: code/gazebo/trunk/worlds/models/sicklms200.model
===================================================================
--- code/gazebo/trunk/worlds/models/sicklms200.model 2009-04-10 14:55:29 UTC
(rev 7592)
+++ code/gazebo/trunk/worlds/models/sicklms200.model 2009-04-10 14:58:25 UTC
(rev 7593)
@@ -44,13 +44,14 @@
<rangeCount>361</rangeCount>
<origin>0.05 0.0 0</origin>
- <displayRays>false</displayRays>
+ <displayRays>fan</displayRays>
<minAngle>-90</minAngle>
<maxAngle>90</maxAngle>
<minRange>0.1</minRange>
<maxRange>8</maxRange>
+ <resRange>.1</resRange>
<controller:sicklms200_laser name="laser_controller_1">
<interface:laser name="laser_iface_0"/>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit