Tutorial?
Introduction †
This sample consist at different function to control a robot in SIGVerse.
You can :
- Move the robot with a position control and speed just with destination coordinates. There are an option to move the robot with obstacle avoidance.
- Move the two arm with a position control for each joint just with final value of joints.
- Function to grasp and release an object.
- Determine a new coordinate to grasp an object on a table.
- Function to change of basis (world coordinate to robot coordinate)
Requirements †
- Ubuntu 32/64 bit PC. (Ubuntu installed on virtual machine is also file)
- SIGServer 2.2.2 or later
- SIGViewer 2.2.0 or later
Robot controller †
Download the source code from GitHub †
Download the template from the Github using the link here
Build the project †
Build the source code in your working directory.
$ make
Run the program †
Chooze your <xml> file for the environment.
Include in the package, the <xml> of EGPSR environment.
If you would change the environment, specifying the controller and its location within workspace directory.
How use the template †
You can use a demonstrator for each function in this template. You must send a specific command for each function.
- To move the robot without obstacle avoidance
- 1) In SIGViewer, send the message "move" to the robot
- 2) In SIGServer, indicate the destination coordinate
- 3) In SIGServer, indicate "2" for avoidance
- To move the robot with obstacle avoidance
- 1) In SIGViewer, send the message "move" to the robot
- 2) In SIGServer, indicate the destination coordinate
- 3) In SIGServer, indicate "1" for avoidance
- Caution : the distance sensor is not completly operational
- To move the arm
- 1) In SIGViewer, send the message "move_left_arm" or "move_right_arm" to the robot
- 2) In SIGServer, indicate the angle for each joints (refer to JointDefinition for the names)
- To get the hand coordinate in robot basis
- 1) In SIGViewer, send the message "get_LeftHand" or "get_RightHand" to the robot
- 2) In SIGServer, you can see the coordinate of the hand.
- To grasp an object
- 1) In SIGViewer, send the message "grasp_left" or "grasp_right" to the robot
- 2) In SIGServer, indicate the object name.
- To release an object
- 1) In SIGViewer, send the message "release_left" or "release_right" to the robot
How use the different function in others task †
goTo †
- This function has need :
- getAngularXonVect
- getDist2D
- getRoll
goTo_AvoidObstacle †
moveLeftArm or moveRightArm †
These functions don't need others to run properly.
Write the value of each joint in the variable
Counter: 3657,
today: 1,
yesterday: 1