diff --git a/ant.world b/ant.world index 6609f42..572e548 100644 --- a/ant.world +++ b/ant.world @@ -12,8 +12,8 @@ window floorplan ( - bitmap "maps/cave.png" - size [ 16.000 16.000 1.500 ] + bitmap "maps/hospital_section.png" + size [ 64 26 1.500 ] ) ant_bot diff --git a/ant_bot.inc b/ant_bot.inc index 3741c6b..54438a1 100644 --- a/ant_bot.inc +++ b/ant_bot.inc @@ -2,14 +2,16 @@ define ant_sensor sensor ( size [0.01 0.05 0.01 ] range [0 5.0] - fov 180 - samples 180 + fov 60 + samples 1 color_rgba [ 0 1 0 0.2 ] ) define ant_sonars ranger ( - ant_sensor( pose [ 0 0 0 0 ] ) + ant_sensor( pose [ 0 0 0 -60 ] ) + ant_sensor( pose [ 0 0 0 0 ] ) + ant_sensor( pose [ 0 0 0 60 ] ) ) define ant_bot position diff --git a/robot.cpp b/robot.cpp index b06fa8e..1485ae1 100644 --- a/robot.cpp +++ b/robot.cpp @@ -1,3 +1,28 @@ +/************************************************************************************* + * Copyright (c) 2016, Miguel Angel Astor Romero * + * All rights reserved. * + * * + * Redistribution and use in source and binary forms, with or without * + * modification, are permitted provided that the following conditions are met: * + * * + * 1. Redistributions of source code must retain the above copyright notice, this * + * list of conditions and the following disclaimer. * + * 2. Redistributions in binary form must reproduce the above copyright notice, * + * this list of conditions and the following disclaimer in the documentation * + * and/or other materials provided with the distribution. * + * * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * + *************************************************************************************/ + #include "robot.hpp" Robot::Robot(std::string hostname, uint32_t port) { @@ -6,6 +31,7 @@ Robot::Robot(std::string hostname, uint32_t port) { _r_proxy = new PlayerCc::RangerProxy(_p_client, 0); _p_proxy->RequestGeom(); _r_proxy->RequestGeom(); + _r_proxy->RequestConfigure(); } Robot::~Robot() { @@ -25,14 +51,16 @@ IASSS_Robot::~IASSS_Robot() { void IASSS_Robot::run() { _p_client->Read(); - - if(_r_proxy->GetRange(0) < 0.2) { - _p_proxy->SetSpeed(0.0f, PlayerCc::dtor(-45)); - sleep(1); - } else if(_r_proxy->GetRange(_r_proxy->GetRangeCount()) < 0.2) { - _p_proxy->SetSpeed(0.0f, PlayerCc::dtor(45)); - sleep(1); + + if(_r_proxy->GetRange(1) < 1.0) { + if(_r_proxy->GetRange(0) > 1.0) + _p_proxy->SetSpeed(0.0f, PlayerCc::dtor(-45)); + else if(_r_proxy->GetRange(2) > 1.0) + _p_proxy->SetSpeed(0.0f, PlayerCc::dtor(45)); + else + _p_proxy->SetSpeed(0.0f, PlayerCc::dtor(180)); } else { _p_proxy->SetSpeed(0.3f, 0.0f); } + sleep(1); }