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 with Yahoo! Messenger with Voice.
