Create a new robot

Help
George
2012-03-22
2012-12-14
  • George
    George
    2012-03-22

    I'm trying to use USARsim(UT3) and MOAST to develop a simulation of a snake-like robot (the robot is an expansion of the robot created by Dr Boyle shown in this video http://www.bbc.co.uk/news/uk-england-leeds-14123555.

    I therefore need to create a new robot model in order to be able to simulate it however I can't find any information on how to do this, I am on quite a short deadline (5 weeks left). The only thing I have found is https://sourceforge.net/apps/mediawiki/usarsim/index.php?title=Creating_a_Human_for_USARSim however this is for UT2004 not UT3, is it a similar method? (if so a small update on the wiki might be useful to help others) if not is there a better tutorial located somewhere else?

    on a related note I will  probably also need to create a sensor, again the only tutorial I have found is for UT2004 https://sourceforge.net/apps/mediawiki/usarsim/index.php?title=Advanced_User_b (as a side note advanced user B and advanced user A seem to be showing the same page).

    Thanks alot

     
  • Hi,
    See below for what documentation there is, however the documentation is not great in this area. It would be great if you were willing to update the document as you go. In addition, I would highly recommend using the UDK version of USARSim since we are not supporting the UT3 version.

    For a brief introduction on how to create a robot, see https://sourceforge.net/apps/mediawiki/usarsim/index.php?title=Tutorials_-_Getting_Started.

    If I remember correctly, there was a snake robot in the UT2004 version that never made it to UT3 or UDK.  See http://usarsim.cvs.sourceforge.net/viewvc/usarsim/usarsim/USARBot/Classes/Soryu.uc?view=log for more information.

    In terms of sensors, what kind of sensor are you speaking of? The easiest way to create a new sensor is to expand on an existing one (it there is one that is close).

    Please also note that we would love for you to contribute your creations back to the community. If you would like developer access to the code or wiki, please let me know.

    Best,
    Steveb.

     
  • George
    George
    2012-03-26

    I would be perfectly willing once I know what I am doing to update the documentation. I will also try using the UDK version of USARsim.

    I will look through those links, so thanks for them.

    The sensor that I would need would need to mimic the effects of a pizoelectric strip, i.e it would need to be able to measure the angle between the different segments of the robot. if you are aware of a good starting point or even if this is possible then please let me know.

    Thanks

     
  • One of the nice things about simulation is that you have perfect ground truth. Therefore you can know the exact angle between any two parts. You would need to know the noise model of the actual pizo strip in order to mimic it accurately. I would look at the encoder as an example of such a sensor.

     
  • George
    George
    2012-04-11

    I'm having a bit of an issue creating the robot, I have created a file called CElegans.uc and placed it in Development->Src->USARBot->Classes->
    The code with in is as follows:

    class CElegans extends SkidSteeredVehicle config(USAR);
    defaultproperties
    {
        // Create Front body part
        Begin Object Class=Part Name=Frontbody
            Mesh=StaticMesh'CElegans_static.Frontbody'
            Mass=1
        End Object
        Body=Frontbody
        PartList.Add(Frontbody)
    
        // Front Right Wheel
        Begin Object Class=Part Name=FRWheel
            Mesh=StaticMesh'CElegans_static.Wheel'
            Offset=(X=-0.119,Y=0.32,Z=-0.163)
            Mass=0.1
        End Object
        PartList.Add(FRWheel)
        // Front Left Wheel
        Begin Object Class=Part Name=FLWheel
            Mesh=StaticMesh'CElegans.Wheel'
            Offset=(X=-0.119,Y=-0.32,Z=-0.163)
            Mass=0.1
        End Object
        PartList.Add(FLWheel)
    Begin Object Class=WheelJoint Name=FRWheelRoll
            Parent=Frontbody
            Child=FRWheel
            Side=SIDE_Right
            Offset=(X=.124,Y=.18,Z=.048)
            Direction=(X=1.571,Y=0,Z=0)
            MaxVelocity=1.3
        End Object
        Joints.Add(FRWheelRoll)
        Begin Object Class=WheelJoint Name=FLWheelRoll
            Parent=Frontbody
            Child=FLWheel
            Side=SIDE_Left
            Offset=(X=.124,Y=-.18,Z=.048)
            Direction=(X=1.571,Y=0,Z=0)
            MaxVelocity=1.3
        End Object
        Joints.Add(FLWheelRoll)
    
        WheelRadius=0.098
    }
    

    I have also created a package called CElegans_static which contains the static meshes referred to in the code. I created the CElegans.uc script by copying the P3AT.uc script and editing it in notepad++. When I try to call the robot and place it in the world I get the error "can't find the class named USARbot.CElegans" I'm sure that I must have missed some step in creating the class but I'm not sure what, do you have any suggestions?

    George

     
  • AHA
    AHA
    2012-04-11

    You may have missed some steps like adding the Sensors and Actuators.
    If you have already added the Meshes (.upk files), I suggest you add your robot in UDKGame/Config/UDKUsar.ini file, which is the config file used for simulation in usarsim in order to make the sensors available for your robot (assuming that everything your robot  needs are already defined in UsarSensor and UsarActuator).

    But all these are not related to the error "can't find the class named USARbot.CElegans", because even without mentioning the robot in the config file, you should be able to load the robot without any sensors attached.
    Are you sure you've rebuilt Usarsim after you made the changes to UsarBot/Classes?

     
  • George
    George
    2012-04-11

    I'm not sure if I have rebuilt it, how would I go about rebuilding it?

     
  • AHA
    AHA
    2012-04-11

    run the batch files make OR make_clean to recompile the modified project.

     
  • George
    George
    2012-04-11

    Hi thanks for the advice, I have now got the first section of the robot(with wheels and sensors) working! :) I'm now in the last 48 hours or so that I have to finish this project off and the only real problem I have left is figuring out how to develop a flexible link between the different sections of the robot (the robot is made up of 12 "cylinders")

    Would you have any advice at all as to how to accomplish this?

    Thanks alot and once this project is over I would be more than willing to help update the documentation with regards to developing a new robot, if you would still like me to.

    George

     
  • Hi George,
    I am not an expert on robot development, but I would suggest that you look at the robotic arm code to develop your flexible links. It seems like the link between your sections could be modeled by one or more rotary joints.

    Adding the documentation would be great!