Revision: 6683
http://playerstage.svn.sourceforge.net/playerstage/?rev=6683&view=rev
Author: natepak
Date: 2008-06-25 12:12:30 -0700 (Wed, 25 Jun 2008)
Log Message:
-----------
Incorporated Differentail steering patch from Jerome Berger
Modified Paths:
--------------
code/gazebo/trunk/examples/player/position2d/position2d.cc
code/gazebo/trunk/libgazebo/gazebo.h
code/gazebo/trunk/player/LaserInterface.cc
code/gazebo/trunk/player/gazebo.cfg
code/gazebo/trunk/server/controllers/camera/stereo/Stereo_Camera.cc
code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.hh
code/gazebo/trunk/worlds/pioneer2dx.world
Modified: code/gazebo/trunk/examples/player/position2d/position2d.cc
===================================================================
--- code/gazebo/trunk/examples/player/position2d/position2d.cc 2008-06-25
17:00:34 UTC (rev 6682)
+++ code/gazebo/trunk/examples/player/position2d/position2d.cc 2008-06-25
19:12:30 UTC (rev 6683)
@@ -14,7 +14,7 @@
PlayerClient robot(PlayerCc::PLAYER_HOSTNAME, PlayerCc::PLAYER_PORTNUM);
// Subscribe to the simulation proxy
- Position2dProxy pp(&robot, 0);
+ Position2dProxy pp(&robot, 1);
// Print out some stuff
std::cout << robot << std::endl;
@@ -26,7 +26,7 @@
// This blocks until new data comes
robot.Read();
- pp.SetSpeed(0.2, 0.05);
+ pp.SetSpeed(0.0, 0.05);
}
}
catch (PlayerCc::PlayerError e)
Modified: code/gazebo/trunk/libgazebo/gazebo.h
===================================================================
--- code/gazebo/trunk/libgazebo/gazebo.h 2008-06-25 17:00:34 UTC (rev
6682)
+++ code/gazebo/trunk/libgazebo/gazebo.h 2008-06-25 19:12:30 UTC (rev
6683)
@@ -793,6 +793,9 @@
/// Angular resolution
public: double res_angle;
+ /// Range resolution
+ public: double res_range;
+
/// Max range value
public: double max_range;
Modified: code/gazebo/trunk/player/LaserInterface.cc
===================================================================
--- code/gazebo/trunk/player/LaserInterface.cc 2008-06-25 17:00:34 UTC (rev
6682)
+++ code/gazebo/trunk/player/LaserInterface.cc 2008-06-25 19:12:30 UTC (rev
6683)
@@ -115,6 +115,7 @@
plc.max_angle = this->iface->data->max_angle;
plc.max_range = this->iface->data->max_range;
plc.resolution = this->iface->data->res_angle;
+ plc.range_res = this->iface->data->res_range;
plc.intensity = intensity;
this->driver->Publish(this->device_addr, respQueue,
@@ -192,12 +193,12 @@
//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;
this->data.max_angle = this->iface->data->max_angle;
+ this->data.resolution = angleRes;
this->data.max_range = this->iface->data->max_range;
- this->data.resolution = angleRes;
-
- double oldCount = this->data.ranges_count;
this->data.ranges_count = this->data.intensity_count =
this->iface->data->range_count;
this->data.id = this->scanId++;
@@ -216,10 +217,13 @@
this->data.intensity[i] = (uint8_t) (int)
this->iface->data->intensity[i];
}
- this->driver->Publish( this->device_addr,
- PLAYER_MSGTYPE_DATA,
- PLAYER_LASER_DATA_SCAN,
- (void*)&this->data, sizeof(this->data),
&this->datatime );
+ if (this->data.ranges_count > 0)
+ {
+ this->driver->Publish( this->device_addr,
+ PLAYER_MSGTYPE_DATA,
+ PLAYER_LASER_DATA_SCAN,
+ (void*)&this->data, sizeof(this->data), &this->datatime );
+ }
}
this->iface->Unlock();
Modified: code/gazebo/trunk/player/gazebo.cfg
===================================================================
--- code/gazebo/trunk/player/gazebo.cfg 2008-06-25 17:00:34 UTC (rev 6682)
+++ code/gazebo/trunk/player/gazebo.cfg 2008-06-25 19:12:30 UTC (rev 6683)
@@ -27,6 +27,23 @@
driver
(
+ name "vfh"
+ provides ["position2d:1"]
+ requires ["position2d:0" "laser:0"]
+ cell_size 0.1
+ window_diameter 61
+ sector_angle 1
+ safety_dist_0ms 0.2
+ safety_dist_1ms 0.4
+ max_speed 0.3
+ max_turnrate_0ms 75
+ max_turnrate_1ms 50
+ weight_desired_dir 5.0
+ weight_current_dir 3.0
+)
+
+driver
+(
name "gazebo"
provides ["fiducial:0"]
gz_id "fiducial_iface_0"
Modified: code/gazebo/trunk/server/controllers/camera/stereo/Stereo_Camera.cc
===================================================================
--- code/gazebo/trunk/server/controllers/camera/stereo/Stereo_Camera.cc
2008-06-25 17:00:34 UTC (rev 6682)
+++ code/gazebo/trunk/server/controllers/camera/stereo/Stereo_Camera.cc
2008-06-25 19:12:30 UTC (rev 6683)
@@ -119,8 +119,6 @@
// Put stereo data to the interface
void Stereo_Camera::PutStereoData()
{
-
- printf("put stereo data\n");
StereoCameraData *stereo_data = this->stereoIface->data;
//const unsigned char *rgb_src = NULL;
//unsigned char *rgb_dst = NULL;
Modified:
code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
===================================================================
--- code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
2008-06-25 17:00:34 UTC (rev 6682)
+++ code/gazebo/trunk/server/controllers/laser/sicklms200/SickLMS200_Laser.cc
2008-06-25 19:12:30 UTC (rev 6683)
@@ -147,7 +147,6 @@
int rayCount = this->myParent->GetRayCount();
int rangeCount = this->myParent->GetRangeCount();
-
if (this->laserIface->Lock(1))
{
// Data timestamp
@@ -157,6 +156,7 @@
this->laserIface->data->min_angle = minAngle;
this->laserIface->data->max_angle = maxAngle;
this->laserIface->data->res_angle = (maxAngle - minAngle) / (rangeCount -
1);
+ this->laserIface->data->res_range = 0.1;
this->laserIface->data->max_range = maxRange;
this->laserIface->data->range_count = rangeCount;
Modified:
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
===================================================================
---
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
2008-06-25 17:00:34 UTC (rev 6682)
+++
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.cc
2008-06-25 19:12:30 UTC (rev 6683)
@@ -57,6 +57,8 @@
this->wheelSpeed[RIGHT] = 0;
this->wheelSpeed[LEFT] = 0;
+
+ this->prevUpdateTime = Simulator::Instance()->GetSimTime();
}
////////////////////////////////////////////////////////////////////////////////
@@ -90,7 +92,6 @@
if (!this->joints[RIGHT])
gzthrow("The controller couldn't get right hinge joint");
-
}
////////////////////////////////////////////////////////////////////////////////
@@ -148,14 +149,16 @@
ws = this->wheelSep;
- stepTime = World::Instance()->GetPhysicsEngine()->GetStepTime();
+ //stepTime = World::Instance()->GetPhysicsEngine()->GetStepTime();
+ stepTime = Simulator::Instance()->GetSimTime() - this->prevUpdateTime;
+ this->prevUpdateTime = Simulator::Instance()->GetSimTime();
// Distance travelled by front wheels
d1 = stepTime * wd / 2 * this->joints[LEFT]->GetAngleRate();
d2 = stepTime * wd / 2 * this->joints[RIGHT]->GetAngleRate();
dr = (d1 + d2) / 2;
- da = (d2 - d1) / ws;
+ da = (d1 - d2) / ws;
// Compute odometric pose
this->odomPose[0] += dr * cos( this->odomPose[2] );
Modified:
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.hh
===================================================================
---
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.hh
2008-06-25 17:00:34 UTC (rev 6682)
+++
code/gazebo/trunk/server/controllers/position2d/differential/Differential_Position2d.hh
2008-06-25 19:12:30 UTC (rev 6683)
@@ -113,6 +113,9 @@
/// Speeds of the wheels
private: float wheelSpeed[2];
+ // Simulation time of the last update
+ private: double prevUpdateTime;
+
/// True = enable motors
private: bool enableMotors;
Modified: code/gazebo/trunk/worlds/pioneer2dx.world
===================================================================
--- code/gazebo/trunk/worlds/pioneer2dx.world 2008-06-25 17:00:34 UTC (rev
6682)
+++ code/gazebo/trunk/worlds/pioneer2dx.world 2008-06-25 19:12:30 UTC (rev
6683)
@@ -62,20 +62,22 @@
</body:plane>
</model:physical>
- <model:physical name="cylinder1_model">
- <xyz>1 -1.5 0.5</xyz>
+ <model:physical name="sphere1_model">
+ <xyz>2.15 -1.68 .7</xyz>
<rpy>0.0 0.0 0.0</rpy>
+ <static>true</static>
- <body:cylinder name="cylinder1_body">
- <geom:cylinder name="cylinder1_geom">
- <size>0.5 1</size>
- <mass>1.0</mass>
+ <body:sphere name="sphere1_body">
+ <geom:sphere name="sphere1_geom">
+ <size>0.1</size>
+
<visual>
- <mesh>unit_cylinder</mesh>
- <material>Gazebo/RustyBarrel</material>
+ <scale>0.1 0.1 0.1</scale>
+ <mesh>unit_sphere</mesh>
+ <material>Gazebo/Rocky</material>
</visual>
- </geom:cylinder>
- </body:cylinder>
+ </geom:sphere>
+ </body:sphere>
</model:physical>
@@ -95,7 +97,7 @@
<controller:differential_position2d name="controller1">
<leftJoint>left_wheel_hinge</leftJoint>
<rightJoint>right_wheel_hinge</rightJoint>
- <wheelSeparation>0.34</wheelSeparation>
+ <wheelSeparation>0.39</wheelSeparation>
<wheelDiameter>0.15</wheelDiameter>
<torque>5</torque>
<interface:position name="position_iface_0"/>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit