This Joint class is available for all services to use, not just simulation services. PhysicalModel namespace, which is implemented in the RoboticsCommon DLL. The Joint class is defined in the Microsoft.
A joint with all degrees of freedom unlocked can move in any direction and rotate and twist into any possible orientation. A joint with a single linear degree of freedom unlocked would operate somewhat like a shock absorber or a worm gear, with the joined entities able to move closer or farther along a single direction. The simplest joint is a revolute joint, which has a single angular degree of freedom unlocked, and it behaves much like a door hinge. It has up to six degrees of freedom (three angular and three linear), which means it can be configured in a number of different ways.
Robotstudio target external axis how to#
Then you will learn how to build a robotic arm with multiple joints.Ī Joint is an object that joins two entities together. This chapter begins by describing how to use a joint to join two entities and all of the options that are available. The primary mechanism for defining articulated entities is the Joint object.
Wheeled robots are fine for some applications, but sometimes you need a robot that can reach out and grab things. This chapter explains how to create articulated entities such as robotic arms and jointed robots in the simulation environment. A good navigation algorithm should be able to handle a variety of environments. It is fairly easy to reconfigure the environment in the Referee service or to even have several canned environments that can be easily selected. This would keep the robot from moving toward an area where there is a known obstacle.įinally, the obstacles in the environment are currently fairly simple. One simple way to make the obstacle avoidance more efficient is to add waypoints with a negative happiness to the list each time an obstacle is encountered. In the current simulation, the order in which the robot visits the cones is unimportant. Such a simulated service should probably also provide a way to model areas of poor reception in the world so that the navigation algorithm can handle these properly.Īnother improvement to this simulation would be to change the happiness function to make the robot traverse the cones in a particular order. You should implement a simulated GPS entity and associated service that returns the position of the robot in latitude and longitude. For one thing, very few robot drives can report back on their actual position in the world. There are several things you can do with this simulation scenario to make it more like the actual SRS Robo-Magellan competition. This can come in handy if it happens to hit a wall on the edge and flip over or if you just want to see how it handles a particular approach to a cone.
Each time you enhance the robot behavior, measure the elapsed time of a few runs to determine the amount of improvement you have achieved.ĭon’t forget that you can use the Simulation Editor to select the Corobot entity and move it around in the environment. The elapsed time gives you a good measure of your algorithm’s efficiency, although the same algorithm can have radically different execution times as a result of very small variations in the robot’s behavior. You will probably have to move the MainCamera around a bit to keep the Corobot in view, and you’ll definitely want to be watching the SimMagellan user interface form to see the results of the image processing and the current state of the robot. Once you click Reset and Start, the service runs itself. Yield return Arbiter.Choice( _drivePort.RotateDegrees(180, _rotateSpeed), delegate(DefaultUpdateResponseType response) Īs you can see from the implementation, when the robot detects an impending collision, it backs up a quarter meter, turns 90 degrees to the left, changes to Wander mode, and then drives forward one meter.Īdd the state implementations just discussed to your code, along with the GetHappiness method and its associated variables, and your SimMagellan service is complete. The Finished state simply causes the robot to spin around in wild celebration until you click the Reset button to try the scenario again: Otherwise, it returns to the Wander state to find more cones. If so, the robot enters the Finished state. all the cones have been visited _endTime = DateTime.Now Īfter that, it checks whether all the cones have been touched. Chapter 7: Using Orchestration Services to Build a Simulation Scenario