Hi Raman,
You are right: "more the sleeping time, more the rotation".
The explanation is easy: your code (position->data->cmd_vel_rot[2] =
-1.6) sets the robot's rotation velocity to 1.6 radians per second
(although I see that you changed it to 1.2 rad/s in the last code you
sent). Thus, if you sleep for a second before stopping the rotation
(position->data->cmd_vel_rot[2]=0), the robot is gonna rotate
(approximately) 1.6 radians, which is about PI/4, which is 90 degrees.
If you remove the sleep command, the robot will have 0 seconds to rotate
(you set the rotational velocity, but right after that you set it to 0
rad/s again) , therefore it won't turn at all.
Likewise, if you sleep for a longer time, it will turn more (e.g. 2
seconds, ~180 degrees).
I hope it helps.
Didac
Raman Agarwal wrote:
hi,
Following is the code that I used. I also used example.world with this
client program. commands of interest are line numbers 10 to 50. I
commented out the z axis motion and things worked fine, but still i
had to use sleep command, coz if I dont use it the bot wont turn.
This leads to the following question. whether, the rotation is
dependent on the sleep command or not (i.e more the sleeping time,
more the rotation.)
We know whats happening, but why is the question..
Raman.
--------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <gazebo.h>
void get_position (gz_client_t *client, gz_position_t *position);
int main (int argc, char *argv[])
{
gz_client_t *client;
gz_position_t *position;
int server_id;
int client_id;
// Assume one server and one client
server_id = 0;
client_id = 0;
// Print all errors
gz_error_init(1, 9);
// Create a client object
client = gz_client_alloc();
// Connect to the server
if (gz_client_connect_wait(client, server_id, client_id) != 0)
return -1;
// Create a position interface
position = gz_position_alloc();
// Connect to device on server
if (gz_position_open(position, client, "robot1") != 0)
return -1;
/*
---------------------------------------------------
leave program code unchanged till here...
---------------------------------------------------
*/
// enable motors
position->data->cmd_enable_motors = 1;
// change direction of the bot
10> position->data->cmd_vel_rot[2] = -1.2; // ~90° clockwise
20> // position->data->cmd_vel_pos[2] = 0.12; // switch on motor for
z-axis
30> sleep(1); // wait for 1ms
40> position->data->cmd_vel_rot[2] = 0; // fix this angle/pose
50> // position->data->cmd_vel_pos[2] = 0; // switch off motor for z-axis
// move forward in new direction
position->data->cmd_vel_pos[0] = 0.52; // switch on motor for x-axis
// get and print position. the position variable
// has current odometric position
get_position(client, position);
// disable motors
position->data->cmd_enable_motors = 0;
// Close the interface and free object
gz_position_close(position);
gz_position_free(position);
// Close the connection and free the client object
gz_client_disconnect(client);
gz_client_free(client);
return 0;
}
// Read some data
void get_position (gz_client_t *client, gz_position_t *position)
{
// Wait for new data
gz_client_wait(client);
// Lock it
gz_position_lock(position, 1);
// Print it
printf("%0.3f %0.3f\n", position->data->pos[0], position->data->pos[1]);
// Unlock it
gz_position_unlock(position);
}
--------------------------------------------------------------------------------------------------------------------
*/Jordi <[EMAIL PROTECTED]>/* wrote:
Sunday 28 May 2006 15:26�Raman Agarwal �ん�書����:
> hi,
>
> yeah i realized that mails arent formatted.. i have included
line numbers
> to the program snippet for reference.
>
---------------------------------------------------------------------------
>-------------------------------------- 10> // enable motors
> 15> position->data->cmd_enable_motors = 1;
>
> 20> // change direction of the bot
> 25> position->data->cmd_vel_rot[2] = -1.6; // for ~90° clockwise
> 30> position->data->cmd_vel_pos[2] = 0.12; // switch on motor
for z-axis
> 35> sleep(1); // wait for 1ms
> 40> position->data->cmd_vel_rot[2] = 0; // fix this angle/pose
> 45> position->data->cmd_vel_pos[2] = 0; // switch off motor for
z-axis
>
> 50> // move forward in new direction
> 55> position->data->cmd_vel_pos[0] = 1.52; // switch on motor
for x-axis
>
>
---------------------------------------------------------------------------
>--------------------------------------
>
> Q1 : is there a neater approach to turn the robot. ideally
speaking, the
> commands (30 to 45) shouldnt be used, but commenting them out
ddnt move
> anything :(
>
lines 30 and 45 are not used for sure, if you comment them out it
should be
working. If not, attach your entire program to the next email
--
Jordi Polo
-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and
Risk!
Fully trained technicians. The highest number of Red Hat
certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid7521&bid$8729&dat1642
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
------------------------------------------------------------------------
Ring'em or ping'em. Make PC-to-phone calls as low as 1¢/min
<http://us.rd.yahoo.com/mail_us/taglines/postman11/*http://us.rd.yahoo.com/evt=39666/*http://voice.yahoo.com>
with Yahoo! Messenger with Voice.
--
Didac Busquets i Font
Dept. d'Electronica, Informatica i Automatica
Institut d'Informà tica i Aplicacions
Edifici P-IV
Despatx 128
Universitat de Girona
Campus Montilivi
17071-Girona
Tel. (+34) 972.41.81.79
Fax. (+34) 972.41.80.98
-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid7521&bid$8729&dat1642
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo